我正在尝试设置“通用”构建系统,并将Docker与Jenkins结合使用来构建和运行带有管道的测试。
我使用包装器脚本(从回购中拉出),其中包含了docker需要的大部分内容。唯一更改的是图像标签。
如何在构建配置中以某种方式将此标记定义为环境变量或类似变量,然后将其传递给实际的管道脚本。
简化脚本:
pipeline {
stages {
stage("Build test image") {
dockerImage = docker.build("...", "--build-arg MYBRANCH=${SOMEVAR}")
}
}
}
那么如何设置(按构建配置)SOMEVAR
?
我可以为每个自定义的Jenkinsfile分支创建一个分支,但是最终这只会导致维护噩梦(我现在已经建立了7个分支)
答案 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}")
}
}
}