Jenkins Интеграция с GitHub: Как установить плагин Git?

⚡ Умное резюме

Jenkins Интеграция с GitHub подключает сервер автоматизации к репозиторию исходного кода, позволяя автоматически собирать и проверять каждый коммит. Для подключения достаточно установить плагин Git, создать задание Freestyle, пройти аутентификацию с помощью токена и зарегистрировать веб-перехватчик.

  • ???? Плагин Foundation: Jenkins Поставляется с минимальным набором функций, поэтому поддержка сторонних разработчиков обеспечивается через плагины, устанавливаемые из раздела «Управление». Jenkins Страница плагинов.
  • 🌿 Плагин Git vs GitHub: Плагин Git предоставляет исходный код. Code Опция управления, позволяющая клонировать репозиторий; плагин GitHub добавляет обработку веб-хуков и отчеты о статусе коммитов.
  • 💻 Требуется локальный Git: Jenkins делегирует клонирование исполняемому файлу Git на хосте, поэтому при отсутствии локальной установки создается репозиторий. URL ошибка проверки.
  • 🔑 Аутентификация токена: В августе 2021 года GitHub перестал принимать пароли учетных записей для операций с Git, поэтому для доступа к приватным репозиториям требуется персональный токен доступа или SSH-ключ.
  • 🪝 Автоматический запуск: Веб-перехватчик репозитория, указывающий на Jenkins Конечная точка github-webhook запускает сборку при каждом push-запросе вместо ручного запуска.
  • 🧾 Проверка: Запуск команды `git –version` подтверждает разрешение исполняемого файла и его доступность. Jenkins Инструменты записывают свой путь.
  • 🇧🇷 Восстановление после сбоя: Отсутствующий источник Code Большинство сбоев интеграции вызваны настройками управления, отклоненными учетными данными и скрытыми веб-хуками.

Jenkins Интеграция с GitHub

Вы уже узнали, что Jenkins есть и как установить его на Windows системаПредполагая, что эти основные шаги выполнены, перейдем к управлению плагинами.

Jenkins Обладает превосходной поддержкой плагинов. Доступно более тысячи плагинов для сторонних приложений. Чтобы проверить, подходит ли он вам, Jenkins Если вас интересует стороннее приложение, найдите его в каталоге плагинов по адресу [ссылка на плагин]. https://plugins.jenkins.io/.

Jenkins Интеграция с GitHub

Установка плагинов в Jenkins

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

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

Jenkins Для загрузки кода из репозитория GitHub необходимо установить плагин Git. Названия этих двух плагинов часто путают, поэтому в таблице ниже приведено их разделение:

Плагин Что это дает Что необходимо для прохождения этого руководства?
плагин Git идти опция в разделе Источник Code Управление, клонирование репозитория и выбор ветки. Да — это самое главное.
Плагин GitHub Обработка веб-хуков, Триггер хука GitHub опция, и статус сборки передается обратно в коммиты. Только для автоматического запуска

Вам не нужно устанавливать эти плагины, если вы уже приняли предложенные плагины во время процесса установки. Jenkins Настройка установки, поскольку плагин Git входит в этот набор. Если нет, вот как их установить и загрузить код из репозитория GitHub.

Как установить плагин Git Jenkins

Ниже приведена пошаговая инструкция по установке плагина Git. Jenkins:

Шаг 1: Откройте свою панель управления.
Нажмите на Управление Jenkins кнопка на вашем Jenkins панель приборов:

Установите плагин Git в Jenkins

Шаг 2: Найдите опцию «Плагины».
Нажмите на Плагины. В настоящее время Jenkins Эта запись, содержащая релизы, помечена просто. ПлагиныБолее старые версии имели ту же маркировку на экране. Управление плагинами.

Установите плагин Git в Jenkins

Шаг 3: На странице «Плагины» откройте Доступные плагины Нажмите клавишу Tab, а затем:

  1. Выберите идти плагин
  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) Вы увидите идти вариант под Источник Code Управление и менеджмент если плагин Git установлен в Jenkins:

интегрировать Jenkins С помощью GitHub

Примечание: Если же линия индикатора идти Если опция не отображается, переустановите плагин и перезапустите систему. Jenkinsи снова войдите в панель управления. идти После этого опция станет видимой, как показано выше.

Шаг 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. Для подтверждения установки откройте файл... командная строка, напишите 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

В августе 2021 года GitHub перестал принимать пароли учетных записей для операций Git. Предоставление имени пользователя и пароля в Git... Jenkins Поэтому при попытке доступа к любому частному репозиторию возникает ошибка аутентификации, даже если те же учетные данные используются для входа на веб-сайт GitHub. Персональный токен доступа заменяет пароль, и Jenkins хранит его в собственном хранилище учетных данных, а не в конфигурации задания.

Сначала создайте токен в GitHub:

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

Затем зарегистрируйте токен внутри Jenkins:

  1. Перейдите на Управление Jenkins > Учетные данные > Система > Глобальные учетные данные и нажмите Добавить учетные данные.
  2. Выбрать Имя пользователя и пароль как такой-то. Введите ваше имя пользователя GitHub и вставьте знак в поле для пароля.
  3. Присвойте записи понятный идентификатор, например: github-pat Поэтому его можно распознать на экранах настройки заданий.
  4. Вернуться к заданию, открыть Источник 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 . 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-ключ.
  • Сборка никогда не начинается после отправки изменений (push): либо Триггер хука GitHub Если флажок не отмечен, GitHub не может связаться с Jenkins URLПроверьте журнал доставки веб-хуков в настройках репозитория.
  • Создана не та ветка: Спецификатор филиала по-прежнему сохраняет значение по умолчанию */master в то время как репозиторий использует main. Обновите спецификатор в соответствии с указанными параметрами.
  • Вчера оформление заказа работало, а сегодня нет: Срок действия персонального токена доступа истек. Сгенерируйте новый токен и обновите сохраненные учетные данные.

Также проверьте: лучший Jenkins Альтернативы (с открытым исходным кодом и платные) и Конвейер CI / CD пошаговое руководство, которое развивает установленную здесь связь.

Часто задаваемые вопросы (FAQ)

Да. Плагин Git клонирует репозиторий с любого Git-хоста, поэтому исходный код... Code Этапы управления идентичны. Отличается только конфигурация веб-хука, и используется выделенный GitLab или Bitbucket Плагины обеспечивают запуск процессов, специфичных для конкретного хоста, и формирование отчетов о состоянии.

Да, это подходит не только для демонстрации. Jenkinsфайл хранит трубопровод Определение находится непосредственно в самом репозитории, поэтому этапы сборки версионируются и проверяются вместе с кодом, а не хранятся только в одном месте. Jenkins UI.

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

Нет. ИИ ускоряет диагностику и создание конфигураций, но для оркестрации, планирования и аудита по-прежнему требуется сервер сборки. Рассматривайте ИИ как помощника, работающего поверх существующей системы. Jenkins, а не замена ему.

Да. Опрос SCM В разделе «Триггеры сборки» выполняется проверка репозитория по расписанию с использованием синтаксиса cron. Это работает за брандмауэром, но приводит к нерациональному использованию запросов и задержкам сборки, поэтому предпочтительнее использовать веб-хуки. Jenkins доступен.

Подведем итог этой публикации следующим образом: