如果我的一个环境变量等于字符串,我想将布尔变量设置为true。我只想在这个RUN_TESTS
变量为true的情况下运行我的测试阶段。
pipeline{
environment {
RUN_TESTS = expression { "${env.JOB_BASE_NAME}" == 'Test Pipeline' }
}
stages{
stage('test'){
when {
expression { RUN_TESTS }
}
steps{
// run my tests.......
}
}
}
不过,以上内容不起作用。
如何根据环境变量的值设置布尔变量,然后使用该变量有条件地运行管道阶段?
在这种情况下,您似乎不必设置环境变量。你可以直接在你的阶段评估表达:
pipeline{
stages{
stage('test'){
when {
expression { "${env.JOB_BASE_NAME}" == 'Test Pipeline' }
}
steps{
// run my tests.......
}
}
}
另一方面,如果你仍然需要设置环境变量,那么几乎没有什么方法可以做到
Environment variable values must either be single quoted, double quoted, or function calls.
- 用双引号括起来:
environment {
RUN_TESTS = "${env.JOB_BASE_NAME == 'Test Pipeline'}"
}
- 在函数调用中包装此表达式,如下所示:
def run_tests() {
return "${env.JOB_BASE_NAME}" == 'Test Pipeline'
}
pipeline{
environment {
RUN_TESTS = run_tests()
}
stages{
stage('test'){
when {
expression { RUN_TESTS }
}
steps{
// run my tests.......
}
}
}
但总的来说,我会选择第一种方法