Jenkins:是否可以使用 Jenkinsfile 创建 Ivy 作业? (管道即代码)
Jenkins: Is it possible to create an Ivy job using Jenkinsfile? (pipeline as code)
我有几个使用 Ivy 的项目,因此我创建了 Ivy 作业来构建我的工件并将其发布到存储库。
Ivy 插件非常有用,因为它以自动方式为我处理依赖项。但是,我正在将这些作业转移到 "pipeline as code" 方法,并希望使用 Jenkinsfile
s 为我的每个项目自动创建作业。
我的疑问是:我可以使用 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
我有几个使用 Ivy 的项目,因此我创建了 Ivy 作业来构建我的工件并将其发布到存储库。
Ivy 插件非常有用,因为它以自动方式为我处理依赖项。但是,我正在将这些作业转移到 "pipeline as code" 方法,并希望使用 Jenkinsfile
s 为我的每个项目自动创建作业。
我的疑问是:我可以使用 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