Interview Questions

CI/CD (soon)

Редактировать на GitHub

Вопросы

🛠️ Jenkins Pipeline — шпаргалка

Виды пайплайнов

  • Declarative Pipeline — современный синтаксис (чёткая структура, легче читать).
  • Scripted Pipeline — старый стиль (Groovy-скрипты, гибче, но сложнее).

Минимальный Declarative Pipeline

pipeline { agent any // где выполнять (any = любой агент) stages { stage('Build') { steps { echo 'Собираем проект...' sh 'mvn clean package' } } stage('Test') { steps { echo 'Запускаем тесты...' sh 'mvn test' } } stage('Deploy') { steps { echo 'Деплой...' sh './deploy.sh' } } } }


Ключевые элементы

  • agent — где запускать (any, docker { ... }, label 'node1').
  • stages — этапы пайплайна (Build, Test, Deploy).
  • steps — конкретные действия внутри stage.
  • post — блоки для success, failure, always.

Пример с post и переменными

pipeline { agent any environment { APP_ENV = 'prod' } stages { stage('Deploy') { steps { sh "echo Deploying to ${APP_ENV}" } } } post { success { echo 'Пайплайн завершился успешно ✅' } failure { echo 'Ошибка во время пайплайна ❌' } } }


Узкие места (часто спрашивают на собесах)

  • Чем отличается Declarative vs Scripted pipeline?
  • Как запускать пайплайн на определённом агенте (agent { label 'docker' }).
  • Как пробросить секреты из Jenkins Credentials: withCredentials([string(credentialsId: 'MY_SECRET', variable: 'TOKEN')]) { sh 'echo $TOKEN' }
  • Как параллелить шаги: stage('Parallel') { parallel { stage('Linux') { steps { sh 'echo Linux build' } } stage('Windows') { steps { echo 'Windows build' } } } }

📌 Вывод:

  • Declarative Pipeline — основной синтаксис (коротко, читабельно).
  • Всегда знай про agent, stages, steps, post.
  • Для собеса полезно понимать: как параллелить, как подключать креды, как различать declarative и scripted.

Последнее обновление: 24 сент. 2025 г., 14:02:09