Cake Build 自动合并功能
Cake Build auto merge functionality
我正在使用 cakebuid as my build tool for TFS 2017 Update 2 and trying to implement the traditional Git Flow。在此流程中,每次更改进入 master 时都会发生一些自动合并,这些更改需要传播到 develop 分支。
使用 cake 我可以 运行 一个 PowerShell 脚本或使用 LibGit2Sharp 来完成最佳情况下的自动合并。但是,当合并发生冲突时怎么办?我是否需要因为合并过程失败而使整个构建失败?
我们当然有一些东西要处理 TFS 中的合并,这就是 Pull Request.
问题
Is there any tool or add-in for cake that allows me to create
Pull Request during the execution of a build step?
我认为没有任何加载项可供您创建拉取请求,但由于您可以 运行 PowerShell,您可以轻松地使用 TFS rest api 创建拉取请求
https://www.visualstudio.com/en-us/docs/integrate/api/git/pull-requests/pull-requests
最近宣布有一个 VSTS CLI:
https://blogs.msdn.microsoft.com/devops/2017/11/15/introducing-the-new-cli-for-vsts/
其中包括创建拉取请求的能力:
https://docs.microsoft.com/en-gb/cli/vsts/get-started?view=vsts-cli-latest#create-a-pull-request
我认为创建一个包装此工具并通过一组插件公开功能的 Cake 插件不会特别困难。
与此同时,您可以 shell 使用 Cake 中当前存在的 Process aliases 使用此工具。
最后,我有时会花时间创建包:
Nuget:https://www.nuget.org/packages/Cake.Tfs.AutoMerge
GitHub: https://github.com/mabreuortega/Cake.Tfs
您现在可以使用的方式类似这样:
Task("Merge")
.Does(c => {
CreateAutoMergePullRequest(
new AutoMergeSettings
{
// Required
CollectionUri = "https://{instance}/{collection-name}",
ProjectName = "project-name",
RepositoryName = "repository-name",
SourceBranch = "refs/heads/release/1.0.0",
TargetBranch = "refs/heads/develop",
Title = "[Auto Merge from Release]",
// Optional
Description = "Brief description of the changes about to get merge",
// Control
DeleteSourceBranch = false,
SquashMerge = false,
OverridePolicies = true,
AutoComplete = true,
AutoApprove = true
});
});
如有任何建议,请使用 GitHub 问题跟踪器。
希望对您有所帮助!
我正在使用 cakebuid as my build tool for TFS 2017 Update 2 and trying to implement the traditional Git Flow。在此流程中,每次更改进入 master 时都会发生一些自动合并,这些更改需要传播到 develop 分支。 使用 cake 我可以 运行 一个 PowerShell 脚本或使用 LibGit2Sharp 来完成最佳情况下的自动合并。但是,当合并发生冲突时怎么办?我是否需要因为合并过程失败而使整个构建失败? 我们当然有一些东西要处理 TFS 中的合并,这就是 Pull Request.
问题
Is there any tool or add-in for cake that allows me to create Pull Request during the execution of a build step?
我认为没有任何加载项可供您创建拉取请求,但由于您可以 运行 PowerShell,您可以轻松地使用 TFS rest api 创建拉取请求
https://www.visualstudio.com/en-us/docs/integrate/api/git/pull-requests/pull-requests
最近宣布有一个 VSTS CLI:
https://blogs.msdn.microsoft.com/devops/2017/11/15/introducing-the-new-cli-for-vsts/
其中包括创建拉取请求的能力:
https://docs.microsoft.com/en-gb/cli/vsts/get-started?view=vsts-cli-latest#create-a-pull-request
我认为创建一个包装此工具并通过一组插件公开功能的 Cake 插件不会特别困难。
与此同时,您可以 shell 使用 Cake 中当前存在的 Process aliases 使用此工具。
最后,我有时会花时间创建包:
Nuget:https://www.nuget.org/packages/Cake.Tfs.AutoMerge
GitHub: https://github.com/mabreuortega/Cake.Tfs
您现在可以使用的方式类似这样:
Task("Merge")
.Does(c => {
CreateAutoMergePullRequest(
new AutoMergeSettings
{
// Required
CollectionUri = "https://{instance}/{collection-name}",
ProjectName = "project-name",
RepositoryName = "repository-name",
SourceBranch = "refs/heads/release/1.0.0",
TargetBranch = "refs/heads/develop",
Title = "[Auto Merge from Release]",
// Optional
Description = "Brief description of the changes about to get merge",
// Control
DeleteSourceBranch = false,
SquashMerge = false,
OverridePolicies = true,
AutoComplete = true,
AutoApprove = true
});
});
如有任何建议,请使用 GitHub 问题跟踪器。
希望对您有所帮助!