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

如何在Scripted Pipeline中阻止Jenkins任务响应GitHub特定分支推送,仅按Cron运行?

在Scripted Pipeline中禁用GitHub分支推送触发,仅保留Cron定时触发

要实现仅让Jenkins任务通过Cron定时触发,完全忽略GitHub分支的推送事件,你可以通过以下步骤和代码实现:

核心配置要点

  • 仅保留Cron触发器,移除所有SCM相关的触发配置
  • 禁用SCM轮询及Webhook响应
  • 确保任务配置中关闭GitHub钩子触发(若手动配置任务)

Scripted Pipeline 代码示例

node {
    // 仅配置Cron定时触发,根据需求调整表达式(示例为每天凌晨0点触发)
    triggers {
        cron('H 0 * * *')
    }

    options {
        skipDefaultCheckout() // 跳过默认代码拉取,改为手动控制
        disableConcurrentBuilds() // 可选:防止并发构建冲突
    }

    stage('拉取代码') {
        checkout scm: git(
            url: 'https://github.com/your-username/your-repo.git',
            branch: 'main', // 指定你的目标分支
            poll: false // 关键:禁用SCM轮询,同时阻止Webhook触发
        )
    }

    stage('构建') {
        // 替换为你的实际构建命令
        sh 'mvn clean package'
    }

    // 可添加后续测试、部署等阶段
}

关键细节说明

  1. triggers 块:只保留cron触发器,不要添加scm触发器,确保只有定时任务能触发构建。
  2. poll: false:在git配置中设置该参数后,Jenkins会停止轮询仓库变更,同时也会忽略GitHub推送的Webhook事件,从根源上阻止代码推送触发构建。
  3. 任务配置检查:如果是手动创建的Jenkins任务,进入任务配置页面,取消勾选「GitHub hook trigger for GITScm polling」选项,确保没有残留的触发配置。

验证方法

推送代码到目标分支后,观察Jenkins任务是否不会自动启动;同时等待Cron定时时间到达,确认任务能正常触发运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 22:05:17