Многие из нас тратят уйму времени на рутинные задачи развертывания и тестирования. Автоматизация с помощью CI/CD – это не просто модное слово, а необходимость для эффективной разработки. Сегодня я расскажу, как настроить пайплайн для PHP-проекта, используя GitLab CI, исходя из личного опыта.
Что нам понадобится:
- Аккаунт на GitLab.
- PHP-проект с composer.json.
- Docker (для создания изолированного окружения).
Шаг 1: Подготовка `.gitlab-ci.yml`
Создаем файл `.gitlab-ci.yml` в корне вашего проекта. Это сердце нашего CI/CD. Начнем с базовой структуры:
stages:
- build
- test
- deploy
Шаг 2: Сборка (Build)
Здесь мы установим зависимости и подготовим окружение. Пример для PHP:
build_job:
stage: build
image: php:8.2
script:
- composer install --no-progress --no-suggest
artifacts:
paths:
- vendor/
Шаг 3: Тестирование (Test)
Запуск юнит-тестов. Убедитесь, что у вас настроен PHPUnit или другой фреймворк для тестирования.
test_job:
stage: test
image: php:8.2
needs: [build_job]
script:
- composer test
Шаг 4: Развертывание (Deploy)
Это самая вариативная часть. Зависит от вашего хостинга. Можно использовать SSH, FTP, Docker-образы или облачные сервисы. Пример с простым `scp`:
deploy_job:
stage: deploy
needs: [test_job]
script:
- scp -r ./public/* user@your_server:/path/to/public_html/
only:
- main
Советы:
- Используйте Docker-образы, чтобы избежать проблем с зависимостями на разных машинах.
- Не забывайте про переменные окружения для безопасности (API-ключи, пароли).
- Регулярно обновляйте зависимости и образы.
Это основа. Дальше можно добавлять статический анализ кода, интеграционные тесты и многое другое. Главное – начать!
Крáкен маркетплейс