Jenkins 管道 - If/Else 带有矩阵名称变量的语句
Jenkins Pipeline - If/Else Statement with Matrix Name vars
我不知道为什么我不能让它工作,但需要一些帮助。
我有一个定义了矩阵的 Jenkins 管道,其中一个轴定义为 OS for windows or linux.
在我的一个舞台上,如果 OS 是 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} 语法?或者我做错了什么?
谢谢!
您不需要在比较中使用 $
:
应该是:
if (OS == 'windows') {
...
}
if (OS == 'linux') {
...
}
我不知道为什么我不能让它工作,但需要一些帮助。
我有一个定义了矩阵的 Jenkins 管道,其中一个轴定义为 OS for windows or linux.
在我的一个舞台上,如果 OS 是 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} 语法?或者我做错了什么? 谢谢!
您不需要在比较中使用 $
:
应该是:
if (OS == 'windows') {
...
}
if (OS == 'linux') {
...
}