Jenkins PipelineTriggers选项崩溃

Bad*_*Cat 2 cron groovy continuous-integration jenkins

尝试在Jenkins声明性管道脚本中使用cron触发的版本:

options
{
    disableConcurrentBuilds()
    timeout(time: 1, unit: 'HOURS')
    buildDiscarder(logRotator(numToKeepStr: '5'))
    pipelineTriggers([cron('H 0 * * *')])
}
Run Code Online (Sandbox Code Playgroud)

运行时,抛出此异常:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 30: Invalid option type "pipelineTriggers". Valid option types: [buildDiscarder, catchError, disableConcurrentBuilds, overrideIndexTriggers, retry, script, skipDefaultCheckout, skipStagesAfterUnstable, timeout, timestamps, waitUntil, withContext, withCredentials, withEnv, ws] @ line 30, column 3.
        pipelineTriggers([cron('H 0 * * *')])
     ^

1 error

    at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310)
    at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1085)
    at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:603)
    at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581)
    at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558)
    at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
    at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
    at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688)
    at groovy.lang.GroovyShell.parse(GroovyShell.java:700)
    at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.reparse(CpsGroovyShell.java:67)
    at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.parseScript(CpsFlowExecution.java:430)
    at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.start(CpsFlowExecution.java:393)
    at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:238)
    at hudson.model.ResourceController.execute(ResourceController.java:97)
    at hudson.model.Executor.run(Executor.java:405)
Finished: FAILURE
Run Code Online (Sandbox Code Playgroud)

有谁知道管道脚本中cron触发器的正确​​语法或解决方法?

Von*_*onC 5

JENKINS-37731,我看到一个cron使用以下语法:

properties([
    pipelineTriggers([
        cron('H/5 * * * *')
    ])
])
Run Code Online (Sandbox Code Playgroud)

例如参见jenkins-infra/jenkins.io/Jenkinsfile

由于您使用的是声明性管道,因此需要注入这些属性:请参阅“ Jenkins声明性管道:如何注入属性 ”。

您可以使用标记script内的步骤steps来运行任意管道代码。

这是因为pipelineTriggersparameters被排除在工作属性之外,如pipeline/modeldefinition/model/Options.groovy

public final static List<String> BLOCKED_PROPERTIES = ["pipelineTriggers", "parameters"]
Run Code Online (Sandbox Code Playgroud)