Какая конструкция (файл) в GitLab начинается с точки?

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

Ответ

В GitLab ключевым файлом конфигурации, который начинается с точки, является .gitlab-ci.yml. Этот файл определяет конвейер непрерывной интеграции и доставки (CI/CD) для проекта.

Что он делает:

  • Описывает этапы пайплайна (stages), например: build, test, deploy.
  • Определяет задания (jobs), которые выполняются на этих этапах.
  • Задает образы Docker, скрипты, переменные окружения и правила запуска.

Пример базового .gitlab-ci.yml для DevOps-проекта:

stages:
  - validate
  - test
  - build-image

# Этап 1: Проверка синтаксиса и линтинг
lint-and-validate:
  stage: validate
  image: alpine:latest
  script:
    - echo "Validating Dockerfile..."
    - docker run --rm -i hadolint/hadolint < Dockerfile
    - echo "Checking Terraform fmt..."
    - terraform fmt -check

# Этап 2: Запуск модульных тестов
test-unit:
  stage: test
  image: golang:1.21
  script:
    - go test ./... -v

# Этап 3: Сборка Docker-образа и отправка в registry
build-docker-image:
  stage: build-image
  image: docker:latest
  services:
    - docker:dind
  script:
    - docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .
    - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
  only:
    - main  # Запускать только при коммите в main ветку

Другие важные файлы GitLab, начинающиеся с точки:

  • .gitignore — шаблоны файлов и папок, которые не должны отслеживаться Git.
  • .gitlab/ — директория для шаблонов (например, merge_request_templates/, issue_templates/) и других специфичных для GitLab конфигураций.