簡體   English   中英

Jenkins 作業 DSL 觸發器已棄用

[英]Jenkins Job DSL trigger is deprecated

我正在使用 Job DSL Jenkins 插件,但我遇到了關於觸發器的問題。 它已被棄用,當我更新代碼時,仍會顯示棄用警告。

這里是之前的代碼:

protected def job
 void nightly(String schedule='H 0 * * *') {
        job.triggers {
            cron(schedule)
        }
    }

然后根據更新: https://github.com/jenkinsci/job-dsl-plugin/wiki/Migration

void nightly(String schedule='H 0 * * *') {
        properties {
            pipelineTriggers {
                job.triggers {
                    cron(schedule)
                }
            }
        }
    }

還有一個警告:Warning: (JobBuilder.groovy, line 100) triggers is deprecated

我究竟做錯了什么? 屬性關鍵字是錯誤的還是應該是 job.properties?

提前致謝

job基本上表示作業 XML 配置文件的project塊,其方法轉換為嵌套的 XML 元素。

您的初始代碼

void nightly(String schedule = 'H 0 * * *') {
  job.triggers {
    cron(schedule)
  }
}

呈現這部分:

<triggers>
    <hudson.triggers.TimerTrigger>
        <spec>H 4 * * *</spec>
    </hudson.triggers.TimerTrigger>
</triggers>

您更新的代碼實際上做了同樣的事情,因為您正在調用triggersjob方法,就像更新之前一樣。 另一個問題是pipelineTriggerscron方法規范不同,所以正確的代碼是:

void nightly(String schedule = 'H 0 * * *') {
  job.properties {
    pipelineTriggers {
      triggers {
        cron {
          spec(schedule)
        }
      }
    }
  }
}

You can view available Jenkins DSL methods at https://your.jenkins.domain/plugin/job-dsl/api-viewer/index.html

暫無
暫無

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

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