gpt4 book ai didi

git - 如何使用 Azure Devops 和 Cake Build 在构建时自动标记和版本?

转载 作者:行者123 更新时间:2023-12-03 17:14:03 24 4
gpt4 key购买 nike

我正在使用 Cake 脚本通过持续集成在 Azure DevOps 中构建我的软件。要求是当我们提交/merge 到 dev 或 master 分支时,适当的构建管道被启动。作为此构建的一部分,我们需要自动标记和版本我们的软件。我的蛋糕脚本中已经有以下代码可以使用 GitVersion 将语义版本控制添加到我的构建中:

Task("Version")
.Does(() =>
{
Information("Versioning software for configuration {0} of {1}...", configuration, solution);
GitVersion(new GitVersionSettings {
UpdateAssemblyInfo = true,
OutputType = GitVersionOutput.BuildServer,
WorkingDirectory = toolsDirectory
});
GitVersion versionInfo = GitVersion(new GitVersionSettings{ OutputType = GitVersionOutput.Json });

Information("Semantic Version: " + versionInfo.AssemblySemVer);
Information("Full Semantic Version: " + versionInfo.AssemblySemFileVer);
Information("Informational Version: " + versionInfo.InformationalVersion);
});

我希望团队负责人或权威人士在此代码与分支 merge 之前增加主要和次要构建版本。或者我希望管道自动对软件和我们在构建管道末尾创建的最终 zip 工件进行版本控制。

所以这里是我的问题:
  • 如何自动增加我的版本号和标签?
  • 我应该避免自动递增吗?
  • 如何在 Azure DevOps 构建过程中将版本号添加到我的工件名称中?
  • 我需要在我的 git 版本代码中更改什么才能使用标签?
  • 如何添加后缀以使版本控制和标记更像“git flow”(例如“预发布”等)?

  • 这有点宽泛,但我正在努力寻找在 Cake Build 中使用 git 版本控制和 git 标记并以有意义的方式将其连接到 Azure DevOps 的任何示例。提前致谢。

    最佳答案

    GitVersion 有一个默认的全局配置,用于自动计算代码的语义版本。默认情况下,GitVersion 受到 GitFlow 分支模型的严重影响。它还支持 GitHubFlow,只需对其配置进行最少的更改。

    GitVersion 有一些文档 here .

    对于任何远离 GitFlow 或 GitHubFlow 常规路径的内容,您都可以提供自己的配置。您还可以创建自定义分支配置(即用于 GitFlow 或 GitHubFlow 中未使用的分支)。

    他们的文档不是很好。它组织得不好。我发现我只需要玩弄事物才能真正了解它是如何工作的。但是 GitVersion 相当灵活。

    我鼓励您阅读文档并尝试使用它。您应该可以在构建时根据您对各个分支的提交自动对代码进行版本控制,而无需人工干预(除了可能在这里和那里进行提交以强制版本号在某些部分颠簸)。我在不到 15 分钟的时间内为我完成了一些简单的设置,这对于一个最小可行的概念来说已经足够了。通过更多的调整,我相信我很快就能开始使用它作为我正常构建过程的一部分。

    至于标记,一旦您在 Cake 脚本中使用 GitVersion 来计算版本,您可以从 Cake 脚本中发出命令来生成 Git 标记,可能来自 MajorMinorPatch运行时获取输出的属性 GitVersion针对您的代码库,并发出 git tag来自同一个 Cake 脚本中的命令。

    关于git - 如何使用 Azure Devops 和 Cake Build 在构建时自动标记和版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55693413/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com