もぐてっく

人は1つ歳をとるたび、1ビットづつ大きくなれると信じてた。

フラットレイアウトなgradleマルチプロジェクトをJenkinsでビルドする

はじめに

春。成長と発展の季節ですね。

こちらもお仕事で開発してるソフトが複数バージョン並走x複数人開発になって、テスト環境で動いてるのが何なのかさっぱり分からなくなってきたところです。

なので、巷でよく聞くJenkinsくんに各バージョンのブランチをTomcatに自動デプロイしてもらえないかと思いました。

・・・ん?これってテスト環境の最新化以外にもメリットがあるのでは?

例えば、本番環境のリリースするモジュールのルールを

「ver_1ブランチのソースを使うこと(守れよ!絶対守れよ!!)」

って決めるより

「Jenkinsが(ver_1ブランチから)作ったwarファイルを使うこと」

の方が単純明快になるのではないか。

さらに、リリース時にgradlewを叩く必要がなくなるので新入りの学習コストの削減にも寄与できるのでは。

すげぇなJenkinsさん。
これはなんとしても実現しないと。

ハマる

今回自動デプロイする対象はmaster/にsettings.gradleを置くタイプのgradleマルチプロジェクトです。

それをJenkins 2.277.2 + 推奨プラグインで自動化してみると。

設定完了!さてその結果は・・・エラーが出ました。

FAILURE: Build failed with an exception.

* What went wrong:
Project directory '/var/lib/jenkins/workspace/test' is not part of the build defined by settings file '/var/lib/jenkins/workspace/test/master/settings.gradle'. If this is an unrelated build, it must have its own settings file.

アレですね。masterにcdせずにgradlewしたときのアレですね。
どこで設定すんのこれ?

解決策

Invoke Gradle scriptの「高度な設定...」を押すと出てくる「Root Build script」にmasterを設定するとビルド通りました。

f:id:moguno:20210411211949p:plain

f:id:moguno:20210411212032p:plain

【この記事がお気に召しましたら、ぜひ以下のリツイートをお願いします!】