shuhelohelo’s blog

Xamarin.Forms多めです.

Azure DevOps ProjectsではじめてのCI/CDを整える

ナウなエンジニアにバカウケというCI/CDなるものをせんとす.

Azure DevOps Projectsを利用してCI,CDを構築できるという.

docs.microsoft.com

何もわかっていないので,公式ドキュメントのとおりにやってみることにする.

Azure Portalにサインインする

ここね!

portal.azure.com

した!

f:id:shuhelohelo:20191229181619p:plain

DevOps Projectリソースを作成する

「リソースの作成」から「DevOps Project」を検索して作成する.

f:id:shuhelohelo:20191229181807p:plain

サンプルアプリケーションとAzureサービスを選択する

今回は練習ということでサンプルアプリケーション付きでDevOps Projectsを作るコースをたどる.

「.NET」を選んで「Next」.

f:id:shuhelohelo:20191229181947p:plain

アプリケーションのフレームワークを選択する

ここは「ASP.NET Core」を選ぶとしよう.

f:id:shuhelohelo:20191229182051p:plain

.NET Framework」のASP.NETも選べるし,既存のアプリケーションをDevOps Projectに入れることもできるようなので,今度やってみたい.

ウェブアプリをデプロイする先のAzureサービスの種類を選択

今回は「Windows Web App」を利用する.

f:id:shuhelohelo:20191229182442p:plain

デプロイ先の設定

ここではプロジェクト名やDevOpsの組織,サブスクリプションの選択だけでなく,デプロイ先のWindows Web Appリソースのプラン(お値段)も選択する必要があるので注意すること.

例えばWeb AppのプランはデフォルトではS1になっているが,これはだいたい月1万円ぐらいかかることが想定されるプランで,ちょっとお試しで,という価格ではなかったりする.

Locationの項目の下に「Additional settings」というリンクがあるので,それをクリックして設定を開く.

f:id:shuhelohelo:20191229183433p:plain

ここでは「Pricing tier」として「F1 Free」を選択した.OKを押す.

f:id:shuhelohelo:20191229183522p:plain

設定を確認して,これで良ければ「Done」をクリックすればDevOps Projectsの作成が始まる.しばらく待つ.

f:id:shuhelohelo:20191229183637p:plain

リソースの作成が完了したら,リソースへ移動すると以下のページが表示され,なんだかCI/CDっぽさ(?)が感じられてくる.

f:id:shuhelohelo:20191229184113p:plain

ここまでの操作で2つのリソースグループが作成されている.

ひとつはAzure DevOpsのリソースグループであり,もう一つはWeb Appのリソースグループである.

赤線がWeb App,黄線がDevOpsのリソースグループ.

f:id:shuhelohelo:20191229185300p:plain

状況を確認

今回はサンプルアプリケーション付きでDevOpsリソースを作った.

リソースはAzure Reposに置かれている.もちろんGitHubや他のサービスとも連携できるが,今回のサンプルではこうだった,というだけ.

f:id:shuhelohelo:20191229185808p:plain

このアプリのデプロイ先はここから表示できる.

f:id:shuhelohelo:20191229185905p:plain

Application endpointをのリンクをクリックすると以下のページが表示されるだろう.Success!

f:id:shuhelohelo:20191229190009p:plain

このようにAzure DevOpsリソースのページからは,そのアプリに関する様々な情報を見ることができるようになっている.

コードを変更してコミットし,CI/CDを実行する

コード変更の手順は以下のとおり.

1. ソースコードをCloneする

CI/CD PipelineのCodeという項目にmasterブランチへのリンクがあるので,それをクリックする.

f:id:shuhelohelo:20191229190715p:plain

Azure DevOpsのプロジェクトページが開くのでCloneをクリックする.

f:id:shuhelohelo:20191229190942p:plain

リポジトリのCloneはどこも同じです.URLを使ってgit cloneするか,Visual StudioVS CodeなどのIDEやエディタを使ってCloneする.

f:id:shuhelohelo:20191229191131p:plain

とりあえずコマンドラインからClone. f:id:shuhelohelo:20191229191736p:plain

2. ソースコードに変更を加える

CloneしたソースコードIDEやエディタで開く. ここではVisual Studio 2019で開いた.

Application/aspnet-core-dotnet-core/Pages/Index.cshtmlを開いて,以下のように変更した.

f:id:shuhelohelo:20191229192125p:plain

保存する.

この変更をコミットしてプッシュする.

コミット. f:id:shuhelohelo:20191229192706p:plain

そして,プッシュ f:id:shuhelohelo:20191229192821p:plain

3. 更新を確認

DevOpsのダッシュボードを確認すると,最新のコミットログ表示されており,先程のコミットが反映されていることがわかる.

f:id:shuhelohelo:20191229193055p:plain

ではアプリケーションのデプロイはどうなっているだろうか.

前出の「Success!」と表示されていたページをもう一度開いてリロードします.

すると,以下のように先程加えた変更が反映されていることが確認できた.

f:id:shuhelohelo:20191229193428p:plain

また,DevOpsのダッシュボードのBuild,devの項目を見ると「1/1 tests passed」と表示されており,テストが自動で実行されたこともわかる.

このようにプッシュ→テスト→デプロイが自動で行われた.

素晴らしい!

まとめ

今回はサンプルアプリ付きのシナリオでAzure DevOpsを利用した.

チュートリアルに従っただけなのでまだまださっぱり理解できていない.

私個人としてはGitHubを使っているので,今GitHubに置いてあるソースコードを使ってCI/CDを構築したい.