2017-10-11 45 views
0

一個詹金斯管道項目被配置爲從一個Git回購獲取其Jenkinsfile如何確保在運行Jenkins管道之前更新參數列表?

Pipeline Def

如果我改變的參數列表,例如,從:

properties([ 
     parameters([ 
       string(name: 'FOO', description: 'Choose foo') 
     ]) 
]) 

到:

properties([ 
     parameters([ 
       string(name: 'FOO', description: 'Choose foo'), 
       string(name: 'BAR', description: 'Choose bar') 
     ]) 
]) 

並運行構建,第一次運行並不顯示新添加BAR參數:

Parameter list not updated

作爲更新文件詹金斯預計BAR參數爲存在,這將導致第一版本所變更後作爲用戶沒有與輸入呈現給輸入該值失敗。

有沒有辦法來防止這種情況?在顯示參數輸入頁面之前要確保Jenkinsfile是最新的?

回答

1

我有跳過構建一個功能,除非作業有所有必需的參數,是這樣的:

if (job.hasParameters(['FOO', 'BAR'])) { 
    // pipeline code 
} 
1

簡短的回答:沒有。這將是很好,如果有一些工具用於分析和處理Jenkinsfile與版本分開,但沒有。

在檢索,解析並運行Jenkinsfile之前,Jenkins並不知道新參數,唯一的方法就是......運行構建。

實際上,構建歷史將始終是「在Jenkins文件的後面一個運行」;當你更改Jenkinsfile中的某些內容時,下一個版本將與「舊」Jenkinsfile一起運行,但是在此之後拾取並處理新版本的Jenkinsfile。

相關問題