... | @@ -3,19 +3,82 @@ |
... | @@ -3,19 +3,82 @@ |
|
[[_TOC_]]
|
|
[[_TOC_]]
|
|
|
|
|
|
-----
|
|
-----
|
|
|
|
# ![image](uploads/b303647f5c28595e5ea5c56adf04532d/image.png) Знакомство и установка Jenkins
|
|
|
|
|
|
## Установка необходимого софта
|
|
**CI (Continuous Integration, Непрерывная Интеграция)** — это методология разработки и набор практик, при которых в код вносятся небольшие изменения с частыми коммитами. И поскольку большинство современных приложений разрабатываются с использованием различных платформ и инструментов, то появляется необходимость в механизме интеграции и тестировании вносимых изменений.
|
|
|
|
|
|
|
|
С технической точки зрения, цель CI — обеспечить последовательный и автоматизированный способ сборки, упаковки и тестирования приложений. При налаженном процессе непрерывной интеграции разработчики с большей вероятностью будут делать частые коммиты, что, в свою очередь, будет способствовать улучшению коммуникации и повышению качества программного обеспечения.
|
|
|
|
|
|
|
|
**Jenkins** — программная система с открытым исходным кодом на Java, предназначенная для обеспечения процесса непрерывной интеграции (CI) программного обеспечения. Он является чрезвычайно расширяемой системой из-за внушительной экосистемы разнообразных плагинов. Настройка пайплайна осуществляется в декларативном или императивном стиле на языке Groovy, а сам файл конфигурации (Jenkinsfile) располагается в системе контроля версий вместе с исходным кодом.\
|
|
|
|
|
|
|
|
**Jenkins Pipeline** — набор плагинов, позволяющий определить жизненный цикл сборки и доставки приложения как код. Он представляет собой Groovy-скрипт с использованием Jenkins Pipeline DSL и хранится стандартно в системе контроля версий.
|
|
|
|
|
|
|
|
Существует два способа описания пайплайнов — скриптовый и декларативный.
|
|
|
|
|
|
|
|
1. *__Скриптовый__*
|
|
|
|
```groovy
|
|
|
|
node {
|
|
|
|
stage('Example') {
|
|
|
|
try {
|
|
|
|
sh 'exit 1'
|
|
|
|
}
|
|
|
|
catch (exc) {
|
|
|
|
throw exc
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
2. *__Декларативный__*
|
|
|
|
```groovy
|
|
|
|
pipeline {
|
|
|
|
agent any
|
|
|
|
stages {
|
|
|
|
stage("Stage name") {
|
|
|
|
steps {}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
> Литература для ознакомления с [синтаксисом](https://www.jenkins.io/doc/book/pipeline/syntax/) и [шагами](https://www.jenkins.io/doc/pipeline/steps/)
|
|
|
|
|
|
|
|
Они оба имеют структуру, но в скриптовом она вольная — достаточно указать, на каком слейве запускаться (node), и стадию сборки (stage), а также написать Groovy-код для запуска атомарных степов.
|
|
|
|
|
|
|
|
Декларативный пайплайн определен более жестко, и, соответственно, его структура читается лучше.
|
|
|
|
|
|
|
|
Общая схема непрерывной интеграции с Jenkins:
|
|
|
|
|
|
|
|
1. Сначала разработчик фиксирует код в хранилище исходного кода. Тем временем сервер Jenkins регулярно проверяет наличие изменений в хранилище.
|
|
|
|
2. Вскоре после того, как происходит фиксация, сервер Jenkins обнаруживает изменения, произошедшие в репозитории исходного кода. Дженкинс потянет эти изменения и начнет готовить новую сборку.
|
|
|
|
3. Если сборка не удалась, соответствующая команда будет уведомлена.
|
|
|
|
4. Если сборка прошла успешно, Jenkins развертывает встроенный тестовый сервер.
|
|
|
|
5. После тестирования Jenkins генерирует обратную связь и затем уведомляет разработчиков о результатах сборки и тестирования.
|
|
|
|
6. Он продолжит проверять хранилище исходного кода на предмет изменений, внесенных в исходный код, и весь процесс будет повторяться.
|
|
|
|
|
|
|
|
| Без Jenkins | Используя Jenkins |
|
|
|
|
| :---: | :---: |
|
|
|
|
| Весь исходный код построен и протестирован. Поиск и исправление ошибок в случае сбоя сборки и тестирования трудоёмко и занимает много времени, что, в свою очередь, замедляет процесс доставки программного обеспечения. | Каждый коммит, сделанный в исходном коде, создается и тестируется. Таким образом, вместо проверки всего исходного кода разработчикам нужно сосредоточиться только на конкретном коммите. Это приводит к частым выпускам нового программного обеспечения. |
|
|
|
|
| Разработчики должны ждать результатов испытаний | Разработчики знают результат тестирования каждого коммита, сделанного в исходном коде на ходу |
|
|
|
|
| Весь процесс ручной | Вам нужно только зафиксировать изменения в исходном коде, и Jenkins автоматизирует остальную часть процесса для вас. |
|
|
|
|
|
|
|
|
[Страница с руководством по установке и настройке Jenkins](Страница-с-руководством-по-установке-и-настройке-Jenkins)
|
|
|
|
|
|
|
|
-----
|
|
|
|
#
|
|
|
|
#
|
|
|
|
#
|
|
|
|
# Установка необходимого софта
|
|
|
|
|
|
1. Скачиваем Java с [официального сайта](https://www.java.com/download/ie_manual.jsp)
|
|
1. Скачиваем Java с [официального сайта](https://www.java.com/download/ie_manual.jsp)
|
|
|
|
|
|
2. Скачиваем Jenkins с [официального сайта](https://www.jenkins.io/download/)
|
|
2. Скачиваем Jenkins с [официального сайта](https://www.jenkins.io/download/)
|
|
|
|
|
|
3. Скачиваем Git с [официального сайта](https://git-scm.com/download/win)
|
|
3. Устанавливаем Java:
|
|
|
|
|
|
4. Устанавливаем Java:
|
|
|
|
При установке Java никаких специфических настроек не требуется (рекомендую обратить внимание на место установки)
|
|
При установке Java никаких специфических настроек не требуется (рекомендую обратить внимание на место установки)
|
|
|
|
|
|
5. Устанавливаем софт для Jenkins
|
|
4. Устанавливаем софт для Jenkins
|
|
|
|
|
|
- При выборе типа входа в систему выбираем "Run service as LocalSystem"
|
|
- При выборе типа входа в систему выбираем "Run service as LocalSystem"
|
|
- Выбираем и тестируем порт (предпочтительно 8080)
|
|
- Выбираем и тестируем порт (предпочтительно 8080)
|
... | @@ -47,15 +110,15 @@ |
... | @@ -47,15 +110,15 @@ |
|
- Заполняем поля паролей, нажимаем "Применить", "Ок"
|
|
- Заполняем поля паролей, нажимаем "Применить", "Ок"
|
|
- Находим службу "Jenkins", нажимаем на ней правой кнопкой мыши и выбираем "Перезагрузить"
|
|
- Находим службу "Jenkins", нажимаем на ней правой кнопкой мыши и выбираем "Перезагрузить"
|
|
|
|
|
|
7. Переходим в браузере на адрес **<https://localhost:8080/>**
|
|
5. Переходим в браузере на адрес **<https://localhost:8080/>**
|
|
- Требуется ввести пароль, который лежит в файле **initialAdminPassword** по адресу указанному на странице браузера. **D:\Jenkins\\.jenkins\secrets**
|
|
- Требуется ввести пароль, который лежит в файле **initialAdminPassword** по адресу указанному на странице браузера. **D:\Jenkins\\.jenkins\secrets**
|
|
- Выбираем установку с предварительным выбором плагинов
|
|
- Выбираем установку с предварительным выбором плагинов
|
|
- В поиске плагинов ищем Git, и выбираем GitLab, Git Parameter, SSH Agent и устанавливаем это всё
|
|
- В поиске плагинов ищем Git, и выбираем GitLab, Git Parameter, SSH Agent и устанавливаем это всё
|
|
8. Создаем пользователя Jenkins
|
|
6. Создаем пользователя Jenkins
|
|
9. Выбираем адрес для Jenkins (Советую оставить как есть)
|
|
7. Выбираем адрес для Jenkins (Советую оставить как есть)
|
|
|
|
|
|
|
|
|
|
## Открытие Jenkins
|
|
## Запуск Jenkins
|
|
|
|
|
|
Для того что бы открыть Jenkins можно использовать разные варианты адреса
|
|
Для того что бы открыть Jenkins можно использовать разные варианты адреса
|
|
|
|
|
... | @@ -181,6 +244,4 @@ MSBuild всегда идет с .NET Framework и лежит он в опред |
... | @@ -181,6 +244,4 @@ MSBuild всегда идет с .NET Framework и лежит он в опред |
|
-----
|
|
-----
|
|
[В начало](Страница-с-руководством-по-установке-Jenkins#установка-необходимого-софта) | [Открыть страницу заново](Страница-с-руководством-по-установке-Jenkins) | [Страница Home](home#пока-все-лежит-на-одной-странице)
|
|
[В начало](Страница-с-руководством-по-установке-Jenkins#установка-необходимого-софта) | [Открыть страницу заново](Страница-с-руководством-по-установке-Jenkins) | [Страница Home](home#пока-все-лежит-на-одной-странице)
|
|
|
|
|
|
[Редактировать текущую страницу](https://gitlab.mega-pol.ru/Documentation/Guides/-/wikis/%D0%A1%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0-%D1%81-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE%D0%BC-%D0%BF%D0%BE-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B5-%D0%B8-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B5-Jenkins/edit)
|
|
|
|
|
|
|
|
----- |
|
----- |
|
\ No newline at end of file |
|
|