[英]Jenkins groovy build step trigger another job in groovy script removes original job's parameters
我正在使用一個groovy腳本來觸發其他作業,這是基於Groovy插件頁面中的示例。
我將作業列表作為參數,驗證它們是否存在並使用一些參數觸發它們。 請參閱主觸發器代碼:
// Prepare parameters array
def params =
[
new StringParameterValue('PARAM1', 'val1'),
new StringParameterValue('PARAM2', 'val2'),
]
def future = job.scheduleBuild2(0, new Cause.UpstreamCause(build), new ParametersAction(params))
println "Waiting for the completion of " + jobLink
anotherBuild = future.get()
我觸發的工作運行得很好,但有一個主要問題。 它們的原始參數丟失,並被新的參數PARAM1和PARAM2取代。
如何觸發作業並添加其默認參數而不替換它們?
我努力為它找到一個解決方案而沒有找到一個......
編輯:我在考慮不設置參數(並允許作業使用其默認值),但為作業的執行設置環境變量。 有沒有人有關於如何做到這一點的想法或例子?
在嘗試了很多選項后,我決定加載我即將觸發的作業的默認參數,並將它們添加到我正在准備的參數數組中,如下例所示。
我使用了這里的示例來獲取我的作業的初始默認配置。
我仍然需要為選擇參數和空值添加一些邏輯,但我對當前結果感到滿意。
我希望這有幫助。
這些天我會使用像Build Flow插件這樣的東西。 該業務流程DSL / API將相關代碼減少為:
build('job', PARAM1: 'val1'
PARAM2: 'val2')
您可以將參數作為哈希映射傳遞,缺少的參數將回退到默認值。
這個插件的一個問題是:它很快就會被拋棄。 一個全新的替代品(尚未發布): https : //github.com/jenkinsci/workflow-plugin 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.