如何使用 Jenkins DSL 插件进行 SCM 轮询



我想通过DSL代码在Jenkins中启用SCM轮询。因为它很容易手动(没有DSL(并且工作得很好,但我正在寻找DSL代码来使其启用 - 检查附加图像以供参考。

我已经检查了下面的链接,但这里没有任何解决方案。https://jenkinsci.github.io/job-dsl-plugin/#method/javaposse.jobdsl.dsl.helpers.triggers.TriggerContext.scm

用于 GITScm 轮询的 GitHub 钩子触发器轮询供应链管理

点击这里查看图片

我没有使用 Jenkins 管道

最后我得到了解决方案:

以下是启用 scm 轮询的 DSL 代码:

触发器 {

   configure {
it / 'triggers' << 'com.cloudbees.jenkins.GitHubPushTrigger'{
    spec''
}
scm('')
            }
    }

我已经测试过,它工作得很好

另一种解决方案:

job('myjob') {
    configure { it / 'triggers' / 'com.cloudbees.jenkins.GitHubPushTrigger' / 'spec' }
}

我在尝试为管道启用 scm 轮询时遇到了类似的情况。

我正在通过 job-dsl 和 CasC 配置管道,我特别想启用 SCM 轮询。

所以这就是我的工作;我在管道作业上下文中,但我相信解决方案与工作上下文相同:

pipelineJob('myPipelineName') {
  environmentVariables {
    ...
  }
  definition {
    ...
  }
  configure { project ->
    project / 'properties' / 'org.jenkinsci.plugins.workflow.job.properties.PipelineTriggersJobProperty' / 'triggers' / 'hudson.triggers.SCMTrigger' {
      'spec'('* * * * *')
    }
  }
}

我这样做的方式是手动更改管道配置(在 UI 中(以启用轮询,然后查看磁盘上的作业.xml。您在上面的代码中看到的斜杠分隔的内容表示我要更改的值的 xml 标记路径。

最新更新