我试图完全自动创建Jenkins。我使用groovy脚本获得了大部分设置。我最后的障碍是使用DSL创建工作。我能够通过创建使用XML的工作:Jenkins:使用DSL自动创建工作
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来将createProjectFromXML(...)替换为createPrjectFromDSL之类的东西?
我的问题是如何使用DSL创建一个新的工作?我有这部分工作,谢谢。
但是,我的下一个问题是我在哪里放这个文件,所以詹金斯将在启动时创建作业?当我试图把它复制到/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)values:[neo,neoconfig- DSL $ _run_closure1 @ 7d799f93] 可能的解决方案:运行(),运行(),任(),等待(),grep的(),转储()
您可以创建一个项目,该项目将从远程仓库获取DSL作业并构建它们。 – Opal
我认为是我寻找的东西。你能再详细一点吗?我的目标是使用工作DSL自动创建我所有的工作。 – Gerb