使用硬编码参数运行Jenkinsfile

时间:2019-03-07 10:55:28

标签: jenkins jenkins-pipeline

我有一个jenkinsfile,可以根据参数构建并部署到不同的环境 例如

    parameters {
        string(defaultValue: "integration", description: '', name: 'TARGET_ENV')
    }    

触发作业时,当前会询问用户要部署到的环境。我想为每个环境设置一个作业项目,而不要求用户输入环境。

实现此目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

您可以为每个环境创建一个工作流(脚本化)管道作业,然后使用set参数调用您的实际作业:

工作流作业“ deployEnvDev”的管道脚本:

node {
   stage("Deploy Environment Dev") {
      build job: 'here/the/path/to/your/deploy/job',
      wait: true,
        parameters: [
            string(name: 'TARGET_ENV', value: 'dev' )
        ]
    }
}

工作流作业'deployEnvProd'的管道脚本:

node {
   stage("Deploy Environment Prod") {
      build job: 'here/the/path/to/your/deploy/job',
      wait: true,
        parameters: [
            string(name: 'TARGET_ENV', value: 'prod' )
        ]
    }
}

deploy-job的详细信息页面上显示了“ deploy-job”的路径“ here / the / path / to / your / deploy / job”:

enter image description here

此设置使您可以有不同的作业来启动特定环境的部署,而无需要求用户手动设置环境。部署本身与过去的工作相同。因此,您的工作就是进行修改或维护。

答案 1 :(得分:0)

在管道用户界面中配置参数。

enter image description here

添加到脚本:

parameters {
        string(defaultValue: "integration", description: '', name: 'TARGET_ENV')
    } 

并在代码中使用:

echo "Parameter: ${TARGET_ENV}"