文章目錄
如何透過 jobname 取得 Jenkins 2 的 SCM Repository URL 及如何取得 BUILD_ID 及 BUILD_NUMBER
公司的 CI 流程需要使用 SCM Repository URL 來進行不同環境間的程式碼切換,原本為每個 job 都加上一個 URL 設定,但這樣一來就需要有人去維護這個設定,經年累月後物換星移後,默默地增加了可能出錯的一個隱形問題,最好的方式就是使用 SCM Repository URL,而為了配合模組化建置的計畫,就需要有個 build template 然後使用參數來進行資料的取得及後續作業
如何取得 SCM Repository URL
讀取 job config
Jenkins 的 job 設定都是個 xml 檔,只要使用 xml 的處理方式,就可以輕鬆取得 job 上的任何設定了,接著就來看看可以怎麼處理(以下會使用 PowerShell 來示範)
config 位置 job 的 config 就位於 “{Jenkins 安裝目錄}\jobs{jobname}\config.xml”
e.g.
C:\Program Files (x86)\Jenkins\jobs\A01\config.xml
PowerShell 語法
#將 config 檔案 parse 成 xml 物件 [xml]$xmldata = get-content "{Jenkins 安裝目錄}\Jenkins\jobs\{jobname}\config.xml" #依階層取值
GIT
- Jenkins 的設定
- config 內容
- 使用 powershell 取得 url 設定
[xml]$xmldata = get-content "{Jenkins 安裝目錄}\Jenkins\jobs\{jobname}\config.xml" $xmldata.project.scm.userRemoteConfigs.'hudson.plugins.git.UserRemoteConfig'.url
SVN
- Jenkins 的設定
- config 內容
使用 powershell 取得 url 設定
[xml]$xmldata = get-content "{Jenkins 安裝目錄}\Jenkins\jobs\{jobname}\config.xml" $xmldata.project.scm.locations.'hudson.scm.SubversionSCM_-ModuleLocation'.remote
如何取得 BUILD_ID and BUILD_NUMBER
依 Environment Variables BUILD_ID and BUILD_NUMBER now return the same value 揭露 BUILD_ID 與 BUILD_NUMBER 目前會是相同的
BUILD_ID
$env:BUILD_ID
BUILD_NUMBER
$env:BUILD_NUMBER
參考資訊
文章作者 Yowko Tsai
上次更新 2021-11-02
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。