(一)jenkins + GitHub 實現項目自動化部署
Git Parameter
插件打開系統管理 --> 插件管理
php
在可選插件選項中搜索 Git Parameter
,並將它勾選,直接進行安裝,等待安裝完成並重啓
html
此時在已安裝選項中能夠看到該插件
vue
在 General
選項下,勾選參數化構建過程,並添加 Git
參數
node
在新出現的參數配置中填寫名稱、選擇參數類型爲「分支」
nginx
在源碼管理選項下,選擇 Git
項,分支填寫爲上面定義的變量,源碼庫瀏覽器選擇 「自動」 並保存。
laravel
進入工程中,能夠看到以前的 「當即構建」 已經改變爲 Build with Parameters
。
git
點擊進入後能夠看到分支列表,選中分支便可 「當即構建」,訪問 ip
地址,能夠看到頁面內容已經發生改變,說明配置成功
shell
以前的演示項目只是單純的 h5,如今咱們以 laravel + vue
來進行演示。咱們知道,vue
項目中,若頁面內容發生改變,須要編譯事後才能把效果展現出來。那用 jenkins
怎麼方便的操做呢。
一、配置任務工程npm
二、在參數化構建過程下,添加參數,選擇布爾值參數,如圖所示。瀏覽器
三、修改 shell
命令,命令以下。
// 當前目錄 pwd composer install // 若不勾選 `npmrun` 選項,將除了如下這幾個文件打包到指定目錄 if [ $npmrun = 'false' ];then rsync -arlh --exclude=node_modules --exclude=.git --exclude=.env --exclude=public * /usr/share/nginx/html/ceshi #將文件除了這幾個文件打包到指定目錄 fi chmod -R 777 storage // 若勾選 `npmrun` 選項,將除了如下這幾個文件打包到指定目錄,並編譯 if [ $npmrun = 'true' ];then rsync -arlh --exclude=node_modules --exclude=.git --exclude=.env * /usr/share/nginx/html/ceshi cd /usr/share/nginx/html/ceshi npm install npm run dev fi
四、此時咱們去構建項目時,會出錯,打開控制檯輸出,能夠看到報 composer: command not found
五、咱們去安裝 composer
,PHP
,nodeJs
PHP 安裝教程
composer 安裝教程
nodejs 安裝教程
六、安裝完畢以後,若再次構建的時候仍是出現 composer: command not found
,在命令行輸入 echo $PATH
,拿到環境變量,將之配置到 jenkins
中。
系統管理 --> 系統配置 --> 全局屬性 --> 環境變量,新建鍵值
七、修改 nginx
配置文件,並使用 nginx -s reload
命令重啓 nginx
server { listen 80; server_name localhost; root /usr/share/nginx/html/ceshi/public; index index.html index.php; location / { try_files $uri $uri/ /index.php$is_args$query_string; } location ~ \.php$ { try_files $uri = 404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
八、訪問服務器 ip
,若出現錯誤,能夠到 nginx
的錯誤日誌裏去看具體緣由 /var/log/nginx/error.log
。出現 500
錯誤,多是 vendor
,storage
文件夾權限問題。
chown -R nginx:nginx vendor // vendor文件夾的全部者修改成nginx chown -R nginx:nginx storage // storage文件夾的全部者修改成nginx
大功告成