Jenkins Pipeline как код с Jenkinsfile
Декларативно определяйте этапы сборки, тестирования и развёртывания в Jenkinsfile, хранящемся в репозитории, чтобы сам pipeline версионировался вместе с приложением.
«Jenkins Pipeline как код с Jenkinsfile» — бесплатный урок Docker & DevOps Fundamentals на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Docker & DevOps Fundamentals, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Docker & DevOps Fundamentals содержит 4 уроков всего.
Конвейер как код
Вместо ручной настройки заданий в интерфейсе Jenkins опишите весь конвейер в Jenkinsfile, хранящемся в Вашем репозитории. Конвейер становится кодом: его можно проверять, версионировать и переносить.
Декларативный и скриптовый подходы
Jenkins предлагает два синтаксиса. Декларативные конвейеры структурированы и удобны для начинающих; скриптовые представляют собой полноценный Groovy. Мы сосредоточимся на декларативном подходе.
Блок конвейера
Каждый декларативный Jenkinsfile начинается с блока pipeline, содержащего agent (где выполняется конвейер) и stages.
pipeline {
agent any
stages {
stage('Build') {
steps { echo 'Building...' }
}
}
}Определение этапов
Каждый stage объединяет связанные steps. Этапы отображаются в виде столбцов в интерфейсе Jenkins, наглядно показывая ход выполнения конвейера.
stages {
stage('Build') { steps { sh 'make build' } }
stage('Test') { steps { sh 'make test' } }
}Выполнение команд оболочки
Шаг sh выполняет команду оболочки на агенте. Используйте его, чтобы компилировать код, запускать тесты или собирать образ Docker.
steps {
sh 'docker build -t myapp:${BUILD_NUMBER} .'
}Переменные окружения
Блок environment определяет переменные для всех шагов. Jenkins также предоставляет встроенные переменные, такие как BUILD_NUMBER и GIT_COMMIT.
environment {
REGISTRY = 'registry.example.com'
IMAGE = 'myapp'
}Привязка учётных данных
Никогда не встраивайте секреты непосредственно в код. Храните их в учётных данных Jenkins и получайте с помощью вспомогательной функции credentials(), чтобы они скрывались в журналах.
environment {
REG_PASS = credentials('registry-password')
}Действия после выполнения
Блок post выполняется после завершения этапов, выбирая действие в зависимости от результата. Он отлично подходит для уведомлений и очистки.
post {
success { echo 'Pipeline succeeded' }
failure { echo 'Pipeline failed' }
always { sh 'docker image prune -f' }
}Параллельные этапы
Ускорьте работу, выполняя независимые задачи в parallel — например, одновременно запускайте модульные и интеграционные тесты.
stage('Tests') {
parallel {
stage('Unit') { steps { sh 'make unit' } }
stage('Integration') { steps { sh 'make int' } }
}
}Условные этапы
Директива when запускает этап только при выполнении условия — например, развёртывание выполняется только в главной ветке.
stage('Deploy') {
when { branch 'main' }
steps { sh './deploy.sh' }
}Многоветочные конвейеры
Укажите Jenkins репозиторий, и он обнаружит каждую ветку с Jenkinsfile, автоматически создав отдельный конвейер для каждой. Ветки функций получают CI автоматически.
Быстрая проверка
Где хранится определение декларативного конвейера?
Итоги
Вы научились определять конвейеры как код:
pipeline { agent; stages }— это декларативный каркас- Шаги
shвыполняют команды;environmentиcredentials()управляют конфигурацией post,parallelиwhenдобавляют возможности- Многоветочные конвейеры автоматически обеспечивают CI для каждой ветки
Jenkinsfile хранится вместе с Вашим кодом и развивается вместе с ним.
Часто задаваемые вопросы
Урок «Jenkins Pipeline как код с Jenkinsfile» бесплатный?
Да — полный текст урока «Jenkins Pipeline как код с Jenkinsfile» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Docker & DevOps Fundamentals, подпишись на CoddyKit PRO. Курс Docker & DevOps Fundamentals содержит 4 уроков всего.
Чему я научусь в уроке «Jenkins Pipeline как код с Jenkinsfile»?
Декларативно определяйте этапы сборки, тестирования и развёртывания в Jenkinsfile, хранящемся в репозитории, чтобы сам pipeline версионировался вместе с приложением. Ты практикуешь Docker & DevOps Fundamentals с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Docker & DevOps Fundamentals?
Предыдущий опыт не требуется. Docker & DevOps Fundamentals на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Jenkins Pipeline как код с Jenkinsfile»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Docker & DevOps Fundamentals?
Да. Каждый урок Docker & DevOps Fundamentals включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Введение в Jenkins
- Сборка образов Docker с Jenkins
- Автоматическое развёртывание с Jenkins
- Jenkins Pipeline как код с Jenkinsfile