正月休みから作ってたやつが完成したので公開しました
Jenkins Yaml Axis Pluginについて
Yaml Axis Plugin - Jenkins - Jenkins Wiki
Travis CIみたいにyamlファイルからマトリックステストの軸を作成するためのプラグインです
使い方
1. リポジトリにyamlファイルをコミット
# axis.yml RUBY_VERSION: - 2.1.8 - 2.2.4 - 2.3.0 DATABASE: - mysql - postgres - oracle
2. 軸を設定でyamlファイルとkeyを設定する
面倒かもしれないですが1つずつファイル設定してください (matrix project pluginのソースを読んだけど一箇所で複数の軸を設定するのは無理っぽかった)
3. 実際にビルドするとyamlの値で軸が作られる
今までJenkinsだとマトリクステストの組み合わせの設定をリポジトリに含めることができなかったですが、Yaml Axis Pluginを使うと設定をリポジトリに含めることができるようになるので是非お使いください。
その他
今回初めてGroovy と GradleでJenkinsプラグインを作った
通常Jenkinsプラグインを作る時はmavenなのですが、gradle jpi pluginを使えばmaven使わずにgradleでプラグインの公開までできます
Gradle JPI Plugin - Jenkins - Jenkins Wiki
ハマりどころとしては、groovyとgradleがそれぞれ古いバージョンに依存しているため最新のものが使えないということです
groovyはJenkinsにバンドルされているバージョンしか使えない (v1.8.9)
- 2系でもプラグインのビルドはできるんですが、Jenkinsにマウントした時にエラーになることがある。
- 今回の場合、スーパークラスのコンストラクタを呼びだそうとした時に「コンストラクタの数が一致しない」的な実行時エラーが出て、Groovyのバージョン違いが原因だと気づくのに2日くらいかかりました。。。*1
- あと1.8だと
withCloseable
が使えないのが厳しい
gradle jpi pluginがgradle 2.3でしか動かない模様
- 2.10を使ったら
gradle jpi
でStackOverflowErrorがおきた - CHANGELOG を見ると「fixed StackOverflowError when using Gradle 2.8」って書いてあるので治ってはいそうなんですが、2.8でも同じエラーが起きたので2.3使うのが確実っぽい
このように最新バージョンが使えないのは厳しいところですが、素のJavaやMaven使うのに比べたらかなり楽でした
Groovy最高!!!!Gradle最高!!!!
プラグインの公開申請方法が変わってた
以前まではJenkinsプラグインを公開(githubのjenkinsci organizationへのforkやcloudbeesの設定)する時はメーリングリストでの依頼だったのですが、Jiraでチケットを上げるようになってました*2
https://wiki.jenkins-ci.org/display/JENKINS/Hosting+Plugins#HostingPlugins-Requesthosting
僕のチケットはこんな感じ(Jiraはログインしないと見れないのでスクショ貼ります)