Сборка бинарных файлов только один раз является очень важным принципом непрерывного развертывания (CD). Тем не менее, этот блог поможет вам создать и развернуть двоичные файлы в Nexus с вашей машины для разработки. Это хорошо в качестве начального шага, когда все локально хранится на вашем ноутбуке, и вы просто тестируете настройку, чтобы выяснить, как все работает. Но каждый в команде, имеющий локальный репозиторий Nexus, не поддается цели «общего репозитория». Это также против непрерывной интеграции (CI), где исходный код, зафиксированный различными членами команды, извлечен и построен на сервере CI. И CI является фундаментальным требованием для непрерывного развертывания. Как вы это настроите тогда?
Вы используете CI-сервер для передачи двоичных файлов в Nexus.
Существует множество серверов CI как с открытым исходным кодом, так и с коммерческим диапазоном. Jenkins, Travis, CruiseControl и Go являются одними из самых популярных в стране с открытым исходным кодом. Все они также имеют коммерческое издание. Bamboo и AnthillPro являются парой популярных коммерческих предложений. В этом блоге будет использоваться самый простой, самый популярный и самый простой в использовании сервер CI Jenkins .
Общий поток показан на диаграмме и объяснен после этого.
Поток это:
- Разработчики помещают код изнутри брандмауэра в GitHub
- Дженкинс опрашивает GitHub для обновления кода
- Создайте двоичные файлы и отправьте артефакты в Nexus (внутри брандмауэра)
Этот технический совет покажет, как начать работу с Jenkins и передать двоичные файлы в Nexus, опросив рабочее пространство GitHub. Хотя опрос неэффективен , он может быть единственным и, вероятно, упрощенным выбором.
В этой настройке Jenkins и Nexus настроены внутри вашего брандмауэра. Это более распространенный сценарий, поскольку, по крайней мере, Nexus обычно находится внутри брандмауэра. Однако Jenkins может быть настроен за пределами брандмауэра, и в этом случае он сможет архивировать артефакты, но не может напрямую передавать их в Nexus. В этом случае для связи Jenkins и Nexus необходимо настроить прокси.
Давайте начнем!
Загрузите и запустите Jenkins Server
Всю информацию о Дженкинсе можно найти на сайте jenkins-ci.org .
- Загрузите последний файл WAR :
12345
tools> curl -O -L http:
//mirrors.jenkins-ci.org/war/latest/jenkins.war
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0
328
0
0
0
0
0
0
--:--:-- --:--:-- --:--:--
0
100
65
.3M
100
65
.3M
0
0
298k
0
0
:
03
:
44
0
:
03
:
44
--:--:-- 534k
Общее время загрузки зависит от скорости вашей сети.
- Начните Дженкинс как
1
java -jar jenkins.war
Запуск и доступ к Jenkins предоставляют более подробную информацию о запуске Jenkins и различных параметрах конфигурации.
- После запуска Jenkins к нему можно получить доступ по адресу localhost: 8080 и отобразить как:
Установить плагин Git
По умолчанию Jenkins не имеет возможности обрабатывать рабочее пространство Git. Надеюсь, это будет исправлено в следующем выпуске из-за INFRA-253 . А пока давайте установим плагин Git.
- Нажмите на «Управление Jenkins», «Управление плагинами»
- Нажмите на вкладку «Доступно», выберите «GIT Plugin» и нажмите «Установить без перезагрузки»
- Нажмите «Перезапустить Дженкинс…», чтобы перезапустить Дженкинс.
Создать работу Дженкинс
- Настройте Maven в настройке системы, как описано здесь
- Создайте новую работу Jenkins, перейдя на localhost: 8080 / newJob
- Выберите «Maven project» и дайте имя, как показано:
- В разделе «Управление исходным кодом» выберите «Git» и укажите репозиторий «https://github.com/javaee-samples/javaee7-simple-sample», как показано ниже:
- В «Построить триггеры» выберите «Опрос SCM» и укажите расписание опроса репо каждые 5 минут как «H / 5 * * * *»:
- В «Build» укажите цель «deploy», как показано:
Развернуть SNAPSHOT на Nexus
После того, как настройка завершена, развертывание на Nexus — это просто щелчок или опрос.
- Нажмите на Build Now, чтобы построить работу
- Консольный вывод для первого задания покажет что-то вроде:
1234
[JENKINS] Archiving /Users/arungupta/.jenkins/jobs/Java EE
7
Simple Sample/workspace/pom.xml to org.javaee7.sample/javaee7-simple-sample/
1.10
-SNAPSHOT/javaee7-simple-sample-
1.10
-SNAPSHOT.pom
[JENKINS] Archiving /Users/arungupta/.jenkins/jobs/Java EE
7
Simple Sample/workspace/target/javaee7-simple-sample-
1.10
-SNAPSHOT.war to org.javaee7.sample/javaee7-simple-sample/
1.10
-
20150305.202625
-
8
/javaee7-simple-sample-
1.10
-
20150305.202625
-
8
.war
channel stopped
Finished: SUCCESS
- Git Polling Log покажет последний опрос вашей рабочей области. Если после последнего задания в рабочей области есть какие-либо коммиты, то будет запущено новое задание.
В этом блоге было показано, как перенести двоичные файлы из Jenkins в Nexus с помощью Git Polling.
Наслаждайтесь!
Ссылка: | Дженкинс в Nexus с Git Polling от нашего партнера по JCG Аруна Гупта в Miles to go 2.0… блог. |