Jenkins系列(三)——關(guān)于通用配置(General模塊)的介紹

前言

本篇文章是jenkins系列文章的第三篇文章,本篇文章將針對(duì)jenkins的通用配置(即General模塊)的配置進(jìn)行介紹,更多jenkins的文章可以通過(guò)下面連接進(jìn)行查看。

Jenkins系列(二)——觸發(fā)點(diǎn)和構(gòu)建環(huán)境的介紹

一、描述

描述這部分一般是填寫(xiě)這個(gè)任務(wù)的作用以及注意事項(xiàng)的,正常情況下建議不要留空白,根據(jù)實(shí)際情況來(lái)填寫(xiě)。保存后后續(xù)可以在任務(wù)的主頁(yè)上面看到對(duì)應(yīng)的內(nèi)容了。


image.png

展示樣例

二、舊構(gòu)建記錄處理(Discard old builds)

jenkins每次完成任務(wù)的構(gòu)建后,都會(huì)留下構(gòu)建的日志,如果配置了產(chǎn)物歸檔的話(huà),那么產(chǎn)物也會(huì)隨著構(gòu)建記錄一起保存下來(lái),長(zhǎng)期以往可能會(huì)對(duì)服務(wù)器的磁盤(pán)帶來(lái)一定的壓力,所以一般情況下,我們會(huì)選擇使用Discard old builds這個(gè)模塊的配置來(lái)幫助我們解決構(gòu)建歷史的空間占用問(wèn)題。
下面來(lái)講一下具體配置的含義

關(guān)于構(gòu)建日志
  • 保持構(gòu)建的天數(shù)(Build age)
    如果設(shè)置的值是7,那么七天前的歷史構(gòu)建記錄將在構(gòu)建新的任務(wù)時(shí)被被自動(dòng)清除
  • 保持構(gòu)建的最大個(gè)數(shù)(Build count)
    當(dāng)已經(jīng)存在一定數(shù)量的構(gòu)建時(shí),丟棄最舊的構(gòu)建。

這兩個(gè)選項(xiàng)可以同時(shí)激活,因此您可以將構(gòu)建保存14天,但最多只能保存50個(gè)構(gòu)建。 如果超過(guò)任何一個(gè)限制,那么超出該限制的任何構(gòu)建都將被丟棄。

關(guān)于發(fā)布包的保留策略

需要注意的是,如果沒(méi)有配置產(chǎn)物的歸檔的話(huà),默認(rèn)情況下產(chǎn)物都是不會(huì)進(jìn)行歸檔的,也就是說(shuō)jenkins不會(huì)保留發(fā)布包。因此只有在配置產(chǎn)物歸檔的前提下,設(shè)置發(fā)布包保留策略才有意義。


image.png
  • 發(fā)布包保留天數(shù)
    比如此處的值為5,5天前的發(fā)布包將被刪除,但構(gòu)建的日志、操作歷史、報(bào)告等將被保留(具體的保留策略看前面構(gòu)建天數(shù)/個(gè)數(shù)的配置)

  • 發(fā)布包最大保留#個(gè)構(gòu)建
    如果非空,最多此數(shù)目大構(gòu)建將保留他們的發(fā)布包

請(qǐng)注意,當(dāng)這個(gè)配置被更新時(shí),或者當(dāng)任何配置值被超過(guò)時(shí),Jenkins不會(huì)立即丟棄項(xiàng); 每次完成該項(xiàng)目的構(gòu)建時(shí),才會(huì)根據(jù)這些規(guī)則進(jìn)行應(yīng)廢棄構(gòu)建包的刪除。

三、是否支持并發(fā)構(gòu)建

image.png

默認(rèn)情況下,一次只執(zhí)行一個(gè)項(xiàng)目的構(gòu)建—任何其他開(kāi)始構(gòu)建該項(xiàng)目的請(qǐng)求將保留在構(gòu)建隊(duì)列中,直到第一個(gè)構(gòu)建完成。
這是一個(gè)安全的默認(rèn)設(shè)置,因?yàn)轫?xiàng)目通常需要對(duì)某些資源(如數(shù)據(jù)庫(kù)或硬件)進(jìn)行獨(dú)占訪(fǎng)問(wèn)。

不支持并發(fā)構(gòu)建的情況

勾選上這個(gè)選項(xiàng)之后,任務(wù)就可以支持并發(fā)構(gòu)建了。不過(guò)正如官方文檔說(shuō)明一樣,這個(gè)選項(xiàng)一般適用于做一些測(cè)試用例,我們有幾組構(gòu)建的參數(shù)同時(shí)需要執(zhí)行,這個(gè)時(shí)候并發(fā)構(gòu)建任務(wù)就可以提升我們的驗(yàn)證效率。不過(guò)如果是打包部署的話(huà),一般考慮到資源的獨(dú)占性的話(huà),建議是不要選擇并發(fā)構(gòu)建。

四、構(gòu)建參數(shù)的傳遞

jenkins支持我們?cè)趫?zhí)行任務(wù)的時(shí)候根據(jù)需要傳遞不同的值進(jìn)行構(gòu)建,這樣可以很大程度上讓任務(wù)的構(gòu)建變得更加靈活。

(一)boolean類(lèi)型的參數(shù)

名稱(chēng)為后續(xù)展示在頁(yè)面上以及腳本可以引用的變量名,勾選Set by Default表示默認(rèn)值為true(需要注意,這里是字符串的true),描述的話(huà)根據(jù)實(shí)際情況寫(xiě)一下變量的作用就行。

image.png

我們可以使用例如下面的判斷來(lái)進(jìn)行變量的使用

if [ $needInstall == 'true' ];then
    echo "選擇了needInstall"
else
    echo "未選擇needInstall"
fi
image.png
(二)下拉框類(lèi)型的參數(shù)

名稱(chēng)和描述和boolean類(lèi)型的配置差不多,選項(xiàng)的話(huà)每行寫(xiě)一個(gè)選項(xiàng)


image.png
image.png

我們可以用類(lèi)似下面的判斷來(lái)進(jìn)行變量的使用

if [ $timeZone == '倫敦時(shí)區(qū)' ];then
    echo "選擇了倫敦時(shí)區(qū)"
elif [ $timeZone == '北京時(shí)區(qū)' ];then
    echo "選擇了北京時(shí)區(qū)"
else
    echo "選擇了華盛頓時(shí)區(qū)"
fi
(三)憑證類(lèi)型的參數(shù)

我們?cè)谑褂?code>jenkins的過(guò)程中,肯定是難免需要配置各種憑證,對(duì)于這些憑證數(shù)據(jù),jenkins也支持我們作為參數(shù)進(jìn)行傳遞,這種參數(shù)類(lèi)型比較少會(huì)使用到,但是在進(jìn)行賬號(hào)權(quán)限測(cè)試這類(lèi)場(chǎng)景的話(huà),憑證類(lèi)型的參數(shù)就比較實(shí)用了。

image.png

此處需要注意,任務(wù)配置完成后,用戶(hù)選擇的憑證并不能由變量直接使用,事實(shí)上變量拿到的只是憑證的ID,需要結(jié)合其他配置和函數(shù)來(lái)使用,具體可以看下面這篇文章:Jenkins憑據(jù)管理

(四)文件類(lèi)型參數(shù)

這種數(shù)據(jù)類(lèi)型比較適合入?yún)⑹俏募娜蝿?wù),像我們跑一下任務(wù)的數(shù)據(jù)來(lái)源是固定格式的文件,我們就可以利用這類(lèi)參數(shù)來(lái)實(shí)現(xiàn)上傳文件到服務(wù)器后再啟動(dòng)應(yīng)用來(lái)進(jìn)行解析。此處有3個(gè)細(xì)節(jié)需要注意:

  • 默認(rèn)情況下,用戶(hù)上傳的文件是放在當(dāng)前的工作空間下面的,且jenkins這里的路徑支持我們配置多層級(jí)的目錄結(jié)構(gòu)
  • jenkins雖然支持我們獲取上傳的文件名,但如果文件路徑本身存在目錄的話(huà),那么就無(wú)法使用${文件路徑}來(lái)直接讀取到文件名了
  • 若用戶(hù)構(gòu)建時(shí)沒(méi)有上傳文件,原先已存在的文件不會(huì)被覆蓋


    image.png
image.png

我們可以在腳本中使用用戶(hù)上傳的文件名

echo ${temFile}
(五)字符串類(lèi)型的參數(shù)

字符串類(lèi)型也是一個(gè)比較常使用的參數(shù),如果變量的值是有限且可預(yù)見(jiàn)的,一般更推薦使用choice parameter即下拉框類(lèi)型的參數(shù),但如果參數(shù)的值很多樣化,無(wú)法在構(gòu)建之前就預(yù)設(shè)好,那么字符串類(lèi)型的參數(shù)就是很好的替代方案。

image.png

image.png

我們一樣可以通過(guò) ${變量名} 的方式來(lái)使用我們傳遞的參數(shù)值

(六)多行文本類(lèi)型參數(shù)

這種參數(shù)類(lèi)型支持我們輸入多行的參數(shù),也算比較好理解,但個(gè)人覺(jué)得沒(méi)有太多使用的場(chǎng)景,如果是不確定入?yún)⒌臄?shù)量,希望通過(guò)輸入多行數(shù)據(jù)交由后面的腳本進(jìn)行分割處理的話(huà),就可以考慮用這類(lèi)參數(shù)。


image.png

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容