18年當時由于工作需要,研究了下jenkins 自動編譯、出包的功能。當時的需求是,需要考慮到客戶端和服務端的自動出包功能。客戶端分為:Android 、iOS、H5三種;服務端就是普通的war包。
當時只做了一半后面就移交出去了,時間倉促也沒來得及當時研究的成果。現(xiàn)在還記得當時實現(xiàn)了幾個功能:
1、iOS 、Android、H5的自動出包。記得當時還有一個需求包括iOS、Android出包時,更新最新的H5資源包。這個比較麻煩,最后卡殼了。
2、其次就是后端war 的自動出包。
現(xiàn)在回顧起來客戶端的打包,我完全忘記了??磥磲槍φ麄€流程,我壓根就沒很好的掌握,當時只是配置完成了。自己買個教訓吧。
永遠記住,能力是能夠重復實現(xiàn)的才叫能力。
堪稱完美的概念機不能量產(chǎn),這不是能力。
只能展示一次的技能,不是能力。
所以,能夠重復實現(xiàn)的才是能力。趁著現(xiàn)在還能記住剩下的部分,趕緊拿小本本記錄下來。以下是關于jenkins 中如何自定義變量的實現(xiàn)方式,先寫這么多。后面有新發(fā)現(xiàn)了再繼續(xù)更新吧。
jenkins 自定義變量
比如你現(xiàn)在有一個需求,現(xiàn)在的集成環(huán)境還不是全自動,jenkins 打包完成后還需要手動發(fā)包。
這個需求就會引申出一些隱性需求,比如:
a. jenkins 打包完成后需要提醒對應人員,繼續(xù)處理后面的手動出包流程。-- 郵件提醒的需求
b. 郵件提醒功能還需要細化,比如并行打包時需要區(qū)分每個包是誰提交的。-- 郵件內容體現(xiàn)commit內容
c. 后續(xù)發(fā)包提測還需要手動處理,所以郵件內容中還需要體現(xiàn)down war包的地址。方便直接打卡郵件down 對應的war。
以上的需求,都只需要一個步驟就能搞定——自定義變量。
下面進入步驟詳解:
- 1、添加對應的 execute shell
在 Post Steps 里面添加一個 Execute shell
Command 內容如下:
echo WarDownloadLink = $(find . -name *.war ) > propsfile
echo GitLog = $(git log -1 ) >> propsfile
如圖:

- 2、 導入自定義變量文件
在Post Steps 的后面添加一個 Inject environment variables 配置。
配置項的第一個:Properties File Path,填寫上面 Execute shell中保存臨時變量的文件名 :
propsfile
如上圖。
- 3、最后是使用的方式
目前我們的使用場景是,自定義提醒郵件的content內容,編輯提醒郵件的Content。
如下:
<ul>
<li>下載地址:<a href="${JOB_URL}/ws/${WarDownloadLink}">${JOB_URL}/ws/${WarDownloadLink}</a>
</li>
<li>構建編號 : BUILD(${BUILD_NUMBER})</li>
<li >最后提交 : ${GitLog} </li>
</ul>
# GitLog 的名稱和上面Execute shell 中命名的變量一樣
上面的content 既用到了 自定義的變量(GitLog、WarDownloadLink),也用到了jenkins 自帶的變量(JOB_URL、BUILD_NUMBER)。
- 4、最后效果圖
如圖:
