Jenkinsのプロジェクトを自動的に追加する方法

More than 1 year has passed since last update.

管理するコードリポジトリが増えてくると、リポジトリ追加の度にテスト用のJenkinsプロジェクトを追加するのが面倒くさくなってきます。

もし各リポジトリのテスト方法がほぼ同じで、違うのはリポジトリ名くらいだという場合は、
JenkisのJobcopyBuilderPlugin (https://wiki.jenkins-ci.org/display/JENKINS/Jobcopy+Builder+plugin) を使うと便利です。

上記ページやgithubのREADME.mdを見るとわかりますが、このプラグインを使うとジョブのビルド時に"ジョブのコピー"ができるようになります。
また、コピーしたジョブの設定(config.xml)を一部置換することができます。

これを利用すると、下記のようにすることで、リポジトリ毎に動的にbuild jobを追加して動かすことができるようになります。

1.テスト用ジョブのテンプレートとなるJenkinsプロジェクト(以下 template job)を用意する
2.ジョブ追加兼ジョブ起動用プロジェクト(以下 dispatcher job)を用意する
3.dispatcher jobは"ビルドのパラメータ化"を使って、外からリポジトリ名を渡せるようにしておく
4.dispatcher jobのビルド処理の中でtemplate jobのジョブをコピーする (以下 build job)
5.コピーしたbuild jobのリポジトリの設定を3で渡されるリポジトリ名に置換する
6.dispatcher jobのビルド処理(もしくは、ビルド後の処理)の中で、build jobを起動するようにする

dispater jobの起動時に渡されるリポジトリ名を使って、そのリポジトリ用のbuild jobを作成し、
そのままbuild jobを起動してくれるようになります。