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

如何为含plan={}段的Jenkins独立管道配置每日夜间定时构建

实现Jenkins流水线每日午夜自动触发的配置方法

要让你的测试流水线每日午夜自动运行,只需在Jenkinsfile的顶层配置区域添加定时构建触发器(cron)即可,具体操作如下:

配置位置与代码修改

将triggers配置块放在MyPipeline的顶层属性中,与artefactType、shouldNotifySlackOnAnyBuildStatus等配置同级,示例代码如下:

MyPipeline {
    artefactType = "dockerTool"
    shouldNotifySlackOnAnyBuildStatus = true
    isDockerBuild = true
    slackChannelName = "****-api-test-notifications-channel"
    // 添加定时触发配置
    triggers {
        cron('0 0 * * *') // 每日午夜(0点0分)触发构建
    }
    plan = {
        stage('Build tests') {
            sh "docker build --network=host --build-arg CACHE_BUST=\$(date +%s) -t ${DOCKER_IMAGE} ."
        }
        stage('Run tests') {
            withCredentials([string(credentialsId: '**-api-test-framework-client-secret', variable: 'CLIENT_SECRET'),
                              string(credentialsId: '**-api-test-framework-client-id', variable: 'CLIENT_ID')]) {
                script {
                      sh 'docker run --network=host --name $DOCKER_IMAGE -e "clientSecret=$CLIENT_SECRET" -e "clientID=$CLIENT_ID" -e "suiteFile=testng.xml" -e "testplan=testng.xml" -e "env=qa" $DOCKER_IMAGE'
                  }
              }
          }
    }
    finallyCallback = {
        stage('Publish Report') { ............
    }
}

关键说明

  • cron表达式含义:0 0 * * *对应每天的0时0分执行构建,完全匹配午夜需求。如果需要调整时区(比如Jenkins服务器时区与本地不一致),可以在表达式前添加时区标识,例如:TZ=Asia/Shanghai 0 0 * * *
  • 配置位置:必须将triggers放在MyPipeline的顶层,不能嵌套在plan或其他块内,否则Jenkins无法识别定时触发规则
  • 生效条件:确保Jenkins实例已开启定时任务功能,且流水线所在项目拥有触发构建的权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 09:07:31