Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 如何使用Azure Devops和Cake build在构建时自动标记和版本?_Git_Azure Devops_Git Tag_Cakebuild_Gitversion - Fatal编程技术网

Git 如何使用Azure Devops和Cake build在构建时自动标记和版本?

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

我正在使用Cake脚本通过持续集成在Azure DevOps中构建我的软件。要求是,当我们提交/合并到dev或master分支时,启动相应的构建管道。作为构建的一部分,我们需要自动标记和版本我们的软件。我的cake脚本中已经有以下代码,可以使用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);
    });
我希望团队领导或权威人士在将此代码与分支合并之前增加主要和次要构建版本。或者我希望管道自动版本软件和我们在构建管道末尾创建的最终zip工件

下面是我的问题:

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

  • 我认为这有点宽泛,但我很难找到在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
    命令