1

我想实现 NuGet 包的自动语义版本控制作为 VSTS 构建步骤(实际上在 cakebuild 步骤中)。问题是,虽然获取正在执行的分支构建很容易(buildSystem.TFBuild.Environment.Repository.Branch),但我不知道如何获取有关哪个分支合并到 master 的信息(补丁版本的修补程序分支,或为次要开发具有新功能的分支)。这是可能的还是我应该接受每个版本更新都需要手动 Nuspec 编辑?看起来 gitflow 具有识别这些的内置机制,例如基于分支名称,但我们根本不使用它。

4

1 回答 1

2

您可以利用GitVersion工具和别名从 git 历史/分支断言版本,示例用法:

    #tool "nuget:https://api.nuget.org/v3/index.json?package=GitVersion.CommandLine&version=3.6.2"
    if (!BuildSystem.IsLocalBuild)
    {
        GitVersion(new GitVersionSettings{
            OutputType = GitVersionOutput.BuildServer
        });
    }



    GitVersion assertedVersions = GitVersion(new GitVersionSettings
    {
        UpdateAssemblyInfoFilePath = "./src/Project/AssemblyInfo.cs",
        UpdateAssemblyInfo = true,
        OutputType = GitVersionOutput.Json,
    });

    version = assertedVersions.MajorMinorPatch;
    semVersion = assertedVersions.LegacySemVerPadded;
    milestone = string.Concat("v", version);
于 2018-02-26T19:09:19.533 回答