Выполнить шаг в декларативном конвейере Jenkins, только если это не ветвь функции или запрос на вытягивание - PullRequest
0 голосов
/ 07 августа 2020

Я хотел бы выполнить определенный шаг в декларативном конвейере Jenkins, только если данная сборка не является функциональной ветвью или запросом на вытягивание, чтобы эта стадия запускалась во всех других ветвях и запросах на вытягивание.

В нашем случае функциональная ветка начинается с префикса feature/ и, согласно этой вики-страницы Jenkins , запросы на вытягивание могут быть определены с помощью переменной среды CHANGE_ID, которая заполняется только для запросов на вытягивание. .

Основываясь на этом, я придумал следующий подход:

stage("My stage") {
    when {
        expression {
            boolean isPullRequest = env.CHANGE_ID
            boolean isFeatureBranch = env.BRANCH_NAME ==~ 'feature/.*'
            return isPullRequest || !isFeatureBranch
        }
    }
    steps {
        // Do something
    }
}

Интересно (а) правильно ли это и (б) есть ли более краткий способ делаете это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...