Автоматическое определение ветвления конвейера Jenkins

Я переношу свою старую работу свободного стиля Jenkins на многопоточную конвейерную систему. Я также хочу использовать с ними ловушку GitLab.

Моя проблема - обнаружение ветки. Я делаю это вручную, но хочу, чтобы это было автоматически: когда новая ветка помещается в git, GitLab запускает задание Jenkins, которое запускает обнаружение ветки, если параметр ветки из GitLab в данный момент неизвестен для Jenkins. Возможно ли это сделать или этого не существует?

К вашему сведению: я попытался запустить работу с несколькими ветвями конвейера, но Дженкинс говорит:

ERROR: No parameterized job named XXX found.

person bobkilla    schedule 08.06.2016    source источник


Ответы (4)


Включите «Построить периодически» в конфигурации многоотраслевого задания, и индексация веток начнется автоматически.

person mrkernelpanic    schedule 09.06.2016
comment
конечно, но когда gitlab вызовет новую фиксацию в новой ветке, он потерпит неудачу, потому что мое задание попытается найти задание, сгенерированное конвейером для этой ветки, которое не существует, потому что обнаружение ветки не было запущено. - person bobkilla; 09.06.2016
comment
Как тогда выглядит ваш фильтр включения для ветвей в многоотраслевом конвейере? - person mrkernelpanic; 09.06.2016

Что вам действительно нужно, так это плагин исходного кода ветки для GitLab с интеграцией webhook, который отслеживается как RFE в JIRA.

В противном случае используйте простой исходный код ветки Git и настройте GitLab для отправки уведомлений Jenkins на /git/notifyCommit (IIRC), как описано в вики плагина Git. Необходимо указать только url, никаких других деталей. Ветвление, индексирующее эти триггеры, должно как обнаруживать новые или удаленные ветки, так и изменения в заголовке существующей ветки, и соответственно планировать сборки.

person Jesse Glick    schedule 10.06.2016

Вы можете установить веб-перехватчик в GitLab для push-событий и URL-адресов, например http://<yourserver>/git/notifyCommit?url=<URL of the Git repository>.

См. https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin#GitPlugin-Pushnotificationfromrepository

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

person Martin    schedule 13.07.2016

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

https://github.com/jenkinsci/gitlab-plugin/issues/298

TL; DR: конвейер с несколькими ветвями еще не поддерживается, чтобы его можно было легко запустить с помощью фиксации gitlab. Есть обходной путь. Посмотрите ссылку выше.

person bobkilla    schedule 10.08.2016