Какова оценка шаблона в настройке ветки Jenkinsfile? - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь определить шаблон ветвления в операторе когда внутри стадии.

Примерно так:

stage('deploy to staging') {
agent label:'some-node'
when { branch "feature/*" }
steps {
    sh './deploy_pr.sh'
}

}

Что если я хочу большесложный шаблон?

Я пытаюсь обнаружить что-то вроде feature / 0.10.25, и следующий шаблон не работает:

when { branch 'feature/[0-9]+.[0-9]+.[0-9]+' }

Не работает.И это правильное регулярное выражение, согласно https://regexr.com/

1 Ответ

0 голосов
/ 02 октября 2018

Хорошо!Итак, по трассировке стека ошибок я обнаружил, что в параметре when-branch Jenkins сравнивает с шаблонами стилей Ant: https://ant.apache.org/manual/dirtasks.html

Это означает, что он не ожидает регулярное выражение, но более простые вещи, такие как:

        */staging/*

Я решил эту проблему, используя вместо этого параметр when-expression, например:

        when { 
            expression { BRANCH_NAME ==~ /feature\/[0-9]+\.[0-9]+\.[0-9]+/ }
        }

, который использует выражения groovy, как описано здесь:

https://www.regular -expressions.info / groovy.html

Особенно поищите объяснение оператора == ~, которое было полезно.

Для самого регулярного выражения вы можете проверитьВаш здесь:

https://regexr.com/

...