jenkins實現git鈎子


tip:不需要generic webhook插件了,trigger選擇GitHub hook trigger for GITScm polling就行了,其他正常進行

在windows下 http服務器nginx時,訪問web目錄提示403 Forbidden,首先需要了解nginx出現403錯誤是什么意思:

  403 Forbidden表示你在請求一個資源文件但是nginx不允許你查看,403 Forbidden 只是一個HTTP狀態碼,像404,200一樣不是技術上的錯誤。

      找到nginx.conf:

  將user nobody 改為user root;重啟ng,仍無效果。

      后發現nginx默認是不支持瀏覽目錄的。

      找到 autoindex  off 更改為on。 重啟ng,正常訪問。

  ./nginx -s reload

實現git鈎子功能

首先我們要實現一個git鈎子功能,就是我們向github/碼雲等遠程倉庫push我們的代碼時,jenkins能知道我們提交了代碼,這是自動構建自動部署的前提,鈎子的實現原理是在遠端倉庫上配置一個Jenkins服務器的接口地址,當本地向遠端倉庫發起push時,遠端倉庫會向配置的Jenkins服務器的接口地址發起一個帶參數的請求,jenkins收到后開始工作。

  1. 打開剛創建的任務,選擇配置,添加遠程倉庫地址,配置登錄名及密碼及分支。
    添加倉庫地址
  2. 安裝Generic Webhook Trigger Plugin插件(系統管理-插件管理-搜索Generic Webhook Trigger Plugin)如果可選插件列表為空,點擊高級標簽頁,替換升級站點的URL為:http://mirror.xmission.com/jenkins/updates/update-center.json並且點擊提交和立即獲取。
  3. 添加觸發器
    第2步安裝的觸發器插件功能很強大,可以根據不同的觸發參數觸發不同的構建操作,比如我向遠程倉庫提交的是master分支的代碼,就執行代碼部署工作,我向遠程倉庫提交的是某個feature分支,就執行單元測試,單元測試通過后合並至dev分支。靈活性很高,可以自定義配置適合自己公司的方案,這里方便演示我們不做任何條件判斷,只要有提交就觸發。在任務配置里勾選Generic Webhook Trigger即可
    添加觸發器
  4. 倉庫配置鈎子 此處以碼雲為例,因為公司用的是碼雲,github的配置基本一致,進入碼雲項目主頁后,點擊管理-webhooks-添加,會跳出一個這樣的框來。
    倉庫配置鈎子 URL格式為 http://<User ID>:<API Token>@<Jenkins IP地址>:端口/generic-webhook-trigger/invoke userid和api token在jenkins的系統管理-管理用戶-admin-設置里,這是我的 URL格式 Jenkins IP地址和端口是你部署jenkins服務器的ip地址,端口號沒改過的話就是8080。
    密碼填你和上面userid對應的密碼,我這里是root。
    下面的幾個選項是你在倉庫執行什么操作的時候觸發鈎子,這里默認用push。
    點擊提交完成配置。
  5. 測試鈎子
    測試鈎子 點擊測試,如果配置是成功的,你的Jenkins左側欄構建執行狀態里將會出現一個任務。

 

測試鈎子 另外,你也可以試下本地提交代碼,提交代碼后,jenkins也會開始一個任務,目前我們沒有配置任務開始后讓它做什么,所以默認它只會在你提交新代碼后,將新代碼拉取到jenkins服務器上。到此為止,git鈎子我們配置完成。

 

gif效果圖:

完整效果圖

 

實現自動化構建

git push觸發鈎子后,jenkins就要開始工作了,自動化的構建任務可以有很多種,比如說安裝升級依賴包,單元測試,e2e測試,壓縮靜態資源,批量重命名等等,無論是npm script還是webpack,gulp之類的工作流,你之前在本地能做的,在這里同樣可以做。
作為演示,這里只演示三個基本常用的工作流程,安裝依賴包->單元測試->打包,也就是下面這三個命令。

npm install
npm run test npm run build 
  1. 首先,和本地運行npm script一樣,我們要想在jenkins里面執行npm命令,先要在jenkins里面配置node的環境,可以通過配置環境變量的方式引入node,也可以通過安裝插件的方式,這里使用了插件的方式,安裝一下nvm wrapper這個插件。
  2. 打開剛剛的jenkins任務,點擊配置里面的構建環境,勾選這個,並指定一個node版本。
    構建環境
  3. 點擊構建,把要執行的命令輸進去,多個命令使用&&分開。

 

執行的命令 4. 保存。
5. 此時本地修改一下代碼push測試一下(也可以點擊立即構建測試),點擊本次觸發的那個任務,選擇控制台輸出,將會看到Jenkins在雲端執行的過程。 雲端執行的過程 命令行最后一行是Finished狀態的如果是SUCCESS(藍色)則證明執行的任務都順利進行,是FAILURE(紅色)則證明中間有重大錯誤導致任務失敗,UNSTABLE(黃色)代表有雖然有些小問題,但不阻礙任務進行,黃色或者紅色可以去命令行看下錯誤輸出,看下哪里出了問題。 狀態 6. 如果上一步是SUCCESS,點擊項目的工作空間,將會發現多了dist和node_modules兩個文件夾。 文件夾

 

至此,我們已經搭建了一個簡易的構建工作流程,構建完成了,我們需要自動化部署。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM