如何在声明性管道中使用 'when' 进行阶段的多条件执行?
How to do Multiple conditional execution of stage using 'when' in declarative pipeline?
我正在尝试将脚本化管道转换为声明式管道。
这是一个
管道:
pipeline {
agent any
parameters {
string(defaultValue: '',
description: '',
name : 'BRANCH_NAME')
choice (
choices: 'DEBUG\nRELEASE\nTEST',
description: '',
name : 'BUILD_TYPE')
}
stages {
stage('Release build') {
when {
expression {params.BRANCH_NAME == "master"}
expression {params.BUILD_TYPE == 'RELEASE'}
}
steps {
echo "Executing Release\n"
}
} //stage
} //stages
} // pipeline
意思是所有的参数值都需要在when
下进行比较,然后我才想执行一个阶段。
在脚本管道中,您可以像下面的代码片段一样使用 &&。
stage('Release build') {
if ((responses.BRANCH_NAME == 'master') &&
(responses.BUILD_TYPE == 'RELEASE')) {
echo "Executing Release\n"
}
}
如何在声明性管道中从 expression
获取集体 return?
必须像
pipeline {
agent any
parameters {
string(defaultValue: '',
description: '',
name : 'BRANCH_NAME')
choice (
choices: 'DEBUG\nRELEASE\nTEST',
description: '',
name : 'BUILD_TYPE')
}
stages {
stage('Release build') {
when {
allOf {
expression {params.BRANCH_NAME == "master"};
expression {params.BUILD_TYPE == 'RELEASE'}
}
}
steps {
echo "Executing Release\n"
}
} //stage
} //stages
} // pipeline
您可以在里面找到其他 dsl 支持 when
here
我正在尝试将脚本化管道转换为声明式管道。
这是一个 管道:
pipeline {
agent any
parameters {
string(defaultValue: '',
description: '',
name : 'BRANCH_NAME')
choice (
choices: 'DEBUG\nRELEASE\nTEST',
description: '',
name : 'BUILD_TYPE')
}
stages {
stage('Release build') {
when {
expression {params.BRANCH_NAME == "master"}
expression {params.BUILD_TYPE == 'RELEASE'}
}
steps {
echo "Executing Release\n"
}
} //stage
} //stages
} // pipeline
意思是所有的参数值都需要在when
下进行比较,然后我才想执行一个阶段。
在脚本管道中,您可以像下面的代码片段一样使用 &&。
stage('Release build') {
if ((responses.BRANCH_NAME == 'master') &&
(responses.BUILD_TYPE == 'RELEASE')) {
echo "Executing Release\n"
}
}
如何在声明性管道中从 expression
获取集体 return?
必须像
pipeline {
agent any
parameters {
string(defaultValue: '',
description: '',
name : 'BRANCH_NAME')
choice (
choices: 'DEBUG\nRELEASE\nTEST',
description: '',
name : 'BUILD_TYPE')
}
stages {
stage('Release build') {
when {
allOf {
expression {params.BRANCH_NAME == "master"};
expression {params.BUILD_TYPE == 'RELEASE'}
}
}
steps {
echo "Executing Release\n"
}
} //stage
} //stages
} // pipeline
您可以在里面找到其他 dsl 支持 when
here