Дженкинс работа DSL охранник-спасатель в трубопроводе

В последнее время я работаю над проектом, в котором меняю устаревшие потоки сборки на конвейер сборки в нескольких заданиях, генерируемых 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")
                    }
                }
            }
        }
    }
}

0 ответов

Другие вопросы по тегам