>
鑰匙要點如果您想更多地了解每個軟件包的作用,請查看Bruno關於PHP QA工具的文章。
準備螞蟻>在我們的Jenkins服務器上,我們將使用ANT。因此,如果尚未在服務器上安裝ANT,請確保通過運行以下命令來確保它是。
"require-dev": { "squizlabs/php_codesniffer": "~1.5.*", "phpmd/phpmd": "~2.1.*", "sebastian/phpcpd": "~2.0.*", "pdepend/pdepend": "~2.0.*", "phploc/phploc": "~2.0.*", "phpunit/phpunit": "~4.3.*", "theseer/phpdox": "~0.7.*", },
>
>運行螞蟻,您可以在命令行上啟動螞蟻構建。這意味著螞蟻將運行構建目標。如果沒有給出任何參數,ANT將按照配置中指示的默認值來運行目標,在這種情況下,這也是構建的。>讓我們仔細看看構建目標。
>目標是空的,但是,它取決於許多其他目標。它將首先運行準備目標,然後繼續使用皮棉目標直到運行每個目標。 讓我們看一下phploc-CI目標。
>sudo apt-get install ant
這個目標很容易理解。您會注意到這取決於準備目標。由於這已經由構建目標運行,因此不會再運行。然後,我們獲得可執行文件,即Phploc,將由ANT執行。您較早地使用作曲家安裝了此功能。最後,我們將看到phploc的特定參數。 ANT將基於此目標配置運行以下命令行輸入。
><span><span><span><target</span> name<span>="build"</span> depends<span>="prepare,lint,phploc-ci,pdepend,phpmd-ci,phpcs-ci,phpcpd-ci,phpunit,phpdox"</span> description<span>=""</span>/></span></span>$ {toolsdir}和$ {基礎}是2個變量。根據它們的配置方式,它們可能會影響整個命令行輸出
<span><span><span><target</span> name<span>="phploc-ci"</span> depends<span>="prepare"</span> description<span>="Measure project size using PHPLOC and log result in CSV and XML format. Intended for usage within a continuous integration environment."</span>></span> </span> <span><span><span><exec</span> executable<span>="${toolsdir}phploc"</span>></span> </span> <span><span><span><arg</span> value<span>="--count-tests"</span>/></span> </span> <span><span><span><arg</span> value<span>="--log-csv"</span>/></span> </span> <span><span><span><arg</span> path<span>="${basedir}/build/logs/phploc.csv"</span>/></span> </span> <span><span><span><arg</span> value<span>="--log-xml"</span>/></span> </span> <span><span><span><arg</span> path<span>="${basedir}/build/logs/phploc.xml"</span>/></span> </span> <span><span><span><arg</span> path<span>="${basedir}/src"</span>/></span> </span> <span><span><span><arg</span> path<span>="${basedir}/tests"</span>/></span> </span> <span><span><span></exec</span>></span> </span><span><span><span></target</span>></span></span>
> 如上所述,如果您只想觸發此目標,則應在命令行上運行ANT PHPLOC-CI。 請注意,此phploc命令將輸出phploc.csv文件和phploc.xml文件。例如,詹金斯(Jenkins)安裝的插件將讀取這些文件並將其轉換為圖形。在下一篇文章中,我們將更深入地研究這個主題。
>如果您瀏覽整個build.xml文件,您會注意到它取決於某些工具的其他3個單獨的配置文件;構建/phpmd.xml,構建/phpdox.xml並構建/phpunit.xml。這些配置文件由實際工具請求。要了解更多信息,請查看他們各自的文檔。
請注意,phpunit.xml受到Symfony2的原始phpunit.xml.dist文件的啟發,因為我們正在處理Symfony2項目。更改build.xml文件 >那麼,我們完成了嗎?不幸的是,還沒有。 build.xml文件非常通用,並且不完全適合我們的項目。首先,我們需要定義可以找到諸如Phpunit之類的工具。我們的作曲家將它們自動安裝在我們項目根源的bin目錄中。我們需要將ToolsDir屬性更改為正確的值。
>"require-dev": { "squizlabs/php_codesniffer": "~1.5.*", "phpmd/phpmd": "~2.1.*", "sebastian/phpcpd": "~2.0.*", "pdepend/pdepend": "~2.0.*", "phploc/phploc": "~2.0.*", "phpunit/phpunit": "~4.3.*", "theseer/phpdox": "~0.7.*", },
>我們還可以清理幾個命令。當前的build.xml文件定義了我們一方面具有SRC目錄,另一方面是測試目錄。由於Symfony2在SRC目錄中包含測試,因此我們可以刪除像此示例一樣的測試目錄的所有路徑。
sudo apt-get install ant>
儘管不是必需的,但我更喜歡保持所有內容盡可能清潔,以便它正確匹配我們的項目。 最後,在build.xml文件中所示的phpdox的當前配置在我的情況下與最新版本不起作用。我更改了下面的目標,因此它正確地讀取了我們的配置文件。 >
創建新目標已經設置了所有內容,以確保我們所有的QA工具都按預期運行。但是,我們的項目更加複雜。如果您分析了存儲庫,您會注意到依賴關係由作曲家和Bower調節。由於這是一個Symfony項目,我們還需要一個默認參數。 yml文件。我們需要處理這些要求,以便能夠在Jenkins上正確設置該項目。
>讓我們從parameters.yml文件開始。我們可以使用參數的默認內容。我們首先創建一個名為Copy-Parameters的新目標,該目標執行CP命令。<span><span><span><target</span> name<span>="build"</span> depends<span>="prepare,lint,phploc-ci,pdepend,phpmd-ci,phpcs-ci,phpcpd-ci,phpunit,phpdox"</span> description<span>=""</span>/></span></span>下一步是作曲家和鮑爾。我決定通過執行以下命令在Jenkins服務器上安裝它們。
>
[ed:請注意,如果您在託管在Windows上的VM中運行所有這些,Bowerphp將比Bower更好。現在,讓我們為作曲家創建一個目標。
<span><span><span><target</span> name<span>="phploc-ci"</span> depends<span>="prepare"</span> description<span>="Measure project size using PHPLOC and log result in CSV and XML format. Intended for usage within a continuous integration environment."</span>></span> </span> <span><span><span><exec</span> executable<span>="${toolsdir}phploc"</span>></span> </span> <span><span><span><arg</span> value<span>="--count-tests"</span>/></span> </span> <span><span><span><arg</span> value<span>="--log-csv"</span>/></span> </span> <span><span><span><arg</span> path<span>="${basedir}/build/logs/phploc.csv"</span>/></span> </span> <span><span><span><arg</span> value<span>="--log-xml"</span>/></span> </span> <span><span><span><arg</span> path<span>="${basedir}/build/logs/phploc.xml"</span>/></span> </span> <span><span><span><arg</span> path<span>="${basedir}/src"</span>/></span> </span> <span><span><span><arg</span> path<span>="${basedir}/tests"</span>/></span> </span> <span><span><span></exec</span>></span> </span><span><span><span></target</span>></span></span>
>將SYMFONY_ENV設置為測試很重要,因此Symfony知道必須清除其測試高速緩存目錄。
phploc --count-tests --log-csv /build/logs/phploc.csv --log-xml /build/logs/phploc.xml /src /tests
我們需要做的最後一件事是確保執行這些目標。因此,我們更改構建目標,並按照要執行它們的順序添加3個新創建的目標。 > git
我們需要做的最後一件事是準備.gitignore文件。如果您想在本地計算機上運行ANT目標,則您的構建目錄將填充您不想將其投入存儲庫的日誌文件。因此,我們將以下行添加到.gitignore文件中。
><span><span><span><property</span> name<span>="toolsdir"</span> value<span>="bin/"</span> /></span></span>
也許您對我們所做的所有更改感到有些困惑。為了方便起見,這是與我們上面描述的所有更改有關的合併的直接鏈接。
在Jenkins中創建項目
我們的項目已經準備好了。讓我們回到詹金斯並進行配置。這將是本文中最簡單的部分。<span><span><span><arg</span> path<span>="${basedir}/tests"</span>/></span></span>>
由於我們的項目位於Github上,因此建議您在Jenkins中安裝GitHub插件。如果您使用自己的Git服務器,則只需安裝常規的Git插件即可。如果您不確定如何安裝插件,請檢查上一篇文章。
>>返回概述時,必須在左菜單中單擊新項目。作為項目名稱,我們填寫Jumph。接下來,我們選擇“選項”複製現有項目,然後填寫PHP-Template作為要復制的項目。
我們要做的最後一件事是選擇源管理。就我們而言,這是git。接下來,您必須填寫存儲庫鏈接。如果您使用HTTPS鏈接,則無需提供任何其他憑據。我們可以決定應該建立哪些分支,但是由於我們只有一個主分支,因此我們將保持原樣。
配置完成了 - 非常簡單,因為我們使用了預定義的模板。如果向下滾動,您將準確看到為我們配置的模板。繼續在繼續之前保存您的配置。
啟動構建
如果您單擊構建本身,您將獲得一個新的側菜單,其中包含此特定構建的選項。單擊控制台輸出以確切查看發生了什麼。就我而言,由於缺少某些PHP擴展而導致第一個構建失敗。
>控制台輸出非常方便,以找出為什麼您的項目失敗。就我而言,我只需要運行sudo apt-get安裝php5-curl php5-xsl php5-sqlite php5-xdebug即可安裝一些所需的軟件包。我花了幾個構建才能弄清楚缺少什麼,但是隨著控制台輸出,很容易弄清楚出了什麼問題。最後,這就是我的構建歷史的樣子。
紅色意味著構建失敗,藍色意味著構建成功。失敗可能意味著我們以前看到的配置出了問題,但這也可能意味著單位測試失敗了。如果您再次打開build.xml文件,您會注意到某些目標獲得了一個名為failonError的屬性,該屬性設置為true。如果出於某種原因,該目標失敗了,ANT將自動停止並將其報告為損壞的構建。
>也許當建造成功時,您期望一個綠球,而不是藍色球。有一個插件可以顯示綠球,而不是藍色球。 結論
在本文中,我們為成功的構建而努力。我們必須準備我們的項目並在詹金斯(Jenkins)中創建一份工作。最終,我們不得不調試我們的第一個構建,因為我們忘記了安裝一些庫。>常見問題(常見問題解答)有關使用Jenkins
建立PHP項目的問題(常見問題解答)>如何為我的PHP項目設置Jenkins?首先,您需要在服務器上安裝Jenkins。您可以從Jenkins官方網站下載並遵循安裝說明。安裝後,您需要配置Jenkins與PHP一起使用。這涉及安裝必要的插件,例如PHP插件,Git插件以及其他插件,具體取決於您的項目要求。安裝插件後,您可以創建一個新的Jenkins作業,並將其配置為構建PHP項目。您將需要指定項目源代碼,構建觸發器和構建步驟的位置。
我可以將jenkins與其他編程語言一起使用,除了PHP?
>什麼是連續集成,詹金斯如何支持它?集成是一種軟件開發實踐,開發人員通常每天多次將代碼集成到共享存儲庫中。這有助於儘早解決集成問題,並減少提供軟件更新所需的時間和精力。詹金斯(Jenkins)每次提交對存儲庫的更改時都可以自動化構建,測試和部署軟件的過程來支持持續集成。
>我可以使用帶有Git的Jenkins?這使您每次推動更改GIT存儲庫都可以自動構建,測試和部署軟件。您可以通過安裝git插件並在git存儲庫中設置webhook來配置此功能,以觸發jenkins build nener nens the Change。詹金斯(Jenkins)提供了幾種工具來幫助您解決問題。這包括構建日誌,可以提供有關構建過程中發生的情況以及系統日誌的詳細信息,這些信息可以提供有關Jenkins Server整體操作的信息。您還可以使用Jenkins CLI或REST API與Jenkins Server進行交互並診斷問題。
>以上是在詹金斯準備和建立PHP項目的詳細內容。更多資訊請關注PHP中文網其他相關文章!