Dav*_*ord 11 pipeline git-merge azure-devops cicd
我正在寻找一种仅在成功(或尝试)拉取请求合并时触发 Azure 管道的方法。
我现在有 :
trigger:
branches:
include:
- DEV
steps:
- script: FOO
Run Code Online (Sandbox Code Playgroud)
但每次 DEV 分支发生更改时都会运行,我想避免这种情况。
此外,我想要一个编程响应,而不是每次都通过用户界面。
编辑:发生了一件奇怪的事情
condition: and(succeeded(), eq(variables['Build.Reason'], 'PullRequest'))
Run Code Online (Sandbox Code Playgroud)
得到:
Expanded: and(True, eq('IndividualCI', 'PullRequest'))"
Run Code Online (Sandbox Code Playgroud)
在做公关时,因此没有达到预期效果
Leo*_*SFT 11
\n\n我正在寻找一种仅在成功(或尝试)拉取请求合并时触发 Azure 管道的方法。
\n
目前还没有这样的开箱即用的方法来实现这一目标。
\n我们只能在目标分支上设置 CI 触发器,但我们可以为管道设置条件以避免构建任何任务:
\nand(succeeded(), eq(variables[\'Build.Reason\'], \'PullRequest\'))\nRun Code Online (Sandbox Code Playgroud)\n例如:
\ntrigger:\n branches:\n include:\n - DEV\n\nsteps:\n- script: FOO\n condition: and(succeeded(), eq(variables[\'Build.Reason\'], \'PullRequest\'))\nRun Code Online (Sandbox Code Playgroud)\n或者你可以设置舞台、工作等条件。
\n请查看文档指定条件以了解更多详细信息。
\n如果分支上有变化DEV,则条件会避免它。
注意:使用上述方式,管道会被触发,但不会执行任何任务。
\n如果您甚至不希望触发管道。您可以使用 powershall 任务添加新管道来调用 REST API 来触发上述管道并将条件设置为 powershell 任务。
\n这样,只有当提交来自 PR 时才会触发管道。
\n更新:
\n\n\n在 DEV 分支上执行 PR 会导致:“Expanded: and(True,\neq(\'IndividualCI\', \'PullRequest\'))”
\n
是的,你是对的。这是因为 azure devops 不具备在 PR 完成后触发管道的功能。拉取请求触发器和构建验证都会在 PR启动时触发管道。
\n为了解决这个请求,我们可以尝试创建一个服务钩子来监控 PR 状态。如果 PR 状态发生变化,则通过 API 或应用程序触发管道,您可以查看此文档以了解更多详细信息。
\n另一种实现方式是使用 REST API。
\n主要思想是\xef\xbc\x9a
\n因此,您可以删除:
\ntrigger:\n branches:\n include:\n - DEV\nRun Code Online (Sandbox Code Playgroud)\n在您当前的管道中。
\n| 归档时间: |
|
| 查看次数: |
13870 次 |
| 最近记录: |