.gitlab-ci.yml описывает jobs со stages или DAG через needs:; rules: включают jobs; environments/deployments дают историю и protection — те же идеи CD, другой синтаксис.
Разбор
rules вместо только only/except.
- Cache/artifacts keywords на job.
- Protected variables на protected branches.
- Parent-child / multi-project pipelines для монорепо.
Итог
GitLab CI выразителен в DAG и rules — проектируйте граф, а не длинную линейку.