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

如何配置参数化流水线自动切换RELEASE/DEBUG构建参数无需手动修改

解决方案

你无需修改现有构建阶段的判断逻辑,仅需在参数初始化阶段增加时间自动判断逻辑,覆盖参数默认值即可实现需求,修改后的完整流水线代码如下:

pipeline {
    stages {
        stage('Setup parameters') {
            steps {
                script { 
                    properties([
                        parameters([
                            choice(
                                defaultValue: 'RELEASE', 
                                choices: ['RELEASE', 'DEBUG'], 
                                name: 'BUILD_CONFIG'
                            ),
                        ])
                    ])
                    // 仅对SCM自动触发的构建执行时间判断,不影响手动运行时的参数选择
                    def isScmTriggered = currentBuild.buildCauses.any { it.class.simpleName == 'SCMTriggerCause' }
                    // 如需适配指定时区,可使用下方注释的代码,替换TimeZone参数为你所在时区即可
                    // def currentHour = new Date().format('HH', TimeZone.getTimeZone('Asia/Shanghai')).toInteger()
                    def currentHour = new Date().hours
                    // 12点到13点区间对应24小时制小时值为12
                    if (isScmTriggered && currentHour == 12) {
                        params.BUILD_CONFIG = 'DEBUG'
                    }
                }
            }
        }
        stage('Build release'){
            when {
                expression {
                   return params.BUILD_CONFIG == 'RELEASE'
                }
            }
            steps{
                script {
                    def msbuild = tool name: 'MSBuild', type: 'hudson.plugins.msbuild.MsBuildInstallation'
                    bat "\"${msbuild}\" /Source/project-GRDK.sln /t:Rebuild  /p:configuration=\"Release Steam D3D11\""
                }
            }
        }
        stage('Build debug'){
            when {
                expression {
                   return params.BUILD_CONFIG == 'DEBUG'
                }
            }
            steps{
                script {
                    def msbuild = tool name: 'MSBuild', type: 'hudson.plugins.msbuild.MsBuildInstallation'
                    bat "\"${msbuild}\" /Source/project-GRDK.sln /t:Rebuild /p:configuration=\"Debug Steam D3D11\""
                }
            }
        }
    }
}

逻辑说明

  • 保留原有参数定义,默认值仍为RELEASE,手动触发流水线时的参数选择不受影响
  • 仅SCM变更自动触发的构建会执行时段判断,其他触发来源的构建不会被自动修改参数
  • 12:00-13:00时段内的SCM触发构建会自动将BUILD_CONFIG参数覆盖为DEBUG,自动执行debug构建任务,其余时段仍默认执行RELEASE构建
  • 若Jenkins系统时区和你所在时区不一致,可使用代码中注释的时区适配代码,指定对应时区即可避免时间判断偏差

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:48:03