Azure DevOps中Schedule Triggers工作原理及分支配置疑问
先明确AzDO计划触发器的核心底层逻辑:
Azure DevOps 调度计划任务时,仅会读取**仓库默认分支(通常为main)**中定义的
schedules配置作为全局生效规则,生成的计划任务可以触发配置里include字段覆盖的所有分支的构建。非默认分支下的schedules配置仅作用于该分支本身,不会对其他任何分支的计划触发产生任何影响。
问题1解答
不会触发main分支的构建。非默认分支的schedules配置仅能用来判断是否要触发该分支自己的构建,配置中的include规则即使写入其他分支也完全不会生效。你举的示例中release分支的schedules仅包含main分支,没有包含自身,所以连这个release分支自己的构建都不会触发,更不可能影响main分支的构建逻辑。
问题2解答
默认分支的YAML中的schedules配置确实具备全局生效的特殊优先级。
AzDO后台定期同步计划配置时,只会拉取默认分支里的schedules段生成全局的计划任务队列,这些任务会按照配置的分支过滤规则,对所有匹配到的分支(包括releases/*等非默认分支)判断是否满足触发条件(代码变更或者always: true配置),因此main分支的配置可以控制其他分支的计划触发。
问题3解答
该问题的前提不成立,非默认分支无法通过自身的schedules配置触发其他分支的构建,因此不存在对应的合理性问题。
另外AzDO的这个规则设计本身是为了避免多分支并行开发时的计划配置混乱,防止任意分支随意修改计划规则影响整个仓库的构建调度,所有全局计划的入口统一收敛到默认分支,也更便于权限管控和配置审计。
内容的提问来源于stack exchange,提问作者Sandeep Kumar

