Cake Build自动合并功能

4
我正在使用 cakebuid 作为我的构建工具,用于 TFS 2017 Update 2,并尝试实现传统的 Git Flow。在这个流程中,每次更改进入 master 分支时都会发生一些自动合并,这些更改需要传播到 develop 分支。 使用 cake 我可以运行一个 PowerShell 脚本或使用 LibGit2Sharp 来完成最佳情况下的自动合并。但是,当合并有冲突时该怎么办呢?我需要因为合并失败而使整个构建失败吗? 我们在 TFS 中肯定有处理合并的工具,那就是Pull Request问题:

是否有任何工具或插件可供cake使用,允许我在执行构建步骤期间创建Pull Request

3个回答

2
最近宣布有一个VSTS CLI:
https://blogs.msdn.microsoft.com/devops/2017/11/15/introducing-the-new-cli-for-vsts/
其中包括创建拉取请求的功能:
https://learn.microsoft.com/en-gb/cli/vsts/get-started?view=vsts-cli-latest#create-a-pull-request
我认为创建一个包装这个工具并通过一组插件公开功能的Cake Addin并不特别困难。
同时,您可以使用当前在Cake中存在的Process aliases来调用此工具。

2

0
最后,我花了一些时间创建这个包:
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 问题跟踪器。

希望这可以帮到您!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接