Как обработать возможную несуществующую ветвь при копировании артефактов в декларативном конвейере Jenkins? - PullRequest
0 голосов
/ 09 января 2020

У меня есть два многоотраслевых конвейерных задания, где одно должно брать артефакты от другого. Если в обоих репозиториях есть соответствующие ветви, я хочу использовать соответствующую ветку, но при необходимости я хочу вернуться к использованию master; библиотека может или не может быть изменена для этой функции в приложении. Я могу легко выбрать текущую ветку

copyArtifacts(projectName: "upstream_library/${BRANCH_NAME}", selector:lastSuccessful())

, но если ветки нет, сборка завершается неудачно. Кажется, мне нужно либо поймать ошибку, либо проверить наличие ветви перед извлечением, и я не вижу, как это сделать в декларативном конвейере. Должен ли я использовать шаг script? ( Декларативный конвейер Дженкинса, извлечение артефакта предлагает решение для немного другой проблемы)

1 Ответ

0 голосов
/ 09 января 2020

A script пошаговые работы

steps {
    script {
        try {
            copyArtifacts(projectName: "upstream_library/${BRANCH_NAME}", selector:lastSuccessful())
        } catch (err) {
            copyArtifacts(projectName: "upstream_library/master", selector:lastSuccessful())
        }
    }
...