【发布时间】:2017-10-12 17:49:35
【问题描述】:
我正在尝试完全自动化 Jenkins 的创建。我使用 groovy 脚本完成了大部分设置。我的最后一个障碍是使用 DSL 创建工作。我可以通过以下方式使用 xml 创建作业:
import jenkins.model.*
def jobName = "jobname"
String configXml = new File('/jobname.xml').getText('UTF-8')
def xmlStream = new ByteArrayInputStream( configXml.getBytes() )
Jenkins.instance.createProjectFromXML(jobName, xmlStream)
但是,XML 文件难以维护且不易理解。所以我想改用 DSL 语法,但我无法修复一个 API 来用 createPrjectFromDSL 之类的东西替换 createProjectFromXML(...)?
我的问题是如何使用 DSL 创建新工作?我已经完成了这部分工作,谢谢。
但是我的下一个问题是我应该把这个文件放在哪里,这样 Jenkins 才能在启动时创建作业?当我尝试将其复制到 /var/jenkins_home/init.groovy.d 时,启动时出现以下异常:
警告:无法运行脚本文件:/var/jenkins_home/init.groovy.d/neoconfig-dsl.groovy groovy.lang.MissingMethodException:没有方法签名:neoconfig-dsl.job() 适用于参数类型:(java.lang.String, neoconfig-dsl$_run_closure1) 值:[neo, neoconfig-dsl$_run_closure1@7d799f93] 可能的解决方案:run()、run()、any()、wait()、grep()、dump()
【问题讨论】:
-
您可以创建一个项目,该项目将从远程仓库获取 DSL 作业并构建它们。
-
我认为这是我正在寻找的东西。你能详细说明一下吗?我的目标是使用作业 DSL 自动创建所有作业。
标签: jenkins groovy automation