Git 如何使用Azure Devops和Cake build在构建时自动标记和版本?
我正在使用Cake脚本通过持续集成在Azure DevOps中构建我的软件。要求是,当我们提交/合并到dev或master分支时,启动相应的构建管道。作为构建的一部分,我们需要自动标记和版本我们的软件。我的cake脚本中已经有以下代码,可以使用GitVersion将语义版本控制添加到我的构建中:Git 如何使用Azure Devops和Cake build在构建时自动标记和版本?,git,azure-devops,git-tag,cakebuild,gitversion,Git,Azure Devops,Git Tag,Cakebuild,Gitversion,我正在使用Cake脚本通过持续集成在Azure DevOps中构建我的软件。要求是,当我们提交/合并到dev或master分支时,启动相应的构建管道。作为构建的一部分,我们需要自动标记和版本我们的软件。我的cake脚本中已经有以下代码,可以使用GitVersion将语义版本控制添加到我的构建中: Task("Version") .Does(() => { Information("Versioning software for configuration
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);
});
我希望团队领导或权威人士在将此代码与分支合并之前增加主要和次要构建版本。或者我希望管道自动版本软件和我们在构建管道末尾创建的最终zip工件
下面是我的问题:
我认为这有点宽泛,但我很难找到在Cake Build中使用git版本控制和git标记并以有意义的方式将其连接到Azure DevOps的任何示例。提前感谢。GitVersion有一个默认的全局配置,用于自动计算代码的语义版本。默认情况下,GitVersion受到分支的GitFlow模型的严重影响。它还支持GitubFlow,只需对其配置进行最小的更改 GitVersion有一些文档 对于任何与GitFlow或GitHubFlow不同的东西,您都可以提供自己的配置。您还可以创建自定义分支配置(即,对于GitFlow或GitHubFlow中均未使用的分支) 他们的文档不是很好。组织得不好。我发现我只需要玩一些东西来真正理解它是如何工作的。但GitVersion相当灵活 我鼓励您阅读文档,并尝试使用它。您应该可以在构建时根据对各个分支的提交自动对代码进行版本设置,而无需人工干预(除了可能在此处或那里进行提交以强制版本号在某些部分发生碰撞之外)。我在不到15分钟的时间里为我准备了一些简单的东西,作为一个最低可行的概念已经足够好了。再稍微调整一下,我相信我能很快开始使用它作为我正常构建过程的一部分 至于标记,在Cake脚本中使用GitVersion计算版本后,您可以从Cake脚本中发出命令来生成Git标记,可能是从对代码库运行
GitVersion
时获得输出的MajorMinorPatch
属性生成的,然后从同一个脚本中发出git-tag
命令