Работа Дженкинса для нескольких репозиториев Github

Я хочу создать одно задание Jenkins, которое подключено / прослушивает несколько репозиториев Github, с веб-перехватчиком для запуска задания путем открытия запроса на перенос в одном из репозиториев с использованием плагинов «построитель запросов на перенос».

Я видел в Jenkins возможность выбрать задание типа Github Organization, но для этого требуется jenkinsfile в каждом репо, что противоречит цели.

кто-то предложил мне создать задание для каждого репо, а затем запустить общее задание с именем репо в качестве параметров, но если у меня 20 репозиториев, я не хочу создавать 20 заданий.

Кто-нибудь знает, как это сделать?


person boaz barkan    schedule 26.02.2020    source источник
comment
Вероятно, это не то, что вы хотели услышать, но 20 заданий - это не так уж и плохо, вы можете выполнить их за 10 минут, скопировав одно с другого - в качестве бонуса у вас есть. отдельная история для каждого триггерного задания. Другим вариантом может быть промежуточное программное обеспечение, ожидающее событий веб-перехватчика и запускающее задание.   -  person Tupteq    schedule 27.02.2020
comment
@Tupteq спасибо за ваш вклад, я создал сценарий для дублирования заданий, но не доволен управлением 20 заданиями (даже из-за того, что все задания работают с одним и тем же файлом jenkins). Я смотрел на действие Github, которое запускает задание из repo on pull req, но это все еще не хорошее решение, потому что вам нужно создавать действие в каждом репо и управлять им, и они еще не поддерживают стабильные IP-адреса.   -  person boaz barkan    schedule 27.02.2020


Ответы (1)


Вы можете достичь своей цели, создав один проект типа Pipeline в Jenkins и проанализировав полезную нагрузку веб-перехватчика GitHub, чтобы получить параметры, необходимые для определения того, какие из ваших 20+ репозиториев вам нужно создать для каждого случая.

Для достижения аналогичной цели я использую Generic Webhook Trigger plugin. Эти плагины позволяют анализировать все поля json, включенные в веб-перехватчик. Там вы можете найти информацию о репо / ветке / PR, необходимую для настройки выполнения вашего задания, и, например, передать эти параметры на этап оформления заказа.

person matus    schedule 27.02.2020