Дженкинс работа 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")
}
}
}
}
}
}