2017-02-20 43 views
3

場景: 我在項目中使用@Library('my-lib')語法引用共享管道庫中的代碼中的JenkinsFile。我想測試對我的庫函數所做的更改,而無需執行對庫回購庫的提交。測試對Jenkins管道共享庫的修改而不需要提交

我意識到我可以在我的include語句中定位庫的特定版本或分支。我也意識到,我可以在JenkinsFile中修改腳本,而無需使用Jenkins UI中的「重放」功能進行提交。我如何測試對共享庫代碼的修改,而無需對我正在測試的分支進行提交?現在,我們不得不每次調整我們的庫代碼,我們不希望有一個超級總承諾歷史記錄。換句話說,我們只想提交我們的圖書館回購代碼,以瞭解我們所知道的代碼。

+1

您有三種選擇:1.重播(最好),或2.在Jenkins工作區的文件系統中直接修改代碼(錯誤),或者3.使用基於Docker的Jenkins圖像進行測試和開發,監視你的本地克隆,以便每次提交都會觸發構建,當你準備好時你可​​以擠壓和推動。 – rbellamy

回答

2

原來我是盲人,或者Jenkins Pipeline現在支持在使用「Replay」功能時編輯庫代碼。無論何時將新文件添加到庫以使其顯示在重播屏幕上,您都必須進行提交。一旦它在那裏,您可以編輯它,而無需每次都進行提交。一旦你滿意,它使用重放,然後你可以提交和推送。

+0

我在重播屏幕中看不到我的共享庫..你在使用插件嗎? – NicolasW

+0

@NicolasW你不會看到他們是全球圖書館(與文件夾庫相比)。 – mkobit

3

對於我的用例,我想測試在不同分支上創建的庫變量的更改。

由於重播將使用已設置的重播,因此您需要一種方法來清除它們,以確認它們已正確加載。

我還沒有檢查,如果有一個「更乾淨」的方式做到這一點。這將是下一步。

這裏是我的解決方法:

  1. 輸入重播和評論的@Library( 'LIBNAME')上Mainscript(Jenkinsfile)

    //@Library('libname') 
    
  2. 運行生成。這將按預期失敗並清除以前的重播變量。

  3. 再次進入重播,取消和調整了圖書館測試分支

    @Library('[email protected]') 
    
  4. 構建應該成功運行和重放變量應該反映這些變化。