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

如何配置Jenkins流水线任务的Cron表达式实现双周周一执行?

Jenkins流水线每两周周一执行的配置方案

Jenkins原生Cron语法没有直接支持“每两周”的字段,因此需要通过变通方式实现,以下是两种可靠的配置方案:

方案一:Cron每周触发 + 流水线内周期判断(推荐)

让流水线每周一固定时间触发,然后在脚本内判断当前是否处于目标周期(奇数/偶数周,或指定起始日期后的每14天),不符合则终止执行,达到每两周运行一次的效果。

1. 配置Cron触发规则

在流水线任务的「构建触发器」中,设置Cron表达式:

H 9 * * 1
  • H:根据任务哈希值生成随机分钟数,避免集群内任务集中触发;
  • 9:指定上午9点执行(可根据需求调整);
  • * * 1:匹配每周一。

2. 添加流水线判断逻辑

在Jenkinsfile开头加入周期校验逻辑,示例如下:

pipeline {
    agent any
    stages {
        stage('校验执行周期') {
            steps {
                script {
                    // 方式1:按ISO周数判断(周一为一周起始)
                    def currentWeek = new Date().format('w', TimeZone.getTimeZone('Asia/Shanghai')) as Integer
                    // 选择奇数周执行,如需偶数周则改为 currentWeek % 2 == 0
                    if (currentWeek % 2 != 1) {
                        echo "本周为非目标周期,跳过执行"
                        currentBuild.result = 'ABORTED'
                        error('终止非周期内的构建')
                    }

                    // 方式2:按指定起始日期计算每14天执行(更精准)
                    // def startDate = Date.parse('yyyy-MM-dd', '2024-05-06')
                    // def currentDate = new Date()
                    // def daysDiff = (currentDate.time - startDate.time) / (1000 * 60 * 60 * 24) as Integer
                    // if (daysDiff % 14 != 0) {
                    //     echo "未到每两周执行周期,跳过"
                    //     currentBuild.result = 'ABORTED'
                    //     error('终止非周期内的构建')
                    // }
                }
            }
        }
        // 后续构建/部署阶段
        stage('构建项目') {
            steps {
                echo '开始执行构建流程...'
                // 替换为你的实际构建逻辑
            }
        }
    }
}

注意:若使用周数判断,需确保Jenkins服务器时区与业务时区一致;若需要严格对齐特定起始日期,推荐使用第二种日期差计算方式。

方案二:双Cron表达式拆分周期(无脚本依赖)

如果不想在流水线内添加判断逻辑,可以通过两个Cron条目结合插件实现周期拆分,但灵活性不如方案一。需提前安装「条件构建步骤」插件,然后:

  1. 在构建触发器中设置基础Cron:H 9 * * 1
  2. 添加条件构建步骤,设置周数判断规则(仅允许奇数/偶数周执行)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 13:45:31