0Pricing
Docker & DevOps Fundamentals · Урок

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 — локальная установка не требуется.

Все уроки этого курса

  1. Введение в Jenkins
  2. Сборка образов Docker с Jenkins
  3. Автоматическое развёртывание с Jenkins
  4. Jenkins Pipeline как код с Jenkinsfile
← Назад к Docker & DevOps Fundamentals