【发布时间】:2019-10-22 08:08:31
【问题描述】:
我有一个现有的 bash 脚本,它只设置了大约 100 个变量,例如我们作为所有构建作业的第一部分获取的路径、版本号等。 我正在将其中一些构建作业移至 jenkins 管道,并尝试查找是否有一种方法可以在 jenkins 环境阶段从该文件中获取变量,以便在构建管道的后续步骤中使用它。
我觉得我错过了一些东西,因为我对 groovy 不是很熟悉。 我认为可能使用 System.getenv,但这需要设置它们,并且我认为在 sh 脚本块中采购它不会持续存在。
以下是我正在处理但不起作用的内容(尽管给出了一个概念性的想法。)
任何建议将不胜感激!
#!/usr/bin/env groovy
pipeline {
agent {label "${params.VM_to_use}"}
environment {
TARGET_VM = "${params.VM_to_use}"
//I'd like to be able to access vars globally or if better way I'm up for it.
}
stages {
stage ('Get vars in preperation for subsequent build steps...'){
steps {
sh '''
source /net/machine1/globalvars/functions/my_global_vars.sh
# product_123_version number in that file.
'''
script {
currentBuild.displayName = " ${env.product_123_version} - ${TARGET_VM}"
currentBuild.displayName = System.getenv("TESTVAR")
}
}
}
stage ('Build Step 2...'){
steps {
sh '''
# pass version to script...
/build_step_2.sh ${env.product_123_version}
'''
}
}
}
}
【问题讨论】: