Что такое Jenkins Pipeline и как он работает?

«Что такое Jenkins Pipeline и как он работает?» — вопрос из категории DevOps, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Jenkins Pipeline — это набор плагинов, который позволяет описывать процесс непрерывной интеграции и доставки (CI/CD) в виде кода (Pipeline as Code).

Ключевые концепции:

  • Declarative vs Scripted: Declarative Pipeline использует упрощенный предопределенный синтаксис, а Scripted — полноценный Groovy-скрипт.
  • Узел (Node): Машина, на которой выполняется Pipeline.
  • Этап (Stage): Логический раздел конвейера (например, Build, Test, Deploy).
  • Шаг (Step): Конкретная операция (например, выполнить команду оболочки).

Пример Declarative Pipeline (Jenkinsfile):

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'mvn clean compile'
            }
        }
        stage('Test') {
            steps {
                sh 'mvn test'
            }
        }
        stage('Deploy') {
            steps {
                sh 'mvn deploy'
            }
        }
    }
}

Преимущества: версионность, возможность код-ревью, возможность ветвления и циклов, возможность паузы и ручного подтверждения.