1

最近,我正在做一个项目,我正在交换弃用的构建流程以在几个工作 DSL 生成的 Jenkins 中构建管道。一个特殊的问题是将构建流程保护-救援机制交换为管道语法。我很好奇您对我的解决方案有何看法:

请参阅以下流 DSL:

guard {
    b = build("parameterised_job")
} rescue {
    build("analyzer_job",
        PARAMETER_ONE:b.environment.get("PARAMETER_ONE"),
        PARAMETER_TWO:b.environment.get("PARAMETER_TWO")
        )
}

我使用管道语法创建了以下替代方案:

pipeline {
agent any 
    stages {
        stage("build") {
            steps {
                script {
                    def b = build(job: "parameterised_job", propagate: false)
                    build(job: "analyzer_job",
                    parameters:
                    [[$class: 'StringParameterValue', name: 'PARAMETER_ONE', value: b.buildVariables.PARAMETER_ONE],
                    [$class: 'StringParameterValue', name: 'PARAMETER_TWO', value: b.buildVariables.PARAMETER_TWO]])
                    if(b.result == 'FAILURE') {
                        error("${b.projectName} FAILED")
                    }
                }
            }
        }
    }
}
4

0 回答 0