Jenkins構建鏡像成功後,向Gitlab建立標籤

1 環境介紹

  • 私有部署 jenkins 2.121.2
  • 私有部署 GitLab 2.3.0

2 前提知識

本教程不會詳細介紹構建參數,適合有必定構建基礎的同窗來看。git

3 Jenkins構建參數

3.1 設置源碼管理Name屬性

  1. 在Name中輸入一個字符串,例如demo
  2. 若是你看不到Name字段,那麼應該點擊高級按鈕,默認該字段是隱藏的

圖片描述

3.2 增長構建步驟執行shell

若是不配置git email 和 name, 下一步向GitLab的對應倉庫中建立標籤時,會報錯。docker

git config --global user.email "your email"
git config --global user.name "your name"

圖片描述

3.3 增長構建後的步驟:Git Publisher

若是沒有Git Publisher,那麼你須要安裝該插件。shell

  • 勾選 Push Only If Build Successds
  • 勾選 Force Push
  • Tag to push 我通常會設置和docker鏡像同樣的標籤,這樣若是要建立hotfix分支,只須要知道鏡像標籤,就能夠知道Git中對應的Tag號是什麼。
  • Taget remote name 要和源碼管理中的Name字段值同樣便可

圖片描述

3.4 GitLab中查看結果

能夠看到,tag已經建立成功。緩存

圖片描述

4 總結

Jenkins構建鏡像成功後,鏡像的標籤和GitLab中該倉庫的標籤能夠一一對應。性能

這樣一個項目能夠不用太多的分支,若是線上項目須要當即上線一個hotfix,那麼就能夠從鏡像的的tag追溯到GitLab中的tag, 而後能夠很方便的從該tag上建立hotfix分支。ui

以前我也嘗試過在docker構建過程當中,將本次構建的commitId寫入docker環境變量中。可是每次構建commitId通常都是不同的,這一層構建基本上都沒辦法使用緩存,並且因爲機器性能不足,每次構建十分耗時。spa

索性,我就不把commmitId寫入Docker鏡像中。Docker構建的鏡像tag寫入GitLab還有個好處,即便Jenkins掛了,構建歷史仍是會安穩的保存在GitLab中。插件

若是安裝了Build+Timestamp+Plugin插件,能夠在git tag 的message填入。"$BUILD_TIMESTAMP $BUILD_DISPLAY_NAME", 那麼tag就會帶有Jenkins構建事件。code

相關文章
相關標籤/搜索