Как протестировать конвейер Jenkins (или другой скрипт jenkins), использующий имя ветви? - PullRequest
0 голосов
/ 03 января 2019

Если у меня есть сценарий конвейера Jenkins (хотя этот принцип может действительно применяться к любому сценарию Jenkins), который имеет различное поведение в зависимости от того, какая ветка собирается, как я могу проверить, что он работает правильно, не сливая его в эту ветку? В сценарии конвейера это проверяется как с помощью ключевого слова branch, так и с помощью env.BRANCH_NAME. Я думаю, что последнее может быть чем-то, что вы могли бы как-то переопределить, но я понимаю, как.

Просто чтобы уточнить, у меня есть это наверху моего Jenkinsfile:

def isSpecialBranch = env.BRANCH_NAME ==~ *reg-ex*

Плюс есть также ряд узлов, которые имеют

when { 
    branch 'xxxxx'
}

По сути, я хочу проверить, будет ли конвейер вести себя правильно после объединения изменений с именем ветви, которое соответствует шаблону.

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Вы можете использовать Трубопровод Jenkins , чтобы макетировать ветви.

Вы даже можете высмеивать переменные Дженкинса и все такое.

В любом случае, правильный способ записи выражения when выглядит примерно так (например, для сопоставления с master):

when {
       expression { (branch == 'origin/master') }
}

или (например, для соответствия разработке, функции или исправлению)

when {
     expression { (branch == 'origin/develop' || branch.matches('origin\\/(feature|hotfix)+\\/.*')) }
}

Надеюсь, это поможет.

0 голосов
/ 03 января 2019

Вы можете попробовать это:

static def getBranchName(scm)
{
  return scm.branches[0].name
}

Это нужно запустить с повышенными привилегиями, так что это часть моего класса Utilities в моей общей библиотеке.

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