Jenkins是目前最受歡迎的自動化構(gòu)建工具之一。它有眾多的插件可供開發(fā)人員使用,非常適合CI/CD過程,可以加速軟件開發(fā)流程的速度。
而對于PHP開發(fā)人員來說,Jenkins可以輕松地實現(xiàn)自動化的構(gòu)建過程,以及運行測試用例,并在構(gòu)建失敗時及時通知團隊成員。下面介紹一些Jenkins和PHP一起使用的最佳實踐。
配置Jenkins服務(wù)
sudo apt-get update sudo apt-get install openjdk-8-jdk wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add - sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ >/etc/apt/sources.list.d/jenkins.list' sudo apt-get update sudo apt-get install jenkins
配置完Jenkins服務(wù)器后,在Jenkins dashboard頁面上選擇“Manage Jenkins”菜單,然后點擊“Manage Plugins”并安裝以下插件:PHP plugin、Checkstyle、Clover PHP、HTML Publisher Plugin。
配置Jenkins任務(wù)
確保已安裝和配置了以下必要組件:PHP、PHP Code Sniffer、PHPUnit、PHPUnit Jenkins Listener Plugin。
然后創(chuàng)建新任務(wù)并選擇“Free-Style Project”。配置“Source Code Management”:指定代碼庫的URL、分支名稱或提交。接下來,配置“Build Triggers”開始自動化構(gòu)建流程。
#!/bin/bash phpunit --boostrap=/path/to/bootstrap.php --log-junit build/reports/phpunit.xml --coverage-clover build/logs/clover.xml /path/to/phpunit/tests
這個腳本使用phpunit運行測試用例,并將結(jié)果寫入build/reports/phpunit.xml。此外,覆蓋率報告存儲在build/logs/clover.xml中。
使用PHP Code Sniffer
PHP Code Sniffer是一個很好的工具,可以檢查代碼是否符合一致的編碼標(biāo)準(zhǔn)。
vendor/bin/phpcs --standard=PSR2 /path/to/project
這個命令會在項目中運行PHP Code Sniffer,并輸出代碼中不符合PSR2標(biāo)準(zhǔn)的地方。
使用Checkstyle檢查代碼質(zhì)量
Checkstyle是一個開源工具,可用于檢查JAVA代碼的質(zhì)量。但是,對于PHP開發(fā)人員,PHPCheckStyle是一個很好的選擇。
php /path/to/phpcs.phar --report=checkstyle /path/to/project/src | sed 's/checkstyle.xml
這個命令會在項目中運行PHPCheckStyle,并輸出符合checkstyle格式的XML報告。
使用Clover
Clover是一個用于計量測試覆蓋率的工具。使用Clover可以幫助協(xié)同工作的團隊更好地了解他們的應(yīng)用程序經(jīng)過了多少完整的測試。
phpunit --bootstrap=/path/to/bootstrap.php --report-clover build/logs/clover.xml /path/to/phpunit/tests
這個命令使用phpunit運行測試用例,并將覆蓋率報告寫入build/logs/clover.xml。
使用HTML Publisher Plugin
HTML Publisher Plugin會將JUnit和Clover產(chǎn)生的HTML報告發(fā)布到Jenkins server上。
在Jenkins Server上添加發(fā)布任務(wù):
./vendor/bin/phpunit --log-junit build/reports/phpunit.xml --coverage-html build/reports/coverage/{BUILD_NUMBER}/phpunit /path/to/phpunit/tests ./vendor/bin/phpcs --report=summary --report-file=./build/checkstyle/phpcs.{BUILD_NUMBER}.log --standard=vendor/twig/twig/cs/PSR2.php /path/to/project/src/ ./vendor/bin/phpcs --report-checkstyle=./build/checkstyle/phpcs.xml --standard=vendor/twig/twig/cs/PSR2.php /path/to/project/src/ ./vendor/bin/phpcpd --progress src/
這些在上面運行的腳本將報告寫入build/reports/目錄中,其中包括:phpunit、checkstyle、CPD。
總結(jié)
使用Jenkins和一些強大的PHP工具集成確實可以使軟件交付過程更加高效、準(zhǔn)確且可靠。同時,運用這些自動化工具來幫助開發(fā)人員減少重復(fù)的工作量,還有利于更好地保證代碼質(zhì)量和穩(wěn)定性。