Как выполнить многократное условное выполнение этапа, используя «когда» в декларативном конвейере?

Я пытаюсь преобразовать скриптовые конвейеры в декларативный конвейер.

Вот Конвейер:

pipeline {
    agent any
    parameters {
        string(defaultValue: '',
               description: '',
               name : 'BRANCH_NAME')
        choice (
                choices: 'DEBUG\nRELEASE\nTEST',
                description: '',
                name : 'BUILD_TYPE')
    } 
    stages {
        stage('Release build') {
           when {
               expression {params.BRANCH_NAME == "master"}
               expression {params.BUILD_TYPE == 'RELEASE'}
            }
            steps {
                echo "Executing Release\n"
            }
        } //stage
    } //stages
} // pipeline

Смысл в том, что все значения параметров нужно сравнить под when и только потом я хотел выполнить этап.

В скриптовом конвейере вы можете использовать &&, как показано ниже.

stage('Release build') {
    if ((responses.BRANCH_NAME == 'master') && 
       (responses.BUILD_TYPE == 'RELEASE')) {
         echo "Executing Release\n"
    }
}

Как получить коллективный возврат от expression в декларативном конвейере?


person np2807    schedule 20.03.2021    source источник
comment
Вы ищете allOf { ... }?   -  person MaratC    schedule 20.03.2021


Ответы (1)


Это должно быть похоже

pipeline {
    agent any
    parameters {
        string(defaultValue: '',
               description: '',
               name : 'BRANCH_NAME')
        choice (
                choices: 'DEBUG\nRELEASE\nTEST',
                description: '',
                name : 'BUILD_TYPE')
    } 
    stages {
        stage('Release build') {
           when {
               allOf {
                    expression {params.BRANCH_NAME == "master"};
                    expression {params.BUILD_TYPE == 'RELEASE'}
               }
            }
            steps {
                echo "Executing Release\n"
            }
        } //stage
    } //stages
} // pipeline

вы можете найти другую поддержку DSL внутри when здесь

person Samit Kumar Patel    schedule 20.03.2021