[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-ci-cd-kakovy-osnovnye-etapy-ci-cd-payplayna":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":21,"progress":22,"seo":23},192,"kakovy-osnovnye-etapy-ci-cd-payplayna",6,"ci-cd","CI\u002FCD","🔄","Каковы основные этапы CI\u002FCD пайплайна","**CI\u002FCD пайплайн** — это автоматизированная последовательность этапов, через которые проходит код от коммита до развертывания в продуктивную среду. Типичный пайплайн для Java-проекта состоит из следующих этапов.\n\n### 1. Checkout (получение кода)\n\nКлонирование репозитория или получение изменений из VCS. В Jenkins это обычно `checkout scm`, который автоматически определяет репозиторий и ветку.\n\n### 2. Build (сборка)\n\n- Компиляция исходного кода (`mvn compile`, `gradle compileJava`).\n- Разрешение зависимостей (скачивание из Nexus\u002FMaven Central).\n- Генерация кода (Lombok, MapStruct, JAXB).\n\n### 3. Test (тестирование)\n\n- Unit-тесты (`mvn test`) — быстрая проверка логики отдельных компонентов.\n- Интеграционные тесты (`mvn verify`) — проверка взаимодействия компонентов.\n- Иногда — тесты производительности и нагрузочные тесты.\n\n### 4. Code Quality (проверка качества кода)\n\n- Статический анализ кода (SonarQube, Checkstyle, SpotBugs).\n- Проверка покрытия тестами (JaCoCo).\n- Проверка безопасности зависимостей (OWASP Dependency Check).\n\n### 5. Package (упаковка)\n\n- Создание артефакта: JAR, WAR, Docker-образ.\n- Версионирование артефакта (семантическое версионирование или номер сборки).\n\n### 6. Publish (публикация)\n\n- Загрузка артефакта в Nexus Repository.\n- Публикация Docker-образа в Docker Registry.\n\n### 7. Deploy (развертывание)\n\n- Развертывание на DEV\u002FTEST\u002FSTAGING окружение.\n- Для production — ручное подтверждение (в Continuous Delivery).\n\n### 8. Smoke\u002FAcceptance Tests (приемочные тесты)\n\n- Проверка работоспособности приложения после деплоя.\n- Автоматические end-to-end тесты (Selenium, REST Assured).\n- Health check эндпоинтов (`\u002Factuator\u002Fhealth`).\n\n### Пример Jenkinsfile с основными этапами\n\n\u003Cdetails>\n\u003Csummary>Jenkinsfile (полный пример)\u003C\u002Fsummary>\n\n```groovy\npipeline {\n    agent any\n    stages {\n        stage('Checkout')  { steps { checkout scm } }\n        stage('Build')     { steps { sh 'mvn clean compile' } }\n        stage('Test')      { steps { sh 'mvn test' } }\n        stage('Quality')   { steps { sh 'mvn sonar:sonar' } }\n        stage('Package')   { steps { sh 'mvn package -DskipTests' } }\n        stage('Publish')   { steps { sh 'mvn deploy -DskipTests' } }\n        stage('Deploy')    { steps { sh '.\u002Fdeploy.sh staging' } }\n        stage('Smoke')     { steps { sh 'curl -f http:\u002F\u002Fstaging:8080\u002Factuator\u002Fhealth' } }\n    }\n    post {\n        always { junit '**\u002Fsurefire-reports\u002F*.xml' }\n        failure { mail to: 'team@company.com', subject: \"FAILED: ${env.JOB_NAME}\", body: \"Build ${env.BUILD_NUMBER} failed.\" }\n    }\n}\n```\n\n\u003C\u002Fdetails>\n\n### Визуализация потока\n\n```text\nCheckout -> Build -> Test -> Quality -> Package -> Publish -> Deploy -> Smoke Tests\n                      |         |\n                  Fail fast  Quality Gate\n                  (уведомление)  (блокировка)\n```\n\n### Вывод\n\nКаждый этап пайплайна выступает в роли «ворот качества» (quality gate): если этап завершается с ошибкой, дальнейшее выполнение прекращается, и команда получает уведомление. Принцип «fail fast» экономит ресурсы и время.\n\n> **На собеседовании:** часто просят перечислить этапы и объяснить, зачем нужен каждый из них. Хороший кандидат также упомянет принцип «build once, deploy many» — артефакт собирается один раз и переиспользуется на всех окружениях.","","junior",[15,16,17,18,19,20],"pipeline","сборка","cicd","деплой","тестирование","этапы",[],null,{"title":24,"description":25,"ogTitle":26,"ogDescription":27,"keywords":28,"schemaAnswer":33,"featuredSnippetReady":34},"8 этапов CI\u002FCD пайплайна — от Checkout до Smoke Tests — Gymterview","Типичный CI\u002FCD пайплайн для Java: Checkout, Build, Test, Code Quality, Package, Publish, Deploy, Acceptance Tests. Пример Jenkinsfile с этапами.","8 этапов CI\u002FCD пайплайна — полный цикл от кода до продакшена","Checkout, Build, Test, Quality, Package, Publish, Deploy, Smoke Tests — 8 этапов типичного CI\u002FCD пайплайна для Java-проекта с примером Jenkinsfile.",[29,30,31,32],"этапы CI\u002FCD пайплайна","CI\u002FCD pipeline stages","стадии пайплайна","Checkout Build Test Deploy","Типичный CI\u002FCD пайплайн включает 8 этапов: Checkout (получение кода), Build (сборка), Test (тестирование), Code Quality (статический анализ, SonarQube), Package (создание JAR\u002FDocker-образа), Publish (загрузка в Nexus), Deploy (развёртывание) и Smoke\u002FAcceptance Tests (приёмочные тесты).",true]