Настроить CI/CD для Laravel проекта

3 000 руб. за проект
09 июля 2020, 18:36 • 2 отклика • 30 просмотров
Проблема: Есть несколько проектов на Laravel. Есть проблемы с развертыванием приложения на сервере
Технологии: Laravel, Docker, Gitlab CI, Alpine
Цель: Настроить CI для приложения на Laravel

Действия скрипта:
- Запуск docker-compose up на локальном окружении запускает весь проект
- При коммите в GitLab'е запускается Pipeline (.gitlab-ci.yml)
- В Pipeline запускается три шага: build, test, deploy
- build запускает установку компонентов (composer install, npm build)
- test запускает тестирование приложения (phpunit)
- deploy запускает развертывание на сервере docker, c выполнением миграций (этот шаг запускается только для ветки production)

Требование к Docker:
- PHP, PostgreSQL + PostGis, Redis, Nginx (важное замечание - Alpine версии, по возможности)
- Все файлы связанные с докером (nginx.conf, php.ini) находятся в отдельной папке (название: deploy)
- Подходил к другим Laravel проектам (универсальность)

Дополнительные требования к задаче:
В одном Makefile указать важные команды для запуска проекта
- make run - запускает приложение в локальном окружении
- make deploy - развёртывает приложение на сервере (во время выполнения gitlab-runner)
- make migrate - запускает миграции
- make tests - запускает тесты

Дополнительные требования к тестированию:
- Запускается на чистой базе
- Добавляет миграции
- Заливается необходимый дамп SQL из папки deploy
- Запускается phpunit

Для выполнения задачи могу предоставить:
- Доступ к тестовому серваку (SSH доступ)
- Пример проекта на laravel