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