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