从Jenkins Pipeline调用Job DSL

Etk*_*tki 3 jenkins jenkins-job-dsl jenkins-pipeline

我需要从管道触发Jenkins Job DSL(具体来说,我需要模仿“从工作空间读取定义文件”的行为),但是job dsl插件尚未在管道步骤列表中。我该如何实现?

das*_*ker 6

Job DSL Wiki显示了如何以流水线步骤运行Job DSL:https : //github.com/jenkinsci/job-dsl-plugin/wiki/User-Power-Moves#use-job-dsl-in-pipeline-scripts

node {
  jobDsl scriptText: 'job("example-2")'

  jobDsl targets: ['jobs/projectA/*.groovy', 'jobs/common.groovy'].join('\n'),
       removedJobAction: 'DELETE',
       removedViewAction: 'DELETE',
       lookupStrategy: 'SEED_JOB',
       additionalClasspath: ['libA.jar', 'libB.jar'].join('\n')
}
Run Code Online (Sandbox Code Playgroud)

  • 如果启用了 DSL 脚本安全性,`additionalClasspath` 将不起作用(管理 Jenkins --> 配置全局安全性 --> 为作业 DSL 脚本启用脚本安全性) (2认同)