Ответ
Пайплайн CI/CD обычно запускается автоматически при наступлении определенных событий в системе контроля версий (VCS). Основные триггеры:
-
Изменения в коде:
- Push в целевую ветку (например,
main,develop). - Создание или обновление Pull Request / Merge Request.
- Push определенного тега (
git tag).
- Push в целевую ветку (например,
-
Ручной запуск: Пользователь вручную запускает пайплайн через UI (например, кнопка "Run pipeline") или API.
-
По расписанию (Scheduled/Pipeline schedules): Запуск в заданное время (по аналогии с cron), например, для ночных сборок или регрессионных тестов.
-
Внешние события (Webhooks/API):
- Вебхук из внешней системы (например, Jira, Slack).
- Прямой вызов API CI/CD-системы.
Пример конфигурации (GitLab CI):
stages:
- test
- build
- deploy
# Запускается только для пуша в main и для MR
unit_tests:
stage: test
script:
- run_tests.sh
rules:
- if: $CI_COMMIT_BRANCH == "main"
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
# Запускается только вручную или по расписанию для main
deploy_to_staging:
stage: deploy
script:
- deploy.sh staging
rules:
- if: $CI_COMMIT_BRANCH == "main" && ($CI_PIPELINE_SOURCE == "schedule" || $CI_PIPELINE_SOURCE == "web")
when: manual # Требует ручного подтверждения