问题描述
在使用Azure Pipeline时,遇到了一个问题。他的多阶段管道中,无论何时创建PR,第一阶段总是会运行。但是,当PR被批准后,第二阶段却不会运行。用户想知道是否是阶段条件设置的问题,以及多阶段管道是否必须始终执行某些操作。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
根据回答1,你的管道运行的原因并不是因为触发器,而是因为你为一个或多个目标分支设置了构建验证策略(”每当我创建一个PR到这个分支时,启动这个管道”)。这是分支策略中的构建验证的一部分。你可能没有在构建验证设置中指定路径过滤器。以下是一个示例,展示了单个分支策略中的三个不同的构建验证,每个都有不同的路径过滤器:
简而言之:你在YAML中指定的路径触发器对于触发PR的管道没有影响。你指定的触发器是在提交到master分支时触发,如果提交的文件包含在terraform目录中。
方案2
如果你想要更精确地控制管道的触发条件,可以使用Azure DevOps的分支策略和构建验证功能。通过在分支策略中设置构建验证,你可以根据路径、文件类型等条件来触发管道。以下是一些步骤来设置构建验证:
1. 打开你的Azure DevOps仓库,并导航到”Repos”。
2. 选择你的仓库,并点击”Branches”选项卡。
3. 选择你想要设置构建验证的分支,并点击”…”按钮,然后选择”Branch policies”。
4. 在分支策略页面,选择”Build validation”选项卡。
5. 点击”Add build validation”按钮。
6. 在弹出的对话框中,选择你的构建定义和触发条件(如路径过滤器)。
7. 点击”Save”保存设置。
通过设置构建验证,你可以更精确地控制管道的触发条件,并确保只有满足特定条件的提交才会触发管道。
请注意,构建验证功能可能会因Azure DevOps的版本和配置而有所不同。请根据你的具体情况进行调整和设置。