jenkins--根據項目prid自動更新部署

說明

  • 公司采用的是基于Forking工作流。(如果是Gitflow工作流,原理一樣)
  • 公司的測試流程:開發者提交PR后,測試人員登錄測試服務器進入項目,基于項目master分支拉取PR代碼后,編譯部署重啟服務。
  • 測試的項目:gitlab,托管在碼云

目標

  • 通過jenkins實現自動的更新測試機項目代碼然后編譯部署重啟服務。

新建一個自由風格的job,然后配置

1. General
  • General中勾選‘參數化構建過程’,添加參數String Parameter
  • 使用 ${pr_iid} 引用輸入參數值
輸入圖片說明
2. 構建
  • 構建步驟選擇:Send files or execute commands over SSH,并選擇目標服務器
  • 添加Exec command:即實現手工登錄測試服務器的操作即可。
測試服務器上執行的Exec command
  • 說明,更新代碼步驟:先把本地HEAD指向main/master,然后fetch PR的ref(碼云和GitHub都已經實現克隆分支代碼),然后合并pr_iid分支的代碼,最后刪除克隆PR時新建的本地pr_iid分支。
  • 另外這里我們選擇ssh方式克隆PR代碼避免http方式需要輸入密碼而導致失敗。(main指的是目標項目的ssh地址)
碼云克隆項目PR說明
3. 點擊Build with Paramters
  • 輸入目標項目的pr對應的id,點擊開始構建即可


    輸入圖片說明
4. 構建結果
  • 更新項目代碼過程:
更新項目代碼
  • 編譯重啟服務過程:
編譯重啟gitlab
5. 遇到的問題
  • 問題1:由于編譯部署的時間比較長大概5分鐘左右,從而導致構建[Exec timed out or was interrupted after 120,011 ms]。
  • 解決:更改默認設置的Exec command時間,從默認的2分鐘改成10分鐘。
設置Exec timeout
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容