Azure DevOps ProjectsではじめてのCI/CDを整える
ナウなエンジニアにバカウケというCI/CDなるものをせんとす.
Azure DevOps Projectsを利用してCI,CDを構築できるという.
何もわかっていないので,公式ドキュメントのとおりにやってみることにする.
Azure Portalにサインインする
ここね!
した!
DevOps Projectリソースを作成する
「リソースの作成」から「DevOps Project」を検索して作成する.
サンプルアプリケーションとAzureサービスを選択する
今回は練習ということでサンプルアプリケーション付きでDevOps Projectsを作るコースをたどる.
「.NET」を選んで「Next」.
アプリケーションのフレームワークを選択する
ここは「ASP.NET Core」を選ぶとしよう.
「.NET Framework」のASP.NETも選べるし,既存のアプリケーションをDevOps Projectに入れることもできるようなので,今度やってみたい.
ウェブアプリをデプロイする先のAzureサービスの種類を選択
今回は「Windows Web App」を利用する.
デプロイ先の設定
ここではプロジェクト名やDevOpsの組織,サブスクリプションの選択だけでなく,デプロイ先のWindows Web Appリソースのプラン(お値段)も選択する必要があるので注意すること.
例えばWeb AppのプランはデフォルトではS1
になっているが,これはだいたい月1万円ぐらいかかることが想定されるプランで,ちょっとお試しで,という価格ではなかったりする.
Locationの項目の下に「Additional settings」というリンクがあるので,それをクリックして設定を開く.
ここでは「Pricing tier」として「F1 Free」を選択した.OKを押す.
設定を確認して,これで良ければ「Done」をクリックすればDevOps Projectsの作成が始まる.しばらく待つ.
リソースの作成が完了したら,リソースへ移動すると以下のページが表示され,なんだかCI/CDっぽさ(?)が感じられてくる.
ここまでの操作で2つのリソースグループが作成されている.
ひとつはAzure DevOps
のリソースグループであり,もう一つはWeb App
のリソースグループである.
赤線がWeb App,黄線がDevOpsのリソースグループ.
状況を確認
今回はサンプルアプリケーション付きでDevOpsリソースを作った.
リソースはAzure Repos
に置かれている.もちろんGitHubや他のサービスとも連携できるが,今回のサンプルではこうだった,というだけ.
このアプリのデプロイ先はここから表示できる.
Application endpointをのリンクをクリックすると以下のページが表示されるだろう.Success!
このようにAzure DevOpsリソースのページからは,そのアプリに関する様々な情報を見ることができるようになっている.
コードを変更してコミットし,CI/CDを実行する
コード変更の手順は以下のとおり.
1. ソースコードをCloneする
CI/CD PipelineのCode
という項目にmasterブランチへのリンクがあるので,それをクリックする.
Azure DevOpsのプロジェクトページが開くのでClone
をクリックする.
リポジトリのCloneはどこも同じです.URLを使ってgit clone
するか,Visual StudioやVS CodeなどのIDEやエディタを使ってCloneする.
とりあえずコマンドラインからClone.
2. ソースコードに変更を加える
CloneしたソースコードをIDEやエディタで開く. ここではVisual Studio 2019で開いた.
Application/aspnet-core-dotnet-core/Pages/Index.cshtml
を開いて,以下のように変更した.
保存する.
この変更をコミットしてプッシュする.
コミット.
そして,プッシュ
3. 更新を確認
DevOpsのダッシュボードを確認すると,最新のコミットログ表示されており,先程のコミットが反映されていることがわかる.
ではアプリケーションのデプロイはどうなっているだろうか.
前出の「Success!」と表示されていたページをもう一度開いてリロードします.
すると,以下のように先程加えた変更が反映されていることが確認できた.
また,DevOpsのダッシュボードのBuild,devの項目を見ると「1/1 tests passed」と表示されており,テストが自動で実行されたこともわかる.
このようにプッシュ→テスト→デプロイが自動で行われた.
素晴らしい!
まとめ
今回はサンプルアプリ付きのシナリオでAzure DevOpsを利用した.
チュートリアルに従っただけなのでまだまださっぱり理解できていない.