Jenkins Інтеграція з GitHub: Як встановити плагін Git?

⚡ Розумний підсумок

Jenkins Інтеграція GitHub підключає сервер автоматизації до репозиторію вихідного коду, щоб кожен коміт міг бути зібраний та перевірений автоматично. Встановлення плагіна Git, створення завдання Freestyle, автентифікація за допомогою токена та реєстрація вебхука завершують підключення.

  • 🔌 Підключати Foundation: Jenkins постачається з мінімальним набором функцій, тому підтримка сторонніх розробників здійснюється через плагіни, встановлені з розділу «Керування». Jenkins Сторінка плагінів.
  • ???? Плагіни Git та GitHub: Плагін Git надає вихідний код Code Варіант керування, який клонує репозиторій; плагін GitHub додає обробку вебхуків та звітування про стан комітів.
  • 💻 Потрібен локальний Git: Jenkins делегує клонування виконуваному файлу Git на хості, тому відсутня локальна інсталяція створює репозиторій URL помилка перевірки.
  • 🔑 Маркер автентифікації: GitHub припинив приймати паролі облікових записів для операцій Git у серпні 2021 року, тому для приватних репозиторіїв потрібен персональний токен доступу або ключ SSH.
  • 🪝 Автоматичне запуск: Вебхук репозиторію, що вказує на Jenkins Кінцева точка github-webhook запускає збірку при кожному push-налаштуванні, а не ручному запуску.
  • 🧾 Перевірка: Виконання команди git –version підтверджує, що виконуваний файл вирішено, та Manage Jenkins Інструменти записують свій шлях.
  • 🛠️ Відновлення після збоїв: Відсутнє джерело Code Варіанти керування, відхилені облікові дані та беззвучні вебхуки спричиняють більшість збоїв інтеграції.

Jenkins Інтеграція GitHub

Ви вже дізналися, що Jenkins є і як це зробити встановити його на Windows системаПрипускаючи, що ці основні кроки виконано, тепер перейдемо до керування плагінами.

Jenkins має чудову підтримку плагінів. Доступно понад тисячу плагінів сторонніх додатків. Щоб перевірити, чи Jenkins підтримує сторонній застосунок, який ви маєте на увазі, знайдіть його в каталозі плагінів за адресою https://plugins.jenkins.io/.

Jenkins Інтеграція GitHub

Встановлення плагінів у Jenkins

Jenkins постачається з досить базовою конфігурацією, тому вам потрібно встановити необхідні плагіни, щоб увімкнути підтримку кожної сторонньої програми.

GitHub — це веб-репозиторій коду, який відіграє важливу роль у DevOps. Він надає спільну платформу для кількох розробників, які працюють над одним і тим самим кодом або проектом, для завантаження та отримання оновленого коду, тим самим сприяючи безперервній інтеграції.

Jenkins потребує встановлення плагіна Git, перш ніж він зможе отримувати код з репозиторію GitHub. Ці дві назви плагінів часто плутають, тому таблиця нижче розділяє їх:

Підключати Що це забезпечує Обов'язково для цього покрокового керівництва?
Плагін Git Команда Git опція в розділі «Джерело» Code Керування, клонування репозиторію та вибір гілок Так — це найголовніше
Плагін GitHub Обробка вебхуків, Тригер-гонок GitHub опція, а статус збірки повідомляється комітам Тільки для автоматичного запуску

Вам не потрібно встановлювати ці плагіни, якщо ви вже прийняли запропоновані плагіни під час Jenkins налаштування встановлення, оскільки плагін Git є частиною цього набору. Якщо ні, ось як встановити їх та витягнути код з репозиторію GitHub.

Як встановити плагін Git у Jenkins

Нижче наведено покрокову інструкцію щодо встановлення плагіна Git у Jenkins:

Крок 1: Відкрийте інформаційну панель.
Натисніть на керувати Jenkins кнопку на вашому Jenkins панель приладів:

