Декларативный конвейер Jenkins, использующий условие When для имени ветви - PullRequest
1 голос
/ 17 января 2020

Я использую декларативный конвейер Jenkins и хочу развернуть свое приложение в соответствии с веткой git. Даже в информации о ветвлении в Jenkins и при совпадении условий Дженкинс говорит: * "пропустил Deploy до стадии разработки из-за условных условий". Это то же самое, что и для тестовой ветки, когда ветвь является тестовой. Как мне решить эту проблему?

Примечание. Ветви для создания параметров конфигурации проекта, таких как * / development, * / test, * / master и Jenkins, могут сработать, когда я отправлю sh свой код в dev или тестовая ветвь.

stage('Deploy to dev'){
        when{
            beforeAgent true
            anyOf{
                branch "origin/develop"
            }
        }
    stage('Deploy to staging'){
        when{
            beforeAgent true
            anyOf{
                branch "origin/test"
            }
        }

Консольный вывод

           +refs/heads/*:refs/remotes/origin/*
            Seen branch in repository origin/develop
            Seen branch in repository origin/master
            Seen branch in repository origin/test
            Seen 3 remote branches
             > git show-ref --tags -d # timeout=10
            Checking out Revision 5ebda79eb3a50a578786e75587f7d92dfc399122 (origin/develop)

           [Pipeline] { (Deploy to dev)
           Stage "Deploy to dev" skipped due to when conditional

           Stage "Deploy to staging" skipped due to when conditional

1 Ответ

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

определяется переменная BRANCH_NAME? Эта переменная используется шагом when.

Использовали ли вы многоуровневый плагин (github), который устанавливает эту переменную автоматически? Сделайте println, чтобы увидеть, определено ли оно.

для установки этой переменной, вот что я делаю на этапе сборки

  stage('Build') {
            steps {
                script {
                    def commit = checkout scm
                    // we set BRANCH_NAME to make when { branch } syntax work without multibranch job
                    env.BRANCH_NAME = commit.GIT_BRANCH.replace('origin/', '')

                    //actually build ...
                }
            }
        }
...