我正在尝试编写一个管道来构建镜像并部署到 Azure 上托管的测试环境。我的代码库位于 GitHub 上。在尝试从源分支针对目标分支的拉取请求触发管道时,我面临一个问题,即管道不会为 PR 触发,但在我的其他条件下运行良好,例如推送到开发或掌握.
PR触发的条件如下:
and(succeeded(), eq(variables['Build.Reason'], 'PullRequest'), startsWith(variables['System.PullRequest.SourceBranch'], 'release/'), eq(variables['System.PullRequest.TargetBranch'], 'master'))
yaml文件中的触发器如下所示:
trigger:
branches:
include:
- develop
- master
paths:
exclude:
- k8s/*
- src/VERSION
- src/package.json
pr:
- master
我在这里遗漏了什么吗?
最佳答案
有两种情况:
<小时/>场景 1:创建拉取请求时触发了管道,但具有您显示的条件的阶段/作业/任务未运行。
那么问题应该与条件有关,而不是触发器。
我已经测试并确认您的情况是正确的。因此,可能不是条件符号,而是其他原因导致您的任务无法运行。
以下是故障排除建议:
转到构建日志,单击跳过的阶段/作业/任务。您会发现条件与实际值之间的比较。从这里,您可以判断哪部分条件导致您的任务无法运行。
<小时/>场景 2:创建拉取请求时未触发管道。
那么问题应该与触发器有关,而不是与条件有关。
请选择以下文档,根据您的案例获取详细的故障排除建议:
关于azure - 针对具有特定源分支的 master 的拉取请求不会触发 Azure 管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73620466/