Встановіть плагін Git у Jenkins

Крок 2: Знайдіть опцію плагінів.
Натисніть Плагіни. На поточному Jenkins випускає цей запис позначено просто Плагіни; старіші випуски мали той самий екран Керування плагінами.

Встановіть плагін Git у Jenkins

Крок 3: На сторінці плагінів відкрийте Доступні плагіни вкладку, а потім:

  1. Оберіть Git підключати
  2. Натисніть Встановити без перезавантаженняЗавантаження плагіна займає кілька хвилин, залежно від вашого інтернет-з’єднання, та встановлюється автоматично.
  3. Ви можете замість цього вибрати Завантажте зараз та встановіть після перезавантаження, і в цьому випадку плагін застосовується, коли Jenkins наступні починаються.
  4. Якщо плагін вже присутній, він відображається на встановлена вкладка, і оновлення не пропонується.

Встановіть плагін Git у Jenkins

Крок 4: Після встановлення плагінів перейдіть до керувати Jenkins > Плагіни > ВстановленоВаші нові плагіни перелічені серед інших.

Встановіть плагін Git у Jenkins

З встановленим плагіном, Jenkins тепер можна вказати на фактичне сховище.

Як інтегрувати Jenkins З GitHub

Тепер ми розглянемо процес інтеграції Jenkins та GitHub на Windows Система:

Крок 1) Створити нову роботу в Jenkins. Відкрийте Jenkins панель керування на вашому Jenkins URLНаприклад http://localhost:8080/, і клацніть Новий елемент:

інтегрувати Jenkins З GitHub

Крок 2) Введіть назву елемента, виберіть тип завдання та натисніть кнопку OK. Для прикладу створимо проект Freestyle.

інтегрувати Jenkins З GitHub

Крок 3) Після натискання OK, сторінка перенаправляє на форму конфігурації проекту. Введіть інформацію про проект тут:

інтегрувати Jenkins З GitHub

Крок 4) Ви побачите Git опція під Source Code управління якщо плагін Git було встановлено в Jenkins:

інтегрувати Jenkins З GitHub

Примітка: Якщо Git опція не відображається, перевстановіть плагін, перезавантажте Jenkinsі знову увійдіть до панелі керування. Git опція буде видимою, як показано вище.

Крок 5) Увійдіть до репозиторію Git URL витягнути код з GitHub.

інтегрувати Jenkins З GitHub

Крок 6) Ви можете отримати повідомлення про помилку під час першого входу до репозиторію URL, Наприклад:

інтегрувати Jenkins З GitHub

Це трапляється, коли Git не встановлено на машині, на якій працює Jenkins. Jenkins не об'єднує власний бінарний файл Git; плагін викликає виконуваний файл Git на хості. Щоб встановити Git локально, перейдіть за посиланням https://git-scm.com/downloads.

інтегрувати Jenkins З GitHub

Завантажте відповідний інсталятор Git для вашого Operating System — у цьому випадку Windows — та встановіть його на запущену машину JenkinsВиконайте інструкції на екрані, щоб завершити встановлення.

інтегрувати Jenkins З GitHub

Крок 7) Jenkins може запускати репозиторії Git після встановлення Git на комп'ютері. Щоб підтвердити встановлення, відкрийте командного рядка, введіть gitі натисніть Enter. З’явиться список опцій Git:

інтегрувати Jenkins З GitHub

:: Confirm the Git executable resolves and report its version
git --version

:: Expected output
git version 2.51.0.windows.1

:: Show the full path Jenkins should record in Global Tool Configuration
where git

Це підтверджує, що Git встановлено у вашій системі.

Примітка: Якщо Git вже встановлено, додайте git.exe шлях під керувати Jenkins > Інструменти (позначено Глобальна конфігурація інструменту на старіших випусках).

Крок 8) Коли все готово, додайте Git URL в Jenkins знову. Повідомлення про помилку не з’являється, що підтверджує Jenkins Інтеграція з Git:

