Ответ
В экосистеме GitLab CI/CD с точки (.) начинаются в основном файлы и директории конфигурации, которые часто являются скрытыми в Unix-подобных системах.
Ключевые сущности:
-
.gitlab-ci.ymlЭто основной и обязательный файл конфигурации пайплайнов. GitLab автоматически обнаруживает его в корне репозитория и использует для определения jobs, stages и скриптов. -
.gitlab/директория Специальная директория для хранения дополнительных конфигурационных файлов, связанных с GitLab. Например:.gitlab/merge_request_templates/– шаблоны описания merge request..gitlab/issue_templates/– шаблоны для создания issues..gitlab/CODEOWNERS– файл для определения ответственных за части кода.
-
Другие конфигурационные файлы репозитория Хотя они не специфичны для CI/CD, они влияют на его работу:
.gitignore– определяет, какие файлы не отслеживаются Git (а значит, и не попадают в контекст runner-а, если не указано иное)..gitattributes– может управлять поведением Git, например, настройкой diff для определенных файлов.
Пример структуры репозитория с CI/CD:
my-project/
├── .gitlab-ci.yml # <-- Конфигурация пайплайнов
├── .gitignore # <-- Игнорируемые файлы (node_modules, .env)
├── .gitlab/ # <-- Директория с шаблонами GitLab
│ ├── merge_request_templates/
│ │ └── default.md
│ └── issue_templates/
│ └── bug.md
├── src/ # Исходный код приложения
└── README.md
Важно: Runner, который выполняет jobs, клонирует репозиторий целиком, включая эти скрытые файлы (если они закоммичены). Поэтому в .gitignore часто добавляют служебные файлы runner-а или артефакты сборки, чтобы не засорять репозиторий.