jenkins - 管道配置部分中的 Jenkins 管道配置
问题描述
我正在尝试设置“通用”构建系统并使用 Docker 和 Jenkins 来构建和运行管道测试。
我使用包含 docker 需要的大部分内容的包装脚本(从 repo 中提取)。唯一改变的是图像的标签。
如何以某种方式在构建配置中将此标记定义为环境变量或类似的变量,然后可以将其传递给实际的管道脚本。
简化脚本:
pipeline {
stages {
stage("Build test image") {
dockerImage = docker.build("...", "--build-arg MYBRANCH=${SOMEVAR}")
}
}
}
那么我如何设置(每个构建配置)SOMEVAR
?
我可以拥有每个自定义 Jenkinsfile 分支,但最终只会导致维护噩梦(我现在已经有 7 个分支要构建)
解决方案
它可以由环境中的静态或参数中的动态定义。如果是参数,那么您应该在通过接口或 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}")
}
}
}
推荐阅读
- c++ - ICU::UnicodeString 找到 indexOf 一个代码点,而不是一个代码单元
- android - 如何在蓝牙 java android 上录制时强制音频播放到耳机?
- regex - 使用 perl 替换配置文件中的字符串
- php - CodeIgniter,未找到请求的页面
- excel - PasteSpecial 和 xlPasteValues
- swift - 我可以在 Mac 应用程序中轻松识别 MIDI 音符吗?
- python - 使用Python从Excel中的2个文件计算距离
- r - R中的顺序错误和余弦距离
- firebase - what does -P flag mean in firebase deploy command?
- linkedin - 获取 ugcPosts 的 LinkedIn CDN 图片 url