інтегрувати Jenkins З GitHub

Git тепер належним чином налаштовано у вашій системі. Публічний репозиторій на цьому етапі клонуватиметься, але для приватного все ще потрібні облікові дані, що є наступним кроком.

Як пройти автентифікацію Jenkins З персональним токеном доступу GitHub

GitHub припинив приймати паролі облікових записів для операцій Git у серпні 2021 року. Надання імені користувача та пароля в Jenkins тому не вдається виконати спробу в будь-якому приватному репозиторії з помилкою автентифікації, навіть якщо ті самі облікові дані використовуються для входу на веб-сайт GitHub. Персональний токен доступу замінює пароль, і Jenkins зберігає його у власному сховищі облікових даних, а не в конфігурації завдання.

Спочатку створіть токен на GitHub:

  1. У GitHub відкрийте Налаштування > Налаштування розробника > Персональні токени доступу.
  2. Вибрати дрібнозернистий токен, де це можливо, оскільки його можна обмежити одним репозиторієм або classic токен, якщо вашій організації він все ще потрібен.
  3. Надайте доступ для читання вмісту репозиторію. Додайте доступ для запису статусу коміту лише тоді, коли це потрібно. Jenkins щоб повідомляти про результати збірки назад у коміти.
  4. Встановіть термін дії та негайно скопіюйте токен — GitHub відображає його лише один раз.

Потім зареєструйте токен всередині Jenkins:

  1. Перейдіть до керувати Jenkins > Облікові дані > Система > Глобальні облікові дані і натисніть кнопку Додати облікові дані.
  2. Виберіть Ім'я користувача з паролем як такий. Введіть своє ім'я користувача GitHub і вставте знак у поле пароля.
  3. Надайте запису чіткий ідентифікатор, наприклад github-pat щоб його можна було розпізнати на екранах конфігурації завдання.
  4. Повернення до роботи, відкрите Source Code Керування > Gitі виберіть нові облікові дані з Повноваження випадає.

Червона помилка перевірки під репозиторієм URL зникає один раз Jenkins може автентифікувати. Варто пам’ятати два практичні зауваження. По-перше, термін дії токенів закінчується; завдання, яке надійно працювало місяцями і раптово завершується збоєм під час перевірки, майже завжди є простроченим токеном, а не пошкодженим репозиторієм. По-друге, ключ SSH є дійсною альтернативою — додайте закритий ключ як Ім'я користувача SSH із закритим ключем посвідчення та використання git@github.com:owner/repo.git URL форму замість форми HTTPS.

Як запустити тригер Jenkins Автоматично збирається за допомогою вебхука GitHub

Створене вище завдання все ще потрібно запускати вручну, що суперечить меті безперервної інтеграції. Вебхук заповнює цю прогалину: GitHub надсилає HTTP-запит до Jenkins при кожному поштовху, і Jenkins негайно починає будівництво.

Jenkins має бути доступним з GitHub, щоб це працювало. На ноутбуці з підключеним localhost:8080 це не так, тому або хост Jenkins на громадському URL або тимчасово викрити його через службу тунелювання під час тестування.

  1. Встановіть плагін GitHub. Повернутися до керувати Jenkins > Плагіни > Доступні плагіни і встановити GitHubЦе додає опцію тригера, яку не надає сам плагін Git.
  2. Увімкніть тригер для завдання. Відкрийте конфігурацію завдання, перегорніть до Створення тригеріві поставте галочку Тригер-гочок GitHub для опитування GITScm.
  3. Додайте вебхук у GitHub. У репозиторії відкрийте Налаштування > Вебхуки > Додати вебхук.
  4. Встановити корисне навантаження URL to your Jenkins адреса, а потім /github-webhook/Кінцева коса риска має значення.
  5. Встановіть тип вмісту до application/json І вибирай Просто подія push.
  6. Збережіть та протестуйте. GitHub надсилає ping негайно. Зелена галочка під Нещодавні доставки засоби Jenkins прийняв це.
