如何让YAML流水线中不同计划触发对应指定任务
解决计划触发的Job条件匹配问题
Azure DevOps并没有预定义schedule变量来直接获取计划的显示名称,你需要给每个计划添加自定义变量,通过这个变量区分不同计划触发的流水线,进而控制Job的执行。
修改后的完整YAML示例:
schedules: - cron: '0 16 * * *' displayName: 'schedule 1' branches: include: - master always: True variables: triggeredBy: schedule1 # 给计划1定义专属标识变量 - cron: '0 4 * * *' displayName: 'schedule 2' branches: include: - master always: True variables: triggeredBy: schedule2 # 给计划2定义专属标识变量 jobs: - job: job_x condition: eq(variables.triggeredBy, 'schedule1') steps: - script: echo "执行脚本x" # 替换为你的实际脚本x内容 - job: job_y condition: eq(variables.triggeredBy, 'schedule2') steps: - script: echo "执行脚本y" # 替换为你的实际脚本y内容
关键说明
- 每个计划下新增
variables节点,定义唯一标识该计划的变量,不同计划的变量值需区分开 - Job的
condition通过判断这个自定义变量的值,决定是否执行当前Job - Job名称建议使用下划线/连字符替代空格,避免潜在的解析问题
内容的提问来源于stack exchange,提问作者GizzzyB
相关产品推荐
相关产品推荐

