Начало работы с Jenkins: GitHub Push запускает Jenkins для автоматической сборки

Jenkins

Что такое Дженкинс?

Официальное введение: Jenkins — это программное обеспечение CI&CD с открытым исходным кодом, используемое для автоматизации различных задач, включая создание, тестирование и развертывание программного обеспечения.

Jenkins поддерживает различные среды выполнения либо через системные пакеты, Docker, либо через автономную программу Java.

Так что же Дженкинс помог нам сделать и какие болевые точки решил Дженкинс в командной разработке?

Когда мы разрабатываем в команде, локальная среда у всех разная, например версия узла, система Windows и Mac разные и т. д. Jenkins может решить эту проблему. Дженкинс эквивалентен единой среде для всех, и отличий не будет.

Кроме того, нам обычно нужно перед развертываниемnpm run buildУпаковка в сочетании с git hook в Jenkins, мы можем сделать это при выполненииgit pushили комбинированныйmasterвремя, чтобы помочь нам автоматически упаковать.

То есть вам нужно только инициировать коммит Git, а следующие функции выполняются автоматически

  • модульный тест
  • сборка пакета
  • развертывание кода
  • оповещение по электронной почте

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

Сервер не куплен... так что нет развертывания

Загрузить и установить

Перейти непосредственно кСкачать с официального сайта

Установить по запросу

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

Дженкинс начинает

После вышеуказанной установки автоматически запустится служба на порту 8080. У меня его не было на тот момент.Предполагается, что порт занят и прямо сообщается об ошибке.

Начать с команды

Если нет, переключитесь в этот каталог

➜  ~ cd /Applications/Jenkins

Начать с команды

Java -jar jenkins.war --httpPort=8388

Где 8388 - номер порта, можете настроить сами

введите пароль

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

Однако у следующего каталога Apple может не быть разрешений. Конкретный метод: Нажмите на профиль папки, а затем нажмите «Общий доступ и разрешения» внизу. Столбец имени: разрешение ВСЕХ настроено на чтение и запись, и все в порядке.

Установить плагин

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

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

Создать учетную запись администратора

После того, как вышеизложенное завершено, это интерфейс. Давайте начнем наше путешествие Дженкинса

Подготовьте проект GitHub

Давайте поговорим о проекте, созданном Vue-cli здесь.

Здесь мы должны различать домашнюю страницу проекта и адрес склада, который будет использоваться ниже.

Домашняя страница моего проекта:GitHub.com/GpingfEng/V…

Адрес моего склада:GitHub.com/GpingfEng/V…

Получите токен личного доступа для GitHub

  • домашняя страница гитхаба

  • нажмите настройку

  • Нажмите на настройки разработчика

  • Нажмите «Токены личного доступа». Затем нажмите «Создать новый токен» Можно ввести пароль

  • Крючок репо и администратор: repo_hook

  • Щелкните Создать токен. Сохраните этот токен после генерации.Обязательно сохраните, потом не увидите, который будет использован позже

Настроить Дженкинс

  • настройки системы

  • Найдите опцию GitHub — Добавить — Дженкинс. Просто введите имя здесь и введите URL-адрес API.api.github.com

  • Во всплывающем окне заполните следующее, выберите секретный текст в качестве типа и нажмите «Добавить».

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

  • Наконец, нажмите «Сохранить» внизу

Дженкинс новый проект

  • Нажмите кнопку «Создать»

  • Имя не является обязательным, проверьте проект Freestyle - подтвердите, вы можете войти на страницу конфигурации

  • Управление исходным кодом, базовая конфигурация выглядит следующим образом

  • Учетные данные управления исходным кодом используют имя пользователя с паролем, и конфигурация выглядит следующим образом:

  • Выбор триггера конструкции: триггер ловушки GitHub для опроса GITScm

  • Среда сборки и привязки

Как показано на рисунке ниже, установите флажок «Использовать секретный текст (ы) или файл (ы)» и выберите учетные данные, которые мы настроили ранее в разделе «Учетные данные».

  • Создайте, выберите «Выполнить оболочку» и введите команду сборки следующим образом.
echo $WORKSPACE
node -v
npm -v

npm install&&
npm run build

Настройте адрес веб-перехватчика GitHub

webhook — адрес запроса при уведомлении Jenkins, который используется для заполнения на GitHub, чтобы GitHub мог уведомлять Jenkins через этот адрес

Предположим, что адрес сервера, на котором находится Дженкинс: 192.168.0.1, а порт — 8080, тогда адрес веб-перехватчика:http://192.168.0.1:8080/github-webhook/(Спасибо читателям за указание на то, что эта ссылка должна добавить косую черту в конце, возвращая 302ErrorCode)

  • setting

  • Вебхуки — добавить вебхуки

  • Заполните адрес веб-перехватчика в URL-адресе полезной нагрузки, а затем нажмите кнопку «Добавить веб-перехватчик» внизу, чтобы завершить настройку веб-перехватчика.В будущем, если в текущем проекте будет отправлен код, GitHub отправит запрос на этот адрес веб-перехватчика, чтобы уведомить Jenkins для сборки (скриншот ниже неверен, не забудьте добавить косую черту после github-webhook)

Опять же, вышеуказанный адрес должен быть доступен из внешней сети, иначе GitHub не сможет получить доступ к Jenkins.

Я застрял здесь в течение длительного времени и никогда не был успешным! Обратите внимание, что нельзя использовать localhost. можно использоватьссылка на скачивание нгрокаЗапустите доступный извне адрес, например мой порт 8388. Сначала переключитесь на загруженный и распакованный файл и используйте ngrok для запуска следующим образом:

./ngrok http 8388

Как показано ниже, внешний может пройти3043f4fa.ngrok.ioПолучите доступ к местному сервису (но обратите внимание, что это длится всего 8 часов)

проверять

Мы пытаемся отправить код на GitHub локально, и мы видим, что GitHub уведомит Jenkins, и Jenkins автоматически создаст его для нас.

Переключитесь на консоль, вы можете увидеть следующий вывод, указывающий, что это действительно удалось

заключительные замечания

Вышеупомянутое лишь небольшая попытка, осталось еще много ям, на которые не наступили, например, как деплоить на сервер и т.д.

Ступенчатые котлованы и справочная документация

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

В управлении исходным кодом Jenkins нет опции, как я могу увидеть опцию Subversion? Сяобай просит совета.

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

Настройте GitHub Push для автоматического запуска сборок Jenkins.

Установка и использование Jenkins на Mac

Установка и настройка macOS Jenkins

Практические заметки: Jenkins создает мощный рабочий процесс автоматизации интерфейса.