Jenkins参数默认为环境变量?

147次阅读
没有评论

问题描述

想要创建一个参数字段,该字段默认为当前构建号。但是,他发现将BUILD_NUMBER环境变量赋值给参数DEPLOY_BUILD_NUMBER似乎没有生效。即使尝试了其他方法也没有帮助。用户想知道是否有其他方法可以实现这个需求。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

你需要使用双引号而不是单引号。单引号字符串不执行字符串插值。
例如:

parameters {
    string(
        name: 'DEPLOY_BUILD_NUMBER',
        defaultValue: "${BUILD_NUMBER}",
        description: 'Fresh Build and Deploy OR Deploy Previous Build Number'
    )
}

在上面的示例中,我们使用双引号将${BUILD_NUMBER}插入到defaultValue中。这样就可以将BUILD_NUMBER的值赋给DEPLOY_BUILD_NUMBER参数。

方案2

如果在读取构建参数的阶段,BUILD_NUMBER环境变量尚未填充,可能需要在构建步骤中获取BUILD_NUMBER的值,并将其赋给DEPLOY_BUILD_NUMBER参数。
以下是一个示例脚本,可以在构建步骤中获取BUILD_NUMBER的值,并将其赋给DEPLOY_BUILD_NUMBER参数:

steps {
    script {
        if (params.DEPLOY_BUILD_NUMBER == null) {
            params.DEPLOY_BUILD_NUMBER = env.BUILD_NUMBER
        }
    }
}

在这个示例中,我们首先检查DEPLOY_BUILD_NUMBER参数是否为空。如果为空,我们将env.BUILD_NUMBER的值赋给DEPLOY_BUILD_NUMBER参数。
请注意,这个解决方案假设在读取构建参数的阶段,BUILD_NUMBER环境变量尚未填充。如果BUILD_NUMBER环境变量已经填充,那么方案1应该可以正常工作。

正文完