GitLab CI
Skill для GitLab CI/CD, особенно self-hosted. Пиши YAML и команды runner'а, которые можно сразу катить.
Не используй для GitHub Actions (gh-actions) и не подменяй собой
docker-ops, если задача только про Dockerfile без pipeline.
Когда использовать
- Собрать или починить
.gitlab-ci.yml. - Job failed, YAML invalid, runner offline, dind не видит docker.sock.
- Registry login, tag, push.
- include/templates/components, rules, workflow, needs.
- Runner: executor docker/shell/k8s, tags, privileged, tokens.
Workflow
- Зафиксируй GitLab и runner: версия инстанса, executor, tags, protected.
- Читай pipeline как DAG:
stagesvsneeds,rules,workflow:rules. - Не используй deprecated
only:/except:— толькоrules:. - Образы и теги пинь.
image: docker:latestне годится. - Секреты — masked/protected CI variables, Vault, file-type variables.
Не
CI_JOB_TOKENв чужой проект без явной job token allowlist. - Проверка: pipeline editor /
glab ci lint, затем пустой MR pipeline, затем deploy job сwhen: manualна prod.
Минимальный каркас
workflow:
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
when: never
- if: $CI_COMMIT_BRANCH
stages: [build, test, deploy]
default:
interruptible: true
variables:
FF_TIMESTAMPS: "true"
include:
- local: /ci/templates/*.yml
Companion skills
- Dockerfile/compose внутри job →
docker-ops. - Деплой хоста через Ansible из job →
ansible-playbook. - Обвязка delivery/rollback как процесс →
agency-devops-automator.
References
references/pipelines.md— YAML-паттерны: build, dind, rules, cache.references/runners.md— runner tokens, executors, dind, registry.