Где хранятся конфигурационные файлы CI/CD пайплайнов для репозитория?

«Где хранятся конфигурационные файлы CI/CD пайплайнов для репозитория?» — вопрос из категории CI/CD, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Конфигурация пайплайнов хранится в виде файлов в корне репозитория, что обеспечивает версионирование и совместную работу (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, откатывать при необходимости и иметь единый источник истины для процесса сборки.