CI/CDを実践するため、JenkinsでArtifactsを生成してアプリケーションサーバーにデプロイする所まで設定してみました。
ソースコードとサーバー構築はこちらの準備編に書いてあります。
JVMサーバーへSpringBootアプリケーションを自動デプロイしたい場合はSpringBootアプリ編を参照
Jenkinsのジョブの流れ1
- ソースコードをチェックアウトする
- Mavenでビルドを実行しwarファイルを出力する
- Tomcatマネージャーを使ってwarファイルをTomcatサーバーに転送してデプロイする
ソースコードをチェックアウトする
ソースコードも管理からGitを選び、準備編で用意したGithubのリポジトリをチェックアウトします。2
branchは、*/master を指定します。
Mavenでビルドを実行しwarファイルを出力する
シェルの実行を選び、./mvnw
コマンドで実行します。
ビルドはmavenを使いますが、Maveタスクではなくリポジトリに含まれるMavenWrapperで実行します。
尚、リポジトリにはプロジェクトが2つあるため、カレントディレクトリをWebSpringBootに移動してから実行しています。
cd WebSpringMvc
./mvnw clean package
Mavenを実行すると、/WebSpringMvc/targetフォルダに、web-spring-mvc.war が生成されます。
Tomcatマネージャーを使ってwarファイルをTomcatサーバーに転送してデプロイする
シェルの実行を選び、curlでTomcatのmanagerコマンドを実行して、warファイルをデプロイします。
# path=/appパラメータで、アプリケーションのコンテキストパスが指定できます
curl --upload-file WebSpringMvc/target/web-spring-mvc.war "http://admin:password@192.168.33.30:8080/manager/text/deploy?path=/app&update=true"
Jenkinsのジョブ実行が成功すると、以下のURLからアプリケーションの実行が確認できます。
http://192.168.33.30:8080/app/greeting
ビルドの設定画面
参考
Configuring Manager Application Access