CI/CD
Работаю с CI/CD примерно с 2018 года, в основном используя GitLab CI. Автоматизировал весь цикл разработки: от запуска тестов и линтеров до сборки Docker-образов и деплоя на staging и production.
Опыт использования
Настройка с нуля
В проекте "2018-2019_-_BTrud" настраивал CI/CD пайплайны с нуля. Создавал конфигурации для автоматизации:
- Запуск unit-тестов и интеграционных тестов
- Проверка кода линтерами
- Сборка Docker-образов для различных окружений
- Автоматический деплой на staging после успешных тестов
Доработка и использование
В "2021-2024_-_Morizo" работал с уже настроенными пайплайнами, которые разработал коллега. Дорабатывал существующие конфигурации под новые задачи:
- Добавлял новые этапы в пайплайны
- Оптимизировал время выполнения
- Настраивал деплой для новых сервисов
- Использовал готовые пайплайны для своих задач
Что автоматизировалось
Тестирование:
- Unit-тесты
- Интеграционные тесты
Проверка качества кода:
- PHP CS Fixer для форматирования
- Статический анализ (PHPStan)
Сборка и деплой:
- Сборка Docker-образов
- Публикация образов в registry
- Автоматический деплой на staging
- Контролируемый деплой на production
- Откат на предыдущую версию при необходимости
Инструменты
GitLab CI - основной инструмент для всех проектов. Знаком с:
- Написанием
.gitlab-ci.yml конфигураций
- Использованием stages, jobs, artifacts
- Настройкой runners
- Работой с переменными окружения и secrets
- Кэшированием для ускорения сборки
- Условным выполнением jobs (rules, only/except)