# Payload URL format for the GitHub webhook
https://jenkins.example.com/github-webhook/

# Content type
application/json

# Verify from the Jenkins host that the endpoint answers
curl -I https://jenkins.example.com/github-webhook/

Надішліть коміт, щоб підтвердити закриття циклу. Завдання має з'явитися в черзі збірки протягом кількох секунд без жодних ручних дій. Якщо нічого не відбувається, відкрийте вебхук у GitHub та прочитайте Нещодавні доставки код відповіді: код 403 зазвичай вказує на Jenkins налаштування безпеки блокують анонімний доступ до кінцевої точки, тоді як тайм-аут означає, що GitHub не може зв’язатися з Jenkins URL взагалі.

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

загальний Jenkins Помилки та виправлення інтеграції з GitHub

Майже кожна невдала інтеграція потрапляє в одну з наведених нижче категорій, і кожна має чіткий симптом, який вказує безпосередньо на причину.

  • Немає опції Git у розділі «Джерело» Code Управління: Плагін Git не встановлено або не завантажено. Перевстановіть його з керувати Jenkins > Плагіни, перезапустіть Jenkinsта перезавантажте сторінку конфігурації завдання.
  • «Не вдалося підключитися до репозиторію» на публічному URL: Git відсутній у Jenkins хост. Встановіть Git, а потім підтвердіть за допомогою git --version і запишіть шлях під керувати Jenkins > Інструменти.
  • Не вдалося виконати автентифікацію на приватному репозиторії: Використовується пароль облікового запису. Замініть його на персональний токен доступу, як описано вище, або перейдіть на ключ SSH.
  • Збірки ніколи не починаються після натискання: або Тригер-гонок GitHub прапорець не позначено, або GitHub не може зв’язатися з Jenkins URLПеревірте журнал доставки вебхуків у налаштуваннях репозиторію.
  • Побудована неправильна гілка: Специфікатор гілки все ще зберігає значення за замовчуванням */master поки репозиторій використовує mainОновіть специфікатор відповідно.
  • Оплата працювала вчора, а сьогодні не вдається: Термін дії персонального токена доступу закінчився. Згенеруйте заміну та оновіть збережені облікові дані.

Також перевірте: кращий Jenkins Альтернативи (з відкритим кодом і платно) і Конвеєр CI/CD покрокове керівництво, яке базується на зв'язку, встановленому тут.

Поширені запитання

Так. Плагін Git клонується з будь-якого хоста Git, тому вихідний код Code Кроки керування ідентичні. Відрізняється лише конфігурація вебхука та спеціалізований GitLab або Bitbucket Плагіни забезпечують тригери та звіти про стан, специфічні для хоста.

Для чого завгодно, окрім демонстрації, так. А Jenkinsфайл зберігає трубопровід визначення в самому репозиторії, тому кроки збірки версіонуються та перевіряються разом із кодом, а не зберігаються лише в Jenkins UI.

AI Помічники підсумовують журнали невдалих збірок, пропонують ймовірний коміт, що порушує вимоги, та складають чернетки кроків конвеєра на основі структури репозиторію. RevПерегляньте кожну пропозицію, перш ніж застосовувати її, особливо будь-яку, що стосується облікових даних.

Ні. ШІ пришвидшує діагностику та створення конфігурації, але оркестрація, планування та журнал аудиту все ще потребують сервера збірки. Ставтеся до ШІ як до помічника, що накладається поверх… Jenkins, а не його заміна.

Так. Опитування СКМ у розділі «Тригери збірки» перевіряє репозиторій за розкладом, використовуючи синтаксис cron. Він працює за брандмауером, але марнує запити та затримує збірку, тому віддавайте перевагу вебхукам, коли це необхідно. Jenkins є досяжним.

Підсумуйте цей пост за допомогою: