【发布时间】:2016-10-05 14:33:43
【问题描述】:
我们在 VSTS 中使用带有分支和 Pull Requests 模型的 Git 存储库来允许代码审查。
我们有一个 CI Build 定义并遵循它Release 定义,用于推送到 master 的所有提交。
如果我们也可以为所有分支进行CI,那将是一个巨大的好处。 但是 Git repos 的构建定义只允许设置单个分支来跟踪。
并且为每个分支创建一个构建是不可行的,因为我们的分支是短暂的又名特性分支,我们在 PR 合并到主分支后将它们删除。
是的,可以在 Branch Policies 页面中指定运行 CI build for PRs 以掌握。但这有两个问题:
这将只构建 PR,而我们希望在将所有单独的提交推送到分支后立即构建它们
PR 的 CI 构建也会触发我们的发布,但我们显然希望它仅在主构建时触发。是的,我可以在 Release 定义中分析
$(Build.SourceBranch)或$(Build.SourceBranchName),如果它不是“master”则失败,但无论如何它都会创建一个失败的 Release,我只想避免这种情况
那么...我们如何在 VSTS 中为任意分支构建 CI?
更新
另一个只为主构建运行发布的想法 - 是从构建端触发发布,例如by using API 如果 $(Build.SourceBranch) 等于 'master',例如自定义 PowerShell 脚本。
我可以看到VSTS Trigger build step 甚至还有一个扩展名,但即使是非主版本也会触发,尽管微软正在开发a feature to run steps conditionally。
【问题讨论】:
标签: git continuous-integration azure-devops pull-request