Ответ
GitLab — это единая DevOps-платформа с открытым исходным кодом, предоставляющая полный набор инструментов для управления жизненным циклом ПО: от планирования и разработки до развертывания и мониторинга.
Ключевые возможности:
- Управление исходным кодом: Git-репозитории с веб-интерфейсом, code review (Merge Requests), ветвлением.
- CI/CD: Встроенный пайплайн для автоматической сборки, тестирования и деплоя. Конфигурация через файл
.gitlab-ci.ymlв репозитории. - Управление проектами: Трекер задач (Issues), доски Канбан, планирование (Milestones).
- Артефакты: Встроенный Container Registry для Docker-образов, хранение билдов.
- Безопасность: Статический анализ кода (SAST), динамическое тестирование (DAST), сканирование зависимостей.
Пример базового .gitlab-ci.yml:
stages:
- build
- test
- deploy
build-job:
stage: build
script:
- echo "Building the application..."
- mvn compile
test-job:
stage: test
script:
- echo "Running tests..."
- mvn test
deploy-job:
stage: deploy
script:
- echo "Deploying to staging..."
only:
- main # Запускать только для ветки main
Почему это важно: GitLab устраняет необходимость в отдельных инструментах (например, Jenkins, Jira, Nexus), обеспечивая сквозную трассируемость и автоматизацию в одном интерфейсе. Доступен как облачный сервис (GitLab.com) и как self-hosted решение для приватного развертывания.