You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Azure DevOps Pipeline Cron触发器实现每4周运行一次

Azure Pipeline 每4周运行的Cron触发器配置

Azure Pipelines 采用 NCronTab 语法,原生Cron没有直接支持“每4周”的规则(因为周的计算绑定自然月),下面提供两种可靠的实现方式:

方法1:用周数模运算过滤执行(推荐)

让Pipeline每周固定时间触发,但通过条件判断只在每4周的周期内执行任务,无需手动维护大量表达式:

schedules:
- cron: "0 0 * * 5" # 每周五0点触发(可根据需求调整时间和星期几)
  displayName: 每4周周五执行流水线
  branches:
    include:
    - main # 替换成你的目标分支
  always: true
  condition: eq(variables['System.JobStartTime.WeekOfYear'] % 4, 2) # 这里的"2"是起始周的周数模4结果

配置说明:

  1. 先确定你想要第一次运行的周数:可以手动触发一次流水线,在日志里查看System.JobStartTime.WeekOfYear的值,计算它模4的结果,替换上面的2。
  2. 跨年时周数会重置为1,若要兼容跨年,可把条件调整为:eq((variables['System.JobStartTime.WeekOfYear'] + 52) % 4, 2)(加52确保负数模运算结果正确)。
  3. always: true确保即使目标分支没有代码变更,流水线也会触发。

方法2:手动列出每4周的周数

如果不需要长期跨年度运行,可直接列出所有符合每4周间隔的周数,比如从第1周开始,每4周执行一次:

schedules:
- cron: "0 0 * * 5 #1"
- cron: "0 0 * * 5 #5"
- cron: "0 0 * * 5 #9"
- cron: "0 0 * * 5 #13"
- cron: "0 0 * * 5 #17"
- cron: "0 0 * * 5 #21"
- cron: "0 0 * * 5 #25"
- cron: "0 0 * * 5 #29"
- cron: "0 0 * * 5 #33"
- cron: "0 0 * * 5 #37"
- cron: "0 0 * * 5 #41"
- cron: "0 0 * * 5 #45"
- cron: "0 0 * * 5 #49"
- cron: "0 0 * * 5 #53"
  displayName: 每4周周五运行流水线
  branches:
    include:
    - main
  always: true

配置说明:

  • #N表示当月的第N周,这里利用一年最多53周的特性,列出所有间隔4周的周数(第1、5、9...53周)。
  • 这种方式无需条件判断,但每年年初需要检查周数是否需要调整(部分年份只有52周)。

内容的提问来源于stack exchange,提问作者Terin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 06:52:34