🔹 Огляд
Jenkins — це автоматизована система безперервної інтеграції та доставки (CI/CD), яка використовується для автоматизації процесів розробки, тестування та розгортання програмного забезпечення. Вона написана на Java та є відкритим програмним забезпеченням (open-source). Jenkins дозволяє розробникам прискорювати розробку, тестування та релізи завдяки автоматизації повторюваних задач.
🔹 Основні можливості Jenkins
- Безперервна інтеграція (CI) – автоматичне виконання тестів та збирання коду після змін у репозиторії.
- Безперервне розгортання (CD) – автоматичне розгортання застосунків на сервери.
- Гнучка система плагінів – понад 1800 плагінів для інтеграції з різними технологіями та інструментами.
- Підтримка різних середовищ – працює на Windows, macOS, Linux, Docker, Kubernetes.
- Інтеграція з Git, GitHub, GitLab, Bitbucket – можливість автоматичного отримання оновленого коду.
- Підтримка скриптів на Groovy – для створення потужних Jenkins Pipeline (конвеєрів автоматизації).
Як працює Jenkins?
🔹 Основний принцип роботи
- Розробник робить зміни в коді → надсилає їх у Git-репозиторій (наприклад, GitHub, GitLab, Bitbucket).
- Jenkins виявляє зміни у репозиторії та автоматично запускає збірку (build).
- Система тестує код (модульні, інтеграційні або функціональні тести).
- Якщо все успішно – Jenkins може розгорнути застосунок на сервер або в контейнер (Docker/Kubernetes).
- Якщо є помилки – Jenkins повідомляє команду про проблему (наприклад, через email або Slack).
🔹 Архітектура Jenkins
Jenkins має клієнт-серверну архітектуру, що складається з:
- Jenkins Master (головний сервер) – управляє процесами CI/CD, розподіляє задачі.
- Jenkins Agents (Worker Nodes) – виконують збірку, тестування та розгортання.
Основні компоненти Jenkins
🔹 1. Джоби (Jobs)
Джоби (процеси) – це завдання, які виконує Jenkins. Види джобів:
- Freestyle Job – проста збірка коду.
- Pipeline Job – складний процес CI/CD, створений за допомогою скриптів на Groovy.
- Multibranch Pipeline – для роботи з різними гілками Git-репозиторію.
🔹 2. Jenkins Pipeline
Jenkins Pipeline – це скрипт для автоматизації всього процесу CI/CD. Використовує DSL (Domain-Specific Language) на Groovy.
🔹 Приклад простого Jenkinsfile:
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building application...'
}
}
stage('Test') {
steps {
echo 'Running tests...'
}
}
stage('Deploy') {
steps {
echo 'Deploying application...'
}
}
}
}
🔹 3. Плагіни
Jenkins підтримує понад 1800 плагінів для інтеграції з інструментами, такими як:
- Git, GitHub, GitLab
- Docker, Kubernetes
- Slack, Jira
- SonarQube (аналіз коду), JUnit (тестування)
Чому варто використовувати Jenkins?
✅ Автоматизація рутинних процесів
✅ Легка інтеграція з Git, Docker, Kubernetes
✅ Можливість розподілених обчислень (Master-Agent)
✅ Безкоштовний та відкритий код
✅ Гнучкість через використання плагінів
✅ Масштабованість для великих проєктів
Як встановити Jenkins?
🔹 1. Встановлення на Linux (Ubuntu/Debian)
sudo apt update
sudo apt install openjdk-11-jdk -y
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt update
sudo apt install jenkins -y
sudo systemctl start jenkins
sudo systemctl enable jenkins
Після встановлення, перейдіть у браузері за адресою:
http://localhost:8080
Jenkins попросить пароль адміністратора – його можна знайти у файлі:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
🔹 2. Встановлення через Docker
docker run -d -p 8080:8080 -p 50000:50000 --name jenkins jenkins/jenkins:lts
Альтернативи Jenkins
Хоча Jenkins є лідером серед CI/CD систем, існують альтернативи:
- GitHub Actions – інтегрований CI/CD у GitHub.
- GitLab CI/CD – вбудована система у GitLab.
- CircleCI – хмарний CI/CD сервіс.
- Travis CI – популярний серед open-source проєктів.
- TeamCity – від JetBrains, для корпоративного використання.
Висновок
Jenkins – це потужний інструмент для автоматизації процесів розробки, тестування та розгортання. Він забезпечує стабільність проєктів, скорочує час на релізи та покращує продуктивність команди розробки. Завдяки гнучкості, підтримці плагінів та простоті інтеграції з іншими технологіями, Jenkins залишається одним із найкращих рішень для CI/CD.