我不知道为什么我不能让它工作,但可以使用一些帮助。
我有一个定义了矩阵的 Jenkins 管道,其中一个轴被定义为 Windows 或 linux 的操作系统。
在我的一个阶段,如果操作系统是 linux 或 windows,我想调用不同的东西,但我一直收到错误
java.lang.NoSuchMethodError: No such DSL method '$' found among steps [ArtifactoryGradleBuild, MavenDescriptorStep, acceptGitLabMR, addEmbeddableBadgeConfiguration, addGitLabMRComment,
我的矩阵是这样定义的
matrix {
agent {
label ("${DUT} && ${OS}")
}
axes {
axis {
name 'BUILD_TYPE'
values 'Internal'
}
axis {
name 'DUT'
values 'DUT'
}
axis {
name 'OS'
values 'windows', 'linux'
}
}
我的舞台是这样定义的
stage ("Cleaning System") {
steps {
script {
if (${OS} == 'windows') {
stage ('Cleaning Up Windows System') {
echo "WINDOWS CLEAN"
}
}
if (${OS} == 'linux') {
stage ('Cleaning Up Linux System') {
echo "LINUX CLEAN"
}
}
}
}
}
它似乎不知道脚本块中的 ${var} 语法?或者我做错了什么? 谢谢!
答案 0 :(得分:1)
您不需要在比较中使用 $
:
应该是:
if (OS == 'windows') {
...
}
if (OS == 'linux') {
...
}