我试图根据星期几在Jenkinsfile中添加一个“验证”阶段。如果今天是星期天,则需要验证,否则不需要验证。
if语句不起作用
在这里我声明变量
DAY=sh(returnStdout: true, script: 'date +"%a"').trim()
这是舞台
stage('validation') {
steps {
script {
if ( DAY == "SUN" ) {
echo "Validation is required, today is $DAY"
}
else {
echo "No validation required, today is $DAY"
}
}
}
}
这是输出
No validation required, today is Sun
变量Day
的值正确,但是if语句不能正常工作
预先感谢
答案 0 :(得分:1)
由于DAY中单词的大小写不同,因此似乎比较失败。 试试这个
if ( DAY == "Sun" ) {
echo "Validation is required, today is $DAY"
}
else {
echo "No validation required, today is $DAY"
}
答案 1 :(得分:0)
要确保比较的另一种方法至少是将结果转换为大写形式。这样,您的测试将保持不变。
请确保为date +"%a"
使用force an English output
(在我的法语设置中,我得到的是“ dim.
”,而不是“ Sun
”)
DAY=sh(returnStdout: true, script: 'LANG=en_us_88591 date +"%a"').trim().toUpperCase().replaceAll('.','')
这样,您的Jenkinsfile便可以在任何工作站上运行,无论其locale。