Есть ли способ добавить пользовательскую ссылку командной строки в сценарий оболочки в Jenkins? - PullRequest
0 голосов
/ 07 октября 2019

У нас есть условный сценарий конвейера Jenkins, где этапы выполняются или пропускаются в зависимости от параметров. При пропуске этапов они также исчезают из вида этапа, что нам не нужно.

Параметр относится либо к сборке / запуску выпуска / завершению выпуска проекта.

Мы пробовали выпускплагин. Однако он не поддерживает многоотраслевые задания DSL со сценариями. Мы также рассмотрели плагин "batch command", который имеет ту же проблему.

1 Ответ

0 голосов
/ 07 октября 2019

Если ваш конвейер написан по сценарию, то

import org.jenkinsci.plugins.pipeline.modeldefinition.Utils

def call(boolean condition, body) {
    def config = [:]
    body.resolveStrategy = Closure.OWNER_FIRST
    body.delegate = config

    if (condition) {
        body()
    } else {
        Utils.markStageSkippedForConditional(STAGE_NAME)
    }
}

решит проблему, поскольку пометит этап как пропущенный ( jenkins-source ) вместо того, чтобы заставить его исчезнуть. Но вам придется реорганизовать свой код, чтобы использовать это. Предложение о том, где разместить ее, - общая библиотека в качестве статического вызова для легкого доступа.

Используется

when(shouldSkip == false) {
  yourStage()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...