我試圖完全自動創建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