首页 > 解决方案 > 管道配置部分中的 Jenkins 管道配置

问题描述

我正在尝试设置“通用”构建系统并使用 Docker 和 Jenkins 来构建和运行管道测试。

我使用包含 docker 需要的大部分内容的包装脚本(从 repo 中提取)。唯一改变的是图像的标签。

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

简化脚本:

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

那么我如何设置(每个构建配置)SOMEVAR

我可以拥有每个自定义 Jenkinsfile 分支,但最终只会导致维护噩梦(我现在已经有 7 个分支要构建)

标签: jenkinsgroovyenvironment-variablesjenkins-pipeline

解决方案


它可以由环境中的静态或参数中的动态定义。如果是参数,那么您应该在通过接口或 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}")
        }
    }
}

推荐阅读