Azure DevOpsでビルド・テスト・デプロイまでやってみよう(.NET Core編 前半)
私のこのブログではここ最近いろんな言語をVS Code+Azure Functionsで動かしてみようという試みをやってきました。
そこには
人気上昇中のVS Codeを初めて触ってみる
C#以外の言語+Azureでの組み合わせでプログラムを動かしてみる
ということが目的としてありまして、VS Codeについて触り程度でしかありませんでしが、後者については十分に堪能することができました。
が、この試みには更に裏の目論見がありまして、
色んな言語で試してみることで、色んな言語の人達に本ブログを見てもらいたい
それによりブログのアクセスを少しでも増やしたい
という切実かつ若干いやらしい思いもありました。
これについてはそこそこ成果があったのか、Java編やJavaScrpit編に関しては私のブログにしてはなかなかのビュー数がありました。
そして今回、私がまだ十分に理解できていないAzure DevOpsに関して色んな言語で触ってみて理解を深めてみようというのがこれからの目的となります。
Azure DevOps、私の所属する会社でも最近のプロジェクトに関しては全てと言っていいくらい採用し、利用しています。
ただ、その機能を十分に利用できているかというとそれは一部のプロジェクトに限られ、私に至ってはその入り口でみんながキャッキャしているのを眺めるだけという状況でしたが、今回この記事をきっかけに一歩踏み出してみようと思います。
まず、先にAzure DevOpsの概要を自身の勉強がてら書いておきたいと思います。
DevOpsの機能としては以下のようなものがあります。
Azure Boards・・・タスク管理
Azure Pipelines・・・CI/CDツール
Azure Repos:Gitリポジトリ
Azure Test Plans:テストツール
Azure Artifacts:パッケージ管理
以上の5つが主な機能なのですが、私の会社では、というか私が携わっているプロジェクトでは主にPipelinesを使ってきており、他の機能についてはそれほど利用できていないという状況です。
ただ、Azure Reposについては上に書いた通りGitリポジトリであり、もし皆さんが他に普段使っているGitリポジトリがあるのであればわざわざ利用する必要は無いと思います。
実際、私の会社ではGitリポジトリはNulabさんのBacklogを使っていますので、そのゆえAzure Reposは使用していません。
Backlogを利用した方がいらっしゃる場合、「あれ?Backlogもタスク管理だから、DevOpsの機能の1つ、Boardsとかぶってるんじゃね?」と思われるかもしれません。
実はこの辺り、自社におけるプロジェクトの進め方等の事情もあって個人的に若干悩んでいる部分がありまして、今後DevOpsの記事を書いていく中で触れていきたいと思います。
と、前置きが終ったところで作業を開始しましょう。
まずは準備段階として.NET 6.0 SDKをインストールしておき、当然ながら今回の目的の1つであるAzure DevOpsも利用できるようにしておく必要があります。
1つの記事が書けてしまう情報量なのでちょっとここでは割愛しますが、試しに使うぐらいであればDevOpsは無料で利用することができます。
まずはサンプルプロジェクトを作成してみます。
以下のコマンドでサンプルプロジェクトが作成されます。
dotnet new webapp -f net6.0
(☝の文字が小さいですね。。Noteさんのエディタの仕様のようなのでご容赦ください)
作られたプロジェクトのディレクトリ一覧が以下になります。
コマンドを叩いた直下のディレクトリで作成されるのであらかじめディレクトリを作成し、そこでコマンドを叩くようにしましょう。
更にdotnet runコマンドで実行します。
以下のような内容が出力されますので、ここで表示されたURL、https://localhost:7256をブラウザで叩いてみてください。
すると以下のような画面が表示されまして、これが上で作成したサンプルプロジェクトのWebサイトになります。
前回のVS Codeでのローカル環境におけるサンプルプロジェクト作成よりも手軽にできた印象です。
次にこのプロジェクトをGitで管理するようにします。
順番としてはローカルGitリポジトリの作成→Azure Reposリポジトリに接続という流れです。
Azure Reposリポジトリ以外にGitHubリポジトリへの接続もできるのですが、DevOpsの学習というテーマがありますので今回はAzure Reposリポジトリを利用します。
まずはDevOpsにログインして、プロジェクトを作成します。
作成出来たらDevOpsの右側のタブ(メニュー?)で「Repos」を選択すると以下のような画面になりますので真ん中の赤い枠、「Clone to your computer」のURLをコピーします。
> git remote add origin <clone URL>
> git push -u origin main
そしてMicrosoftのドキュメントに従い、上のコマンドを打つと上記のAzure Reposのリポジトリに接続(Push)されます。
確認のため、再度上のDevOpsの画面を更新すると以下のようにローカルPCのファイルがプッシュできたことがわかります。
と、ここまで普段DevOpsを使い慣れている方々にとってはなんてことはない作業だったかもしれませんが、私にとってはチームメンバーに任せていたために初めて触る内容ということもあり、結構感動モノでした。
さて、ここまで書いてきましたが、DevOpsで利用している機能としてはAzure Reposだけ、つまりはリモートのGitリポジトリにプッシュしただけです。
エンジニアの端くれである私もGitについてはそこそこ触っておりますので、利用するサービスが変わっただけでそれほど大きな学びはありません。
これからPipelinesを作成し、ビルド、デプロイという流れに入るわけですが、むしろ私的にはここからが重要になります。
まずは一旦ここで〆させていただき、次回はいよいよPipelinesについて勉強してみたいと思います。