私はJenkinsの作成を完全に自動化しようとしています。私はgroovyスクリプトを使用してセットアップのほとんどを動作させました。私の最後のハードルは、DSLを使って仕事を作り出すことです。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ファイルを使用してジョブを作成することはできますが、XMLファイルは維持しにくく、わかりやすくありません。だから、私はDSL構文を使用するように切り替えたいのですが、createPrjectFromDSLのようなものでcreateProjectFromXML(...)を置き換えるAPIを修正することはできませんか?
私の質問は、DSLを使用して新しいジョブを作成する方法です。私はこの部分を働かせました、ありがとう。
しかし、私の次の質問は、ジェンキンスが起動時にジョブを作成するように、このファイルをどこに置くのですか?私は/var/jenkins_home/init.groovy.dし、それをコピーしようとすると私は、起動時に次の例外を取得:
WARNING:スクリプトファイルの実行に失敗しました:/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- 7d799f93 @のDSLの$ _run_closure1] 考えられる解決策:実行()、実行()、任意の()、待って()、grepを()、(ダンプ)
リモートリポジトリからDSLジョブをフェッチしてビルドするプロジェクトを作成できます。 – Opal
私が探しているものだと思います。もう少し詳しく説明できますか?私の目標は、ジョブDSLを使用して私のすべての仕事の作成を自動化することです。 – Gerb