Ответ
Jenkins — это open-source сервер для автоматизации, предназначенный для реализации практик CI/CD (Continuous Integration и Continuous Delivery/Deployment). Он позволяет автоматизировать сборку, тестирование, развертывание и другие этапы жизненного цикла ПО.
Ключевые возможности:
- Планирование задач (Jobs/Pipelines): Запуск по расписанию, по событию (например, push в Git) или вручную.
- Масштабируемость: Работа с агентами (nodes) для распределения нагрузки.
- Расширяемость: Огромная экосистема плагинов для интеграции с Git, Docker, JIRA, Slack и др.
- Pipeline как код: Определение сложных процессов через
Jenkinsfile(декларативный или скриптовый синтаксис).
Пример Jenkinsfile (декларативный стиль):
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'mvn clean compile'
}
}
stage('Test') {
steps {
sh 'mvn test'
}
post {
always {
junit 'target/surefire-reports/*.xml'
}
}
}
stage('Deploy') {
when {
branch 'main'
}
steps {
sh './deploy.sh'
}
}
}
}