Travis конфигурация phpcs только для текущих файлов коммитов - PullRequest
0 голосов
/ 02 мая 2018

Я настраиваю phpcs в Travis.
Для проверки стандарта PHP-кода при коммите push с travis CI.

Я использую следующий скрипт

script:
- phpcs --standard=PSR2  $(find ./ -name '*.php')

Но этот скрипт проверяет каждый файл .php. Мне нужен Трэвис, чтобы проверять только текущие зафиксированные файлы.

Есть ли у кого-нибудь решение для этого случая? Заранее спасибо.

1 Ответ

0 голосов
/ 02 мая 2018

Вы можете попробовать следующее:

получить последний идентификатор фиксации: ( Как получить последний идентификатор фиксации удаленного репо с помощью команды, похожей на скручивание? )

git log --format="%H" -n 1

Затем получите файлы в последнем коммите: ( Как вывести список всех файлов в коммите? )

git diff-tree --no-commit-id --name-only -r `git log --format="%H" -n 1`

Вы можете видеть, что предыдущая команда используется здесь. Первая часть перед backtits нуждается в идентификаторе фиксации, чтобы вывести список файлов. Этот идентификатор фиксации находится в первой команде.

И затем, если вам нужны только php-файлы, вы можете использовать grep:

git diff-tree --no-commit-id --name-only -r `git log --format="%H" -n 1` | grep .php

Вывод на одном из моих проектов PHP:

app/Http/Controllers/BarterController.php
app/Http/Controllers/HomeController.php
app/Talk.php
resources/views/profiles/index.blade.php
resources/views/talks/show-comments.blade.php

Просто замените вашу команду $(find ./ -name '*.php') на ту, которую я дал выше, и она должна работать. Ваша команда станет следующей:

phpcs --standard=PSR2 $(git diff-tree --no-commit-id --name-only -r `git log --format="%H" -n 1` | grep .php)
...