CI
- это конвейер для сборки, тестирования, деплоя на сервер и отправки сообщений разработчикам о результатах процесса CI
Процесс
- Check in code (GitHub, SVN, BitBucket)
- Build code
- Run Unit Tests
- Deploy to test server
- Run end to end tests (Selenium)
- Deploy to production or Rallback
Преимущества:
- весь процесс быстрее (автоматизирован)
- безопасность - программа проходит полный процесс установки и тестирования (от юнит до E2E тестов)
- дешевле - люди не тратят свое время на повторяющиеся задачи
- визуализация - все результаты остаются в системе, строятся графики и схемы
- кроссплатформенность - CI-системы поддерживают любые языки программирования и любые ОС
Jenkins
- open-source инструмент
- написан на Java
- большое комьюнити
- мульти-платформенная система (Windows, Linux, MacOS...)
- мульти-язычный
- множество доп. плагинов (некоторые из них сложны)
- легкий в использовании
Начало работы с Jenkins
:
- запуск Jenkins контейнера:
docker run -p 8080:8080 -p 50000:50000 -d -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts
- 50000 - второй порт
логин дефолтный: admin
пароль при входе (дефолтный):
docker logs id_контейнера
либо по пути, указанном при создании контейнера, например: /var/jenkins_home/secrets/initialAdminPassword
- docker exec -it id_конт bash - войти в контейнер
- выбрать install suggested plugins - установить рекомендуемые плагины
- создаем профиль админа
- далее - url дженкинса не менять
- Dashboard - начальный экран
- New item - для создания нового проекта
- People - инфа о пользователях
- Build hystory - история билдов, статистика
- Manage jenkins - настройки всей системы Jenkins
- My views - все проекты, которые мы мониторим
- Locable resources (практически не используется) - плагин Jenkins, с помощью которого мы можем типа syncronize один из ресурсво (например, принтер)
Создание нового проекта:
- New item
- Выбрать один из типов проектов:
- Freestyle project -
дефолтный
вариант, свой конфиг - Pipeline - все настройки и конфиг в
скрипте
, находящемся на удаленной машине - Multi-configuration project - для прогонки сборок проектов с разной конфигурацией на разных системах и платформах
- Folder - для сосредоточения нескольких проектов в одном месте
- GitHub Organization - что-то для работы с гитом
Шаги сборки
(Build) -> добавить из списка -> apply -> save
* Выполнить команду shell (для Linux) - если контейнер
* Выполнить команду Windows
Конфиг проекта:
- выбрать "это параметризованная сборка" -> тип параметра... В дальнейшем, обращаться к параметру через "$"
Типы параметров
в параметризованной сборке:
- String - строка
- Choice - несколько значений с новой строки
Настроить Jenkins
- Tools - системы сборки (Maven)
- JDK
Плагины
- Available - для установки новых, пример: openjdk
- restart [] после установки
- Tools -> JDK -> установить автоматически -> выбрать openJdk и версию Java
- берем ссылку на прокт в git (**.git)
- общие настройки -> управление исходным кодом -> git (сюда ссылку)