Jenkins自動化部署伺服器及git 提交及git tag標籤版本更新流程,超詳細!

遊弋在冷風中發表於2020-12-25

工作中部署的專案和伺服器較多時就用上了Jenkins進行自動部署

優點

  • 不用在連線單獨的伺服器進行更新專案,再啟動專案服務的操作了
  • 更新部署都是自動的,比較方便。適合大批量的部署

一、git流程部分

專案或程式碼更新後。首先還是先走提交倉庫流程,然後再建立git tag打包版本並推送到遠端伺服器,便於下一步Jenkins部署

1.檢視專案程式碼變化
  git status
2.將變化後的程式碼提交到暫存區
  git add .

ps:
git add . 提交新檔案(new)和被修改(modified)檔案,不包括被刪除(deleted)檔案
git add -A 提交所有變化
git add -u 提交被修改(modified)和被刪除(deleted)檔案,不包括新檔案(new)
一般來說,常用的提交命令就是 git add .

3.提交註釋
  git commit -m 'xxxxxx'

ps:
這一步要確保你已經設定了此次git提交的使用者及郵箱,沒有設定會提示你進行設定後才能提交註釋,註釋一定要寫的言簡意賅
提交使用者及郵箱的設定方法有兩種。在我之前的隨筆裡有寫,這裡不再過多贅述,這裡直接使用修改全域性git提交使用者及郵箱的命令,分別執行:
git config --global user.name 你的目標使用者名稱
git config --global user.email 你的目標郵箱名

4.推送前先下拉專案最新程式碼。避免直接提交會覆蓋其他同事新push的程式碼,推送程式碼前先下拉這是一個好習慣
  git pull 
5.推送更新的程式碼到遠端倉庫
  git push
6.新增git tag版本前先檢視專案以有版本
  git tag -l
7.新增tag版本
  git tag -a vx.x.x -m 'vx.x.x'

ps:
git tag打標籤分為兩種型別:輕量標籤和附註標籤,輕量標籤是指向提交物件的引用,附註標籤則是倉庫中的一個獨立物件。
建立輕量標籤不需要傳遞引數,直接指定標籤名稱即可
git tag vx.x.x-light
建立附註標籤時,引數a即annotated的縮寫,指定標籤型別,後附標籤名。引數m指定標籤說明,說明資訊會儲存在標籤物件中,建議使用附註標籤
例子:git tad -a v1.3.5 -m 'v1.3.5版本' 即表示此次新增的git tag新版本為1.3.5,提交的註釋為v1.3.5版本
切換到標籤,與切換分支命令相同:
git checkout [tagname]
檢視標籤資訊
git show v0.1.2
刪除標籤(誤打或需要修改標籤時,需要先將標籤刪除,再打新標籤)
git tag -d vx.x.x
引數d即delete的縮寫,意為刪除

8.推送git tag版本到遠端倉庫伺服器
  git push origin --tags

ps:
推送git tag版本有兩種方式,建議直接使用推送全部未推送過的本地標籤的方式推送
推送一個本地標籤到遠端倉庫
git push origin
推送全部未推送過的本地標籤
git push origin --tags
到這裡,Jenkins自動化部署更新,Git部分就完成了所有工作

二、Jenkins自動化部署流程部分

目前我接觸的部署都是採用ansible-playbook部署元件,將打包好的專案程式碼拷貝到伺服器上,安裝依賴環境,啟動專案,對應的每個專案有一個jenkins標籤組,標籤組下面就是該專案的相關部署維護流水線任務

1.build打包新版本程式碼工程
  • 任務名稱:xx_build
  • 任務內容:xx程式碼工程編譯任務,按之前設定的git程式碼倉庫中的tag標籤編譯來打包admin工程
    1.點選build這一欄,跳轉進入build提交前介面

    2.點選Build with Parameters進入build提交介面

    3.在選擇欄中選擇git tag裡之前自己推送的git tag版本進行Build提交
2.update更新版本程式碼工程到指定伺服器
  • 任務名稱:xx_update
  • 任務內容:xx程式碼工程更新任務,按前面build任務編譯的版本,以及填入的目標伺服器,更新目標伺服器的程式碼工程版本
    1.點選update這一欄,跳轉進入update提交前介面

    2.點選Build with Parameters進入update提交介面

    3.手動填寫剛剛build的git tag版本,並填入指定伺服器IP進行update Build提交

    這樣就完成了一整套的Jenkins自動化部署伺服器及git 提交及git tag標籤版本更新流程
    寫這個最主要還是為了自己熟悉和積累,當然希望能幫助到其他人,有問題也可以在評論區交流

相關文章