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 при росте.