jenkins - 詹金斯管道传递变量
问题描述
我有一个管道,我正在通过一个 docker 容器构建我的图像,它输出图像标签,我想将该图像标签传递到下一阶段,当我在下一阶段回显它时它会打印出来。但是当我在外壳中使用它时,它会变空。这是我的管道
pipeline {
agent any
stages {
stage('Cloning Git') {
steps {
git( url: 'https://xxx@bitbucket.org/xxx/xxx.git',
credentialsId: 'xxx',
branch: 'master')
}
}
stage('Building Image') {
steps{
script {
env.IMAGE_TAG = sh script: "docker run -e REPO_APP_BRANCH=master -e REPO_APP_NAME=exampleservice -e DOCKER_HUB_REPO_NAME=exampleservice --volume /var/run/docker.sock:/var/run/docker.sock registry.xxxx/build", returnStdout: true
}
}
}
stage('Integration'){
steps{
script{
echo "passed: ${env.IMAGE_TAG}"
sh """
helm upgrade exampleservice charts/exampleservice --set image.tag=${env.IMAGE_TAG}
"""
sh "sleep 5"
}
}
}
}
}
管道输出
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Integration)
[Pipeline] script
[Pipeline] {
[Pipeline] echo
passed:
b79c3bf-b6eec4f
[Pipeline] sh
[test101] Running shell script
+ helm upgrade exampleservice charts/exampleservice --set image.tag=
获取空图像标签
解决方案
您应该使用“env”覆盖它。
用这个替换你的代码:
pipeline {
agent any
stages {
stage('Cloning Git') {
steps {
git( url: 'https://xxx@bitbucket.org/xxx/xxx.git',
credentialsId: 'xxx',
branch: 'master')
}
}
stage('Building Image') {
steps{
script {
env.IMAGE_TAG = sh script: "docker run -e REPO_APP_BRANCH=master -e REPO_APP_NAME=exampleservice -e DOCKER_HUB_REPO_NAME=exampleservice --volume /var/run/docker.sock:/var/run/docker.sock registry.xxxx/build", returnStdout: true
}
}
}
stage('Integration'){
steps{
script{
echo "passed: ${env.IMAGE_TAG}"
sh """
helm upgrade exampleservice charts/exampleservice\
--set image.tag="${env.IMAGE_TAG}"
"""
sh "sleep 5"
}
}
}
}
}
推荐阅读
- python - Python中的嵌套For循环(计算三角形的周长)
- python-3.8 - 我刚开始学习 python,当我尝试使用 print 时,它告诉我无法初始化设备 PRN
- c++ - 为什么我的程序显示空向量?
- python - 使用 np.argsort 排序后如何更改值?(在蟒蛇中)
- json - TypeError:Reporter 类型的对象不是 JSON 可序列化的
- laravel - 重定向到 laravel nova 应用程序中的自定义工具 url
- c++ - 有理由不使用最新的 C++ 标准吗?
- react-native - React native - 当用户关闭应用程序时执行一个功能
- javascript - 无法读取未定义的属性“setAttribute”
- mongodb - 在 Github 存储库中使用 MongoDB 连接字符串