Ограничить, какая ветка построена по конвейеру Дженкинса? - PullRequest
0 голосов
/ 15 октября 2018

В настоящее время я настраиваю сервер Jenkins, размещенный в контейнере Docker в AWS.

Я использую BlueOcean для настройки хранилища.

Прямо сейчас конвейер сканирует все ветви в хранилище, чтобы обнаружить Jenkinsfiles, и затем автоматически строит эту ветку, если обнаружит изменения.Я сканирую репо каждые 5 минут, чтобы обнаружить изменения.

Однако я не хочу запускать сборки и задания автоматически, если это какая-то ветвь случайных объектов.Я пытаюсь ограничить автоматически запускаемые сборки только изменениями в промежуточной и основной ветвях.

Поэтому мой вопрос заключается в том, как / где вы настраиваете конвейер Jenkins GitHub для сборки только определенных ветвей, а не сканирования всех ветвей?

Ответы [ 3 ]

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

Трубопровод принимает входные параметры.Таким образом, вы можете создать параметр с именем branch .

Внутри вашего конвейера вы можете использовать регулярное выражение для соответствия только необходимым ветвям.

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

Многопрофильное конвейерное задание - ваш друг.

Вместо того, чтобы пытаться ограничить, какие ветви Jenkins в первую очередь опрашивает то, что я делаю в своем Jenkinsfile - это контроль источника опроса каждую минуту:

triggers { pollSCM('* * * * *') }

Это будет опрашивать каждую ветвь и создавать задание, в котором он найдет файл Jenkinsfile в расположении и имени, указанном вами в конфигурации задания Multibranch Pipeline.

Side Note

Об единственной конфигурации вмногоотраслевой конвейер:

  1. Где находится репозиторий SCM?
  2. Относительный путь к рабочей области и имя Jenkinsfile.(Вы можете называть его Бобом, если хотите)

Многоотраслевое задание конвейера устанавливает дополнительную переменную среды: BRANCH_NAME, которая позволяет вам условно выполнять действия в конвейере, например:

script {
    if( "${env.BRANCH_NAME}" == "integration" ) {
        //Do something useful
    }
}

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

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

Я предполагаю, что вы используете плагин GitHub.Я бы посоветовал настроить веб-крючок в вашем репозитории с помощью Generic Webhook Trigger Plugin - https://wiki.jenkins.io/display/JENKINS/Generic+Webhook+Trigger+Plugin

Этот плагин великолепен и позволяет вам легко извлекать значения во входящем веб-крюке и использовать их в вашем конвейере.Напримервы можете извлечь ветку, из которой пришел веб-крючок, и построить ее только в том случае, если ветвь staging или master

В нашей настройке мы используем простое задание «Процессор триггера веб-крючка», который читает входящий веб-крючок извсе репозитории и триггеры ниже по потоку, используя значения, извлеченные из webhook.

...