Обеспечение того, чтобы каждый этап выполнялся именно тогда и там, где он должен

В этой статье мы подробно рассмотрим одну из таких функций: условные выражения в Jenkinsfiles.

Условные выражения позволяют вам контролировать выполнение определенных этапов конвейера Jenkins. Это меняет правила игры в оптимизации вашего конвейера Jenkins.

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

Определение условных выражений

Условные выражения в Jenkinsfiles предоставляют мощный способ управления тем, когда должны выполняться определенные этапы.

Представьте себе такие сценарии, как запуск тестов исключительно в ветке разработки или запуск сборки только при изменении кода.

Чтобы определить условные выражения, вы используете блок «when» внутри этапа. Синтаксис прост:

stage('Example Stage') {
    when {
        expression {
            // Your boolean expression here
        }
    }
    steps {
        // Define your stage steps
    }
}

В блоке «выражение» вы можете создавать логические выражения на основе таких факторов, как активная ветвь.

Дженкинс предоставляет переменную среды «BRANCH_NAME», упрощающую проверку текущей ветки.

Вот простой пример: чтобы запускать этап только тогда, когда текущая ветвь — «dev», вы можете определить его следующим образом:

when {
    expression {
        BRANCH_NAME == 'dev'
    }
}

Теперь этот этап будет выполняться только в ветке «dev», в противном случае он будет пропущен.

Объединение условий

Помимо простых условий, вы можете повысить эффективность условных выражений, объединив их с помощью выражений «or» и «and» в блоке «when».

Например, предположим, что вы хотите запустить этап как в ветвях «dev», так и в «master». Вы можете добиться этого с помощью выражения «or»:

when {
    expression {
        BRANCH_NAME == 'dev' || BRANCH_NAME == 'master'
    }
}