intermediate
GitLab CI
Используйте pipelines, stages, runners, artifacts, environments и merge request gates GitLab в интегрированной DevOps-платформе.
GitLab CI описывает пайплайны в `.gitlab-ci.yml`: stages, jobs, runners, artifacts, environments и правила merge request. Тесно интегрирован с репозиторием, registry и deploy в GitLab.
stages: [test, build, deploy]
test:
stage: test
script:
- npm ci
- npm test
deploy_staging:
stage: deploy
environment: staging
script: ./deploy.sh
only: [main]
Runners бывают shared или self-hosted; изоляция и работа с секретами различаются. Includes и templates помогают поддерживать большой YAML.
На интервью: stages vs DAG needs, runner tags, protected variables, review apps, передача artifacts, сравнение с GitHub Actions.
Типовые ошибки: shared runners без изоляции; секреты в незащищённых variables; монолитный YAML без includes.
Компромисс — единая DevOps-платформа против операций runners и разрастания YAML.
Чеклист:
- Осознанные stages и needs.
- Защита variables и environments.
- Ясная публикация artifacts и environments.
- Дробите YAML через includes при росте.