Pull to refresh

Малюсенький CI вашего Symfony проекта за 2 минуты

PHP *Symfony *
Без воды о том, как за 10 минут сделать:

  1. Проверяем ваш composer.json на серьезные и несерьезные ошибки, вроде неоптимального autoload
  2. Проверяем ваш composer.lock на security уязвимости в пакетах
  3. Проверяем вашу базу данных, что ничего не забыли
  4. Проверяем ваши YAML файлы
  5. Проверяем Coding Style по Symfony

Меня удивляет, почему многие не используют данный функционал в своих проектах, которые уже давно работают на проде. Туториал очень маленький, но зато все по делу. И я все же надеюсь, что вы сможете подчеркнуть себе что-нибудь из данного материала.

1) Проверяем ваш composer.json на серьезные и несерьезные ошибки, вроде неоптимального autoload:

./composer.phar validate --no-check-all --strict

2) Проверяем ваш composer.lock на уязвимости в пакетах:

php vendor/bin/security-checker security:check

В случае, если в базе данных будут обнаружены какие-то уязвимости с тем или иным пакетом, нам покажется вот такая картинка:

image

И в CI вернется статус, что программа была некорректно завершена, что поломает билд и привлечет внимание разработчика.

Подробнее о проекте
База данных

3) Проверяем вашу базу данных

php bin/console doctrine:schema:validate -e=prod

Ситуация:

Разработчик внес изменения в сущности. Но забыл создать миграцию, а мы ведь нормальные и используем миграции для того, чтобы менять что-то в базе на проде? А тут еще и тимлид пропустил, что нет миграции на новые изменения. Выполняйте эту команду после того, как накатили все миграции на базу данных. Команда проверит, что изменений в бд в соответствии с маппингом сущностей больше никаких не требуется, что дает 100% гарантии, что никто не забыт, ничего не забыто.

4) Проверяем ваши YAML файлы

Устанавливаем matthiasnoback/symfony-config-test для тестирования наших YAML файлов в проекте:

php bin/console lint:yaml app/config/

php bin/console lint:yaml src/AppBundle/Resources/config/

5. Проверяем Coding Style по Symfony

Устанавливаем escapestudios/symfony2-coding-standard и squizlabs/php_codesniffer, далее делаем следующее:

php vendor/bin/phpcs ./src -p --encoding=utf-8 --extensions=php --ignore=Tests --standard=./vendor/escapestudios/symfony2-coding-standard/Symfony2

В случае, если есть нарушения, мы получим примерно такую картину с полным описанием:

image
Tags:
Hubs:
Total votes 22: ↑21 and ↓1 +20
Views 9.9K
Comments Comments 7