管道配置部分中的Jenkins管道配置

时间:2019-08-29 06:52:51

标签: jenkins groovy environment-variables jenkins-pipeline

我正在尝试设置“通用”构建系统,并将Docker与Jenkins结合使用来构建和运行带有管道的测试。

我使用包装器脚本(从回购中拉出),其中包含了docker需要的大部分内容。唯一更改的是图像标签。

如何在构建配置中以某种方式将此标记定义为环境变量或类似变量,然后将其传递给实际的管道脚本。

简化脚本:

pipeline {
  stages {
    stage("Build test image") {
      dockerImage = docker.build("...", "--build-arg MYBRANCH=${SOMEVAR}")
    }
  }
}

那么如何设置(按构建配置)SOMEVAR

我可以为每个自定义的Jenkinsfile分支创建一个分支,但是最终这只会导致维护噩梦(我现在已经建立了7个分支)

1 个答案:

答案 0 :(得分:1)

可以通过环境中的静态或参数中的动态定义。如果使用参数,则在通过接口或api运行构建时应提供值。

pipeline {
    environment {
        SOMEVAR = "123"
    }
    parameters {
        choice(name: 'CHOICE_VAR', choices: ['1', '2', '3'], description: 'Type...')
        string(name: 'STRING_VAR', defaultValue: '', description: 'Type...')
    }
    stages {
        stage("Build test image") {
            dockerImage = docker.build("...", "--build-arg MYBRANCH=${env.SOMEVAR}")

            dockerImage = docker.build("...", "--build-arg MYBRANCH=${params.CHOICE_VAR}")
            dockerImage = docker.build("...", "--build-arg MYBRANCH=${params.STRING_VAR}")
        }
    }
}