2017-06-29 27 views
0

我正在使用Jenkins並對PHP請求進行PHPMD,PHPCS和PHP lint檢查。我們擁有的基本上是每個功能的獨立分支,如果它通過檢查和測試,它應該再次合併到主分支中。如何對分支中僅更改的文件進行絨毛或靜態分析?

我們正在檢查項目中的所有PHP文件用這個命令:

echo "php syntax checks are started" 
find ./ -type f -name \*.php -exec php -l '{}' \; | grep -v "No syntax errors detected" && echo "PHP Syntax error(s) detected" && exit 1; 

使用「PHP -l」爲所有PHP文件需要大約分鐘。

我想知道是否有一種方法來加快這一點,並提出瞭解決方案。請檢查我的答案。

回答

0

考慮到只有幾個PHP文件將要改變這隻需要幾秒鐘。

echo "php syntax checks for only changed files" 
(((git diff --name-only origin/master $GIT_COMMIT) | grep .php$) | xargs -n1 echo php -l | bash) | grep -v "No syntax errors detected" && echo "PHP Syntax error(s) detected" && exit 1; 

如果使用Git插件可與詹金斯你可以保持$ GIT_COMMIT否則應與承諾數或分支名稱。

這也可以用於css和js lints以及。更改「php -l」部分取決於你所需要的。

相關問題