簡體   English   中英

Jenkins groovy構建步驟觸發groovy腳本中的另一個作業刪除原始作業的參數

[英]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()

我觸發的工作運行得很好,但有一個主要問題。 它們的原始參數丟失,並被新的參數PARAM1PARAM2取代。

如何觸發作業並添加其默認參數而不替換它們?

我努力為它找到一個解決方案而沒有找到一個......

編輯:我在考慮不設置參數(並允許作業使用其默認值),但為作業的執行設置環境變量。 有沒有人有關於如何做到這一點的想法或例子?

在嘗試了很多選項后,我決定加載我即將觸發的作業的默認參數,並將它們添加到我正在准備的參數數組中,如下例所示。

我使用了這里的示例來獲取我的作業的初始默認配置。

我仍然需要為選擇參數和空值添加一些邏輯,但我對當前結果感到滿意。

我希望這有幫助。

這些天我會使用像Build Flow插件這樣的東西。 該業務流程DSL / API將相關代碼減少為:

 build('job', PARAM1: 'val1'
              PARAM2: 'val2')

您可以將參數作為哈希映射傳遞,缺少的參數將回退到默認值。

這個插件的一個問題是:它很快就會被拋棄。 一個全新的替代品(尚未發布): https//github.com/jenkinsci/workflow-plugin

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM