Ответ
Конфигурация пайплайнов хранится в виде файлов в корне репозитория, что обеспечивает версионирование и совместную работу (Infrastructure as Code).
Основные форматы:
- GitLab CI/CD:
.gitlab-ci.yml - GitHub Actions:
.github/workflows/*.yml - Jenkins:
Jenkinsfile(Declarative или Scripted Pipeline) - GitLab (альтернатива):
.gitlab/ci-templates/для инклюдов
Пример .gitlab-ci.yml (Declarative):
stages:
- build
- test
- deploy
variables:
DOCKER_IMAGE: "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA"
build-job:
stage: build
image: docker:latest
services:
- docker:dind
script:
- docker build -t $DOCKER_IMAGE .
- docker push $DOCKER_IMAGE
only:
- main
- merge_requests
Почему в репозитории? Это позволяет ревьюить изменения пайплайна через MR/PR, откатывать при необходимости и иметь единый источник истины для процесса сборки.