我有 git monorepo 存储库,里面有多个项目。所以我在这个 repo 中有以下 Jenkinsfiles 结构:
|-Jenkinsfile (root one)
|-projectA
| |-Jenkinsfile (for projectA)
| |- ... (project files)
|-projectB
|-Jenkinsfile (for projectB)
|- ... (project files)
在主根 Jenkinsfile 中,我有逻辑检查 PR 更改的文件,然后在特定项目中的文件发生更改时触发项目管道。
我有 Webhook。
我的问题是所有这 3 个管道都是由 Webhook 触发的。所以我现在的状态是:
- 我在 projectA 中更改了一些内容并创建了 PR
- Webhook 触发所有管道:root、projectA 和 projectB
- 根管道通知对 projectA 进行了更改并触发 projectA 管道
所以在跑步中我有:
- 由 webhook 触发的一次根管道运行
- 一次运行项目由 webhook 触发的管道
- 由 webhook 触发的 projectB 管道的一次运行
- 一次运行项目由上游触发的管道
我想拥有:
- 由 webhook 触发的一次根管道运行
- 一次运行项目由上游触发的管道
我不能改变 webhook 的性质,因为它是 monorepo,所以每次任何人在任何项目中做任何事情时都会发送它。所以我需要防止 projectA 和 projectB 管道对传入的 webhook 做出反应。
有谁知道该怎么做?