Jenkins:是否可以使用 Jenkinsfile 创建 Ivy 作业? (管道即代码)

Jenkins: Is it possible to create an Ivy job using Jenkinsfile? (pipeline as code)

我有几个使用 Ivy 的项目,因此我创建了 Ivy 作业来构建我的工件并将其发布到存储库。

Ivy 插件非常有用,因为它以自动方式为我处理依赖项。但是,我正在将这些作业转移到 "pipeline as code" 方法,并希望使用 Jenkinsfiles 为我的每个项目自动创建作业。

我的疑问是:我可以使用 Jenkinsfile 创建完全相同的工作(常春藤)吗?如果没有,我可以使用 Jenkinsfile 创建任何类型的 Ivy 工作吗?

您可以使用 Jenkinsfile 中的作业 DSL 插件来创建新作业,请参阅 https://github.com/jenkinsci/job-dsl-plugin/wiki/User-Power-Moves#use-job-dsl-in-pipeline-scripts

以下管道代码调用 Job DSL 构建步骤,然后 运行 ivyJob.groovy Job DSL 脚本。

node {
  step([
    $class: 'ExecuteDslScripts',
    scriptLocation: [targets: ['ivyJob.groovy']],
    removedJobAction: 'DELETE',
    removedViewAction: 'DELETE',
    lookupStrategy: 'SEED_JOB',
  ])
}

ivyJob.groovy 脚本然后将创建一个 Ivy 作业和 运行 一个 Ant 构建:

ivyJob('example') {
  ivyBuilder {
    ant {
      target('clean')
      targets(['test', 'publish'])
      buildFile('build.xml')
      antInstallation('Ant 1.9')
      prop('key', 'value')
      javaOpt('-Xmx=1G')
    }
  }
}

有关详细信息,请参阅作业 DSL API 文档: https://jenkinsci.github.io/job-dsl-plugin/#path/ivyJob