在执行某些步骤(例如 when 指令)后,如何跳过 Jenkins 阶段?

Roq*_*qux 3 jenkins jenkins-groovy jenkins-pipeline

如何在执行过程中跳过 Jenkins 阶段?一旦确定了跳过条件,这就像when在某些步骤之后或步骤中间使用一样。我知道我可以进一步分解阶段/步骤并使用全局变量来实现此目的,但似乎应该有一种更简单的方法。

该步骤应该显示为已跳过,而不是失败或不稳定。

stage('Builds') {
    failFast true
    parallel {
        stage('FlagA') {
            steps {
                BuildWithFlag("FlagA")
            }
        }
        stage('FlagB') {
            steps {
                BuildWithFlag("FlagB")
            }
        }
        ...

void BuildWithFlag(String flag) {
    skipCondition = false
    <setup-steps>
    if(skipCondition) {
        currentStage.result = '' // Doesn't work
        return
    }
    <build-steps>
}
Run Code Online (Sandbox Code Playgroud)

相关:
Jenkins 管道中的条件步骤/阶段
如何在声明性管道中执行 when..else
Jenkins 管道阶段跳过基于管道中定义的常规变量

所有这些都when在阶段开始时使用。我需要在一个步骤中模仿它。

Roq*_*qux 6

您想要搭建舞台"NOT_BUILT"。这是为使用 跳过的步骤指定的状态when

例如

if(skipCondition) {
    catchError(buildResult: 'SUCCESS', stageResult: 'NOT_BUILT') {
        error "Skipping..." // Force an error that we will catch to set the stageResult
    }
    return
}
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

4238 次

最近记录:

2 年,1 月 前