現狀:當前開發在迭代中完成相關feature功能開發之后到發布到dev環境的流程是:
- 提交代碼到git對應的分支
- 需要登錄域賬號去Jenkins服務查找相關的專案任務,再手動選擇分支進行構建,這里可能還涉及到
- 沒有Jenkins專案權限,需要找其他相關開發開權限
- 第一次沒有分支,需要到配置構建步驟里面去添加相關分支
- 等待構建完成之后手動登錄OneOps系統選擇對應的專案,選擇對應的nuget包版本進行發布
順暢情況就是上面三步,這三步每一步開發都得關注結果,順暢下來少則3、5分鐘,如果打包失敗可能還需要到Jenkins服務上查看失敗原因,再次修改專案代碼,再次重復上面的步驟,
期望改進:
解放開發,讓其只關注于代碼提交,提交后讓Jenkins自動構建、構建完成后自動發布到ops系統,并通知結果(包括構建失敗通知、發布成功通知)
實作步驟:
Jenkins專案構建步驟修改
-
配置手動構建分支引數

-
配置git專案地址,以及手動打包時候選擇分支引數,這里的${Branch}分支引數來源于上面步驟的choice引數,注意此處的${Branch}引數專案MsBuild時候會用到,因此后面git push自動構建時候需要生成改環境變數,


-
構建觸發配置,選擇Build when a change is pushed to GitLab,這里我們勾選如下幾個選項
并且設定了只有dev以及test相關的分支才觸發自動構建,過濾master以及online分支
- Build on Merge Request Events
- Build on Push Events
- Rebuild open Merge Requests
- Enable [ci-skip]
- Accept merge request on success
- Filter branches

- 構建環境,設定了版本為${GIT_BRANCH}.${BUILD_NUMBER}兩個系統環境變數,并且設定為構建顯示名稱——分支名稱+構建序號

并且問了兼容手動選擇分支構建以及git push自動構建,我們通過windows batch command 匯出了環境變數Branch,如果是git push自動構建,我們就將gitlabBranch環境變數賦值給Branch變數,并匯出到opsevn.properties檔案中,
5. 構建步驟中再次注入opsevn.properties檔案中的環境變數,再次通過Properties Content 注入一些自動發布、通知python腳本中需要使用Jenkins環境變數,包括:
- clusterId 發布集群id
- serviceId 發布服務id
- esbName 服務名稱
- buildUrl 構建url地址
- buildNumber 構建版本號
- buildCase 構建方式

再次通過windows batch command執行編譯構建,并且獲取構建是否成功,將狀態帶入到python腳本,以便后續通知使用,
6. gitlab中webhook設定,將上面步驟3圖中的GitLab CI Service URL 加入到webhook,

- python腳本 AutoOps.py 獲取傳入的構建引數后,做一下步驟處理:
- 判斷傳入相關引數并校驗
- 獲取構建操作人
- 獲取構建方式
- 判斷構建狀態是否成功
- 失敗發布Markdown提醒到企業微信群,可以自己查看失敗原因
- 構建成功注入cookie
- 通過集群、服務、構建版本號獲取構建的nuget包
- 呼叫介面發布nuget服務包
- 發布成功Markdown訊息提醒到企業微信群,可以直接查看發布結果



ps:需注意
- 環境變數的匯出、匯入方式
- 批處理中獲取構建結果是否成功
出處:http://www.cnblogs.com/rpoplar/
本文著作權歸作者【rpoplar】和博客園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連接,否則保留追究其法律責任的權利,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/532537.html
標籤:其他
上一篇:學習Java前的快捷鍵和軟體配置
下一篇:day17-Servlet06
