首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为PR触发构建,但在PR完成之前防止CD

为PR触发构建,但在PR完成之前防止CD
EN

Stack Overflow用户
提问于 2019-10-24 22:22:09
回答 1查看 1.1K关注 0票数 4

我和我的团队正在努力在ADO中实现一个特定的CI/CD模式。

我们定义了一个名为"Develop“的构建管道和一个同名的释放管道。我们已经为我们的开发部门设置了一个建设政策,要求“开发”建设管道在完成PR之前成功。我们也有审查/批准、评论解析和链接工作项的策略。

正如预期的那样,当一个PR被提升时,我们的策略中引用的构建就会被启动。同样,如预期的那样,在此构建成功之前,PR无法完成。但是,我们遇到的问题是,因为我们在发布管道上设置了CD触发器,由PR触发的构建生成的工件总是会被部署,而不管其他PR策略的状态如何。

我们想要的顺序是:

  1. 提高PR使我们的“发展”建设管道得以实施。
    • 在完成PR之前,此构建必须成功。
    • 此构建的工件被存储,这样构建管道就不必在PR完成后再次运行,只需完成部署(构建需要一段时间)。

  1. 成功执行构建管道。
    • 在其他政策得到满足之前,公共关系仍然无法完成。

  1. 其余的分支策略是满意的。
  2. 公共关系完成了。
    • 只有现在才能部署从构建管道生成的工件。

  1. 执行“开发”发布管道,将工件部署到我们的测试环境中。

在修改了管道的变体后,我尝试简单地设置“扣动请求触发器”,而不是在发布管道上设置“连续部署触发器”。我假设这将需要一个PR已经导致了工件的创建,完成了PR。我的假设是错误的。通过这种新的设置,提高PR触发了构建管道,而构建管道的成功触发了释放管道,即使PR尚未完成。

我们的构建管道构建解决方案,运行测试,运行一些PowerShell脚本,最后将工件发布到Azure管道。也许这做得太多了。也许有一些方法可以构建、运行测试和脚本,然后在将工件传递到发布管道之前等待PR完成。我就是搞不懂。有什么方法可以完成我上面列出的顺序吗?

简言之,要求:

  • 当PR被提升时,构建应该立即开始。
  • 构建不应该执行不止一次(这需要很长的时间,我们不能等待两个构建仅仅满足一个构建策略在“真正的”构建之前)。
  • PR的完成应该触发释放管道。
EN

回答 1

Stack Overflow用户

发布于 2019-10-25 10:03:00

从你的描述中有一些关于公关触发的误解。

您可以配置拉请求触发器,当拉请求上传工件的新版本时,该触发器将创建一个新版本。启用触发器,并添加要激活此触发器的拉请求所针对的分支。 拉请求触发器

但是,对于CD触发器,如果只希望在编译来自特定分支的代码(仅当代码位于TFVC、Git或GitHub存储库中)或生成具有特定标记时才创建版本,则可以添加构建分支筛选器。它们可以是包含过滤器,也可以是排除过滤器。例如,使用features/*将所有构建都包含在特性分支下。还可以在筛选值中包括自定义变量。

或者,您可以指定一个过滤器来使用在构建管道中指定的默认分支。例如,当默认构建分支在每个开发sprint中发生更改时,这是非常有用的。这意味着您不需要在所有发布管道上更新触发器筛选器,只需更改构建管道中的默认分支即可。

更多细节请看一下杰夫·谢普勒在这个类似问题中的回答:VSTS发布拉出请求生成触发器

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58549847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档