首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当我创建一个PR时,我能在其他回购中触发管道吗?

当我创建一个PR时,我能在其他回购中触发管道吗?
EN

Stack Overflow用户
提问于 2022-06-09 09:03:28
回答 1查看 358关注 0票数 1

我们在Azure DevOps有3次回购。我们使用Azure管道运行我们的CI/CD链。回购A是其他回复所使用的工具集。回购B使用A作为子模块,C使用A作为git子模块。

在回购A中创建PR时,我们希望在回购B和C中触发测试管道,并在回购A的PR中具有地位。B和C的管道/运行在运行测试时应该使用PR提交。这是为了避免回购A中的更改在发布时破坏回购B和C。

我们的问题是,我们想要确保使用正确的承诺回购A(在PR),并获得测试结果的回购B和C进入PR。

EN

回答 1

Stack Overflow用户

发布于 2022-06-10 21:13:17

这应该可以通过分支策略中的构建验证策略来实现,但它不会是直接的。

在外壳下,当您在构建验证策略中指定构建时,azure将在临时分支/refs/pull/<id>/merge上将管道排队。它使用表示拉请求元数据的几个附加变量对管道进行排队。当构建完成时,它会将状态消息发送回拉请求,以指示是否满足条件。

微软有几篇关于如何创建自定义PR服务器或使用函数应用程序创建自定义分支策略的文章。这些方法可以用作一种方法,但这两篇文章都建议,在创建拉请求时,它们是基于web钩子调用的。这两篇文章都提到了如何将自定义PR状态消息发送回PR。

如果您想要更多地控制手动重新排队构建验证,理论上您也可以创建一个管道来触发其他repos中的其他管道。

  1. 定义可用于触发其他管道的生成验证管道。这相当于使用Web钩子/函数应用程序,但主要的区别是拉请求中的UI提供了重新触发构建的选项。
  2. 此构建验证管道读取队列时间变量,以确定正在执行的PR。您可以向该管道添加逻辑,以使用Azure DevOps REST在其他repos/项目中排队。在排队这些管道时,将拉请求元数据的详细信息作为队列时间变量传递到消息正文中。
  3. 当外部管道运行时,读取队列时间参数以记录哪个PR启动了构建。添加一些自定义逻辑,包括签出子模块的/refs/pull/<id>/merge分支,然后构建+测试。
  4. 当外部管道完成时,将PR状态发送回原始PR。
  5. 根据需要从其他管道将分支策略修改为指示生成状态。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72557531

复制
相关文章

相似问题

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