㈠ jenkins構建項目的錯誤和原因及其解決方法
我們項目開發完之後需要構建項目發布上線時,通常會使用到jenkins構建工具,然後在使用jenkins工具構建項目時通常也會遇到一些構建錯誤問題,通常情況下,如果項目在自己本地打包時沒有問題,啟動服務時也沒有問題的情況下,可能是jenkins配置問題,需要開發人員配合本地配置項的修改完成,下面我給大家分享一下我遇到的一些構建失敗問題,注意:本篇文章講的主要是關於前端項目的構建失敗問題。
Umi自動化工程創建的react項目
從圖一中可以看出,是構建時打包命令出錯,使用了不能識別的 npm run build:prod ,該命令是前端工程項目中賣友 package.json 包文件中的 scripts 中配中兆槐置的,該案例中前端並沒有配置build:prod 這個打包命令,如圖:
這里有兩種解決辦法。
直接去jenkins 上將打包命令配置成前端包文件種配置的命令,本案例中因為沒有區分不同的開發環境,而且項目也只有master一個主分支,沒有使用環境變數來區分不同環境的打包命令,所以圖一中的問題,可以直接將jenkins裡面的打包命令配置成圖二中的打包命令 npm run build。去到jenkins 工具中,找到對應的配置項,如圖:
如果項目變得復雜,需要進行嚴格的環境區分,那麼這種情況下建議使用第二種方法,使用環境變數區分不同環境的打包命令,具體步驟如下:
去到前端項目在項目根目錄下找到包文件package.json文件,打開後,在scripts下面配置build:prod 的打包命令,如圖:
去到前端項目中的配置文件config.js中配置 APP_ENV環境變數來區分不同的環境,例如生產環境,開發環境,測試環境等,配置如下:
本文中暫時講到圖一中這種jenkins構建失敗的現象以及導致失敗的原因和針對其不同的兩種解決方法,後續再碰到其它失敗現象再補充,或者大家也可以在評論區回猜笑復各自遇到的失敗情況,歡迎留言。
㈡ PHP項目的標准部署方式是怎樣的
PHP 的世界裡有 Composer(http://getcomposer.org/),這個玩意兒你可以聯想成 npm 之於 Node.js,gem 之於 Ruby。它有一個官方的包倉庫 Packagist(https://packagist.org/)。
一般的項目部署也有相關的工具,例如 phing(http://www.phing.info/),可以認為是 Ant 之於 Java。
舉
例來說,現在做的項目用的是 Github+Jenkins 的方案,每個開發人員從主倉庫 fork 到自己賬戶,然後提交 Pull
Request。Pull Request 會觸發 Jenkins 的 Pull Testing,將改動部署到 QA
環境中,然後該怎麼測試就怎麼測試吧。部署腳本的工作主要包括清理原先的項目文件和資料庫,取回代碼庫中最新的版本,跑 phing(包括資料庫的
Migration、運行 PHPUnit, PHP CodeSniffer等一系列QA工具)等。最終部署到生產環境的過程是類似的。