Spring Bootのコードを、Azure DevOpsを使ってAzure WebAppsにCI/CDしてみました。手順は以下です。なお今回はAzure Reposでは無くGitHubを利用しました
- 前提
- Windows 10 ver.1909, WLS1利用
- Azureのアカウントを取得済
- ローカルにGitインストール済
- GitHubのアカウントを取得済
- 準備
- コーディング
- GitHubにpush
- Azure DevOps
#VSCodeのインストール
-
キレイなSpring Bootの開発環境を構築する(WSL + Proxy + vscode)を参照して進めます
- こちらを参考に一旦クリーンアンインストールしてから進めました(VS Codeをアンインストールするには)
- WSLへのJDKインストールはこちら
Azure WebApps環境作成
-
Webアプリを作成します。今回はSpringBootなのでランタイムはJava SE。OSはLinuxを選択。SKUはFree。(SKUとサイズの詳細はこちら)
GitHubにレポジトリ作成
- このあたりを参考に、GitHubにレポジトリを作成します。リモートリポジトリのアドレスを控えておきます
Azure DevOpsのアカウント取得とプロジェクト作成
- Azure DevOpsサイトの「無料で始める」からスタート
- Azureへのサインインを求められます。その後プロジェクトの作成画面に遷移します
- こんな感じの画面になったら、プロジェクトの作成は完了です
Spring Boot on VSCode
-
VSCodeの環境設定で確認した「キレイなSpring Bootの開発環境を構築する」記事のSpring Bootのプロジェクト作成を参照して進めます。
-
文中の「Spring-Boot-Dashboard」は以下。右クリック>Startで、デバッグコンソールに起動ログが流れ出したら起動できています
-
ブラウザでhttp://localhost:8080/helloにアクセスして、以下の画面が出ればOKです
-
以下の記事を参考にHelloWorldControllerを追加。
再びhttp://localhost:8080/helloにアクセスすると以下となります
#GitHubにPush
こちらの手順に従って進めました
https://iwasawa-officialweb.com/2019/08/27/%E3%80%90git%E3%80%91visual-studio-code-x-github-%E3%81%AE%E9%80%A3%E6%90%BA/
記事中の8.プッシュする、で、GitHubにレポジトリ作成の際取得したリモートリポジトリのアドレスを設定します。
こんな感じにPushされていればOKです
https://github.com/yosukearaiMS13/pcftest1
Azure DevOPs
Build pipeline作成
こちらに従って作成していきます
https://blog.nextscape.net/archives/Date/2019/06/devops-build-1
前の作業工程「Azure DevOpsのアカウント取得とプロジェクト作成」で作ったDevOpsプロジェクトにアクセスします。https://dev.azure.com/から辿れます
当該DevOpsプロジェクトの"Pipelines">"Pipelines"から、New pipelineをクリック
今回は画面下部の"Use the classic editor"のリンクを選択します
Source repositoryを選択し、先にpushしたGitHub上のレポジトリとブランチを選択します
以下の画面になります。Agent specificationをWSLで利用のubuntu-18.04に変更。後はそのまま。
これでBuild pipelineは完成です。Save&queueをクリックして実行してみます。
以下の画面になります。StatusがSuccessになったら完了です
"Success"の箇所をクリックして画面遷移し、Buildログを確認できます
Release pipeline作成
続いてRelease pipelineを作ります。こちらを参照
https://blog.nextscape.net/ja-JP/archives/Date/2019/06/devops-build-2
上記記事ではreleaseエラーを解消するためにBuild pipelineを修正していますが、今回はrelease pipelineの方を修正します。Package or folderを以下としました
Package or folder欄の・・・をクリックすると、artifactの構成が確認できます。こちらから対象のjarを選択してください
あと1点修正が必要なのはStartup commandです。Spring boot appの起動コマンドを以下の形で入力します
(Startup commandについては以下の記事が参考になりました)
https://qiita.com/kazuhiro1982/items/2cfe322280c045caaa37
これでRelease pipelineの作成は完了です。
##WebAppにdeploy
画面上部の"Create release"をクリックしてdeployします。以下の画面が出ますので、そのまま"Create"をクリック
画面上部にリンクが表示されます。そこから確認画面に遷移します
In progress -> SucceededとなったらRelease完了です
Azure App Service Deploy のところに、deploy先のApp Service Application URLが表示されます。このURL/helloにブラウザでアクセスして、ローカル実行と同じ内容が表示されたら、deploy成功です
Spring BootのコードをAzure DevOpsを使ってWebAppsにCI/CDした手順は以上となります。お疲れ様でした