系列目錄 <https://www.cnblogs.com/tylerzhou/p/11204826.html>

          本系列已經(jīng)很久沒有更新了,接前面基礎(chǔ)篇,本系統(tǒng)主要介紹jenkins構(gòu)建里的一些高級特性.包括腳本參數(shù)化,Jenkins
          Pipeline與及在PipeLine模式下如何執(zhí)行常見的傳統(tǒng)構(gòu)建任務(wù)(這里指jenkins自由風(fēng)格構(gòu)建模式),jenkins cli,jenkins
          ssh,jenkins任務(wù)調(diào)度,資源調(diào)度,jenkins任務(wù)遠(yuǎn)程觸發(fā),jenkins混合集群搭建(同時包含windows和linux節(jié)點)等高級功能.

          jenkins參數(shù)化構(gòu)建


          在一些復(fù)雜的構(gòu)建中,我們可能需要指定很多參數(shù),如果這些參數(shù)都寫死在cmd或者powershell腳本或者ssh腳本里,腳本的可擴展性將嚴(yán)重受限,最為重要的是修改構(gòu)建腳本可能會造成嚴(yán)重后果(尤其是一些非常復(fù)雜的腳本),這里的一個最佳實踐就是不要輕易更改生產(chǎn)環(huán)境的腳本文件.而參數(shù)化構(gòu)建可以大大增加腳本的可擴展性.


          Jenkins提供了豐富的參數(shù)配置入口結(jié)合腳本自身的外部參數(shù)處理可以實現(xiàn)非常靈活的腳本參數(shù)配置.下面從腳本自身參數(shù)化選項,項目級參數(shù)化配置,節(jié)點級參數(shù)化配置以及全局參數(shù)配置來詳細(xì)講解如何在Jenkins里實現(xiàn)參數(shù)化配置.

          腳本自身參數(shù)化配置

          下面分別介紹bat腳本和powershell腳本如何接收外部參數(shù)

          bat腳本接收外部參數(shù)

          在windows
          bat腳本命令里,可以通過%0,%1,%2...以此類推來接收外部傳入?yún)?shù),其中%0為腳本自身的名稱,很多時候不是我們需要的,我們可以從%1開始接收外部傳入?yún)?shù).我們假如有以下一個名為
          build.bat
          的腳本,它用作構(gòu)建測試環(huán)境和生產(chǎn)環(huán)境的腳本,測試環(huán)境和生產(chǎn)環(huán)境的構(gòu)建可以通過一個外部參數(shù)來判斷.為了簡單起見我們并不使用真實環(huán)境的構(gòu)建腳本,而是簡單模擬,希望讀者能夠舉一反三,聯(lián)系到真實環(huán)境應(yīng)用場景.

          這個bat腳本非常簡單,就一行代碼
          echo %1
          shell接收外部參數(shù)

          在Jenkins中,除了powershell和bat命令外,其它地方接收外部參數(shù)的方法寫法都是shell語法寫法,即${參數(shù)名}形式


          如果我們傳入什么就會打印什么,我們傳入development,或者production,bat腳本就會接收到它們.以上非常簡單,這里不在jenkins里單獨創(chuàng)建項目演示,大家可以自己動手試一試.

          powershell接收外部參數(shù)

          相對于windows cmd,powershell更為強大,也更為靈活.下面分別介紹powershell的位置參數(shù)和命名參數(shù)

          powershell位置參數(shù)


          位置參數(shù)類似于上面講的cmd通過%0,%1獲取參數(shù)一樣,通過參數(shù)的順序來決定調(diào)用的是哪一個參數(shù).在Powershell里,位置參數(shù)傳入到ps1文件后都存儲在了一個叫作$args的數(shù)組變量里,可以通過$args[0],$args[1]來獲取各位置上的參數(shù)(位置通過空格區(qū)分,如果參數(shù)包含空格需要加引號)

          類似上面bat,我們新建一個叫作'build.ps1'的powershell腳本文件,代碼與上面的bat類似,如下
          echo $args[0]

          需要注意的是,powrshell腳本文件(即后綴名為ps1的文件)無法通過cmd命令窗口打開.需要使用powershell窗口或者調(diào)用powershell.exe來打開

          ps1文件的執(zhí)行方式

          1)
          使用powrshell命令窗口打開,就像打開cmd命令一下打開powershell命令窗口,需要注意的是powershell窗口執(zhí)行ps1文件需要使用相對路徑或者絕對路徑,比如你要打開一個名稱為
          Build.ps1的文件,打開方式應(yīng)該是.\Build.ps1(相對路徑形式)或者C:\build.ps1形式,不能是直接Build.ps1

          2) 使用cmd打開powershell,在cmd中輸入powershell
          就會進入powershell命令窗口,和直接打開powershell命令窗口效果是一樣的.

          3) 通過powrshell.exe 執(zhí)行powershell命令.在cmd中輸入powershell.exe -File
          要執(zhí)行的ps1文件即可運行ps1腳本


          第三種方式提供了一種在cmd環(huán)境執(zhí)行powershell腳本的方法,這在jenkins環(huán)境中非常有用,可以不必使用powershell插件即可調(diào)用powershell腳本.

          powershell 命名參數(shù)


          很多時候,尤其在要傳入的參數(shù)非常多的時候,位置參數(shù)語義不是很清析,對于調(diào)試腳本很不方便,而命名參數(shù)可以在一定程度上使語義更清楚,出錯的可能性也會更小.下面就介紹一下powershell中的命名參數(shù),我們新建一個名為
          build.ps1(名稱可以隨便起)
          param($build,$version) echo "current build type is: $build,and the version
          is:$version"
          以上腳本我們通過param關(guān)鍵字創(chuàng)建了兩個命名參數(shù),$build和$version(powershell中參數(shù)命名前面要加一個$
          符號),我們在當(dāng)前腳本所在文件夾下打開powershell命令窗口,然后執(zhí)行以下命令
          .\build.ps1 -version 1.0 -build development
          可以看到這里是通過-+參數(shù)名的方式來傳入命名參數(shù)

          可以看到輸出如下結(jié)果
          current build type is: development,and the version is:1
          大家可以看到,不管-version和-build位置如何,輸出的結(jié)果都是一樣的.

          明眼的同學(xué)可能會發(fā)現(xiàn)一點小問題,那就是-versoin輸入的參數(shù)是1.0而輸出的結(jié)果卻是1
          ,這是因為powershell把1.0當(dāng)作數(shù)字來處理了,舍棄掉了沒有用的小數(shù)位,我們想要輸出1.0只需要把1.0用引號引起來就行了,當(dāng)然還有其它辦法,那就是指定參數(shù)的類型,指定參數(shù)類型超出了本節(jié)講解的范圍.有興趣的童鞋可以查閱相關(guān)資料深入了解.

          友情鏈接
          ioDraw流程圖
          API參考文檔
          OK工具箱
          云服務(wù)器優(yōu)惠
          阿里云優(yōu)惠券
          騰訊云優(yōu)惠券
          京東云優(yōu)惠券
          站點信息
          問題反饋
          郵箱:[email protected]
          QQ群:637538335
          關(guān)注微信

                国产精品99久久久久的智能播放 | 欧美大屌视频 | 91麻豆视频免费 | 亚洲香蕉中文网 | 91福利国产成人精品播放 |