Что такое CI/CD pipeline и как он выглядит на практике?

«Что такое CI/CD pipeline и как он выглядит на практике?» — вопрос из категории CI/CD и DevOps, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

CI/CD pipeline — это автоматизированный процесс, который включает этапы интеграции кода (Continuous Integration), тестирования, сборки и развертывания (Continuous Delivery/Deployment). Его цель — ускорить и повысить надежность поставки ПО.

Типичные этапы пайплайна (на примере GitLab CI):

stages:
  - build
  - test
  - deploy

build_job:
  stage: build
  script:
    - echo "Сборка проекта..."
    - npm run build
  artifacts:
    paths:
      - dist/

unit_tests:
  stage: test
  script:
    - npm test

integration_tests:
  stage: test
  script:
    - npm run test:e2e

deploy_to_staging:
  stage: deploy
  script:
    - echo "Развертывание на staging-сервер"
    - ./deploy.sh staging
  only:
    - main  # Запускать только для ветки main

Ключевые концепции и опыт работы с ними:

  • Триггеры: Запуск по пушам в репозиторий, по расписанию (cron), вручную.
  • Артефакты: Передача результатов сборки (например, dist/) между этапами.
  • Параллельное выполнение: Несколько заданий в одном stage могут выполняться параллельно для скорости.
  • Интеграция с инструментами: Запуск юнит-тестов (Jest), E2E-тестов (Cypress/Selenium), проверки безопасности (SAST).
  • Отладка: Анализ логов упавших сборок, мониторинг состояния пайплайнов.