おーみんブログ

C#, ASP.NET Core, Unityが大好きです。

【Azure DevOps】Azure BoardsとAzure Reposを用いて課題立て, ソース管理をやってみた!

はじめに

次に参画予定のお客様先ではソースコード管理にAzure DevOpsを使用していると聞いたので復習がてら触ってみました! 以前の現場ではBacklogを用いており、課題を立てて、Backlogのリモートリポジトリとその課題を関連付けて管理するという手法だったのでAzureDevOpsでも同じようにその流れをやってみようと思います。

Azure DevOpsとは

Azure DevOpsとは、ソフトウェアのチーム開発を手助けするためにMicrosoftが提供しているサービスです。 一言でAzure DevOpsと言っても、その中には多数のサービスがあります。 以下にそれぞれのサービスと説明を記載します。(説明はAzure DevOps の概要を引用させていただいています。)

Azure Pipelines

あらゆる言語、プラットフォーム、クラウドに対応した CI/CD 機能。GitHub や任意の Git リポジトリに接続し、継続的にデプロイすることができます。

Azure Boards

かんばんボード、バックログ、チームのダッシュボード、カスタム レポートを使用した強力な作業追跡。

Azure Artifacts

パブリックおよびプライベートのソースからの、Maven、npm、NuGet パッケージのフィード。

Azure Repos

クラウドでホストされる容量無制限のプロジェクト用プライベート Git リポジトリ。pull request や高度なファイル管理などを共同で実施できます。

Azure Test Plans

オールインワンの計画された探索的テスト ソリューション。

今回使用するのは上記のうちのAzure ReposAzure Boardsです(プロジェクトのテンプレートはBasicとしています)。 流れとしてはAzure Boardsで課題を立て、Azure Reposにその課題に紐づくソースをプッシュしていく感じにしたいと思います。

課題を立てる

それでは仮のプロジェクトへ課題を立てていきたいと思います。

Epic, Issue, Taskの作成

今回はプロセスの種類をBasicで作っているのでWork Item一覧にはEpic,Issue,Taskの3種類が表示されます。 Azure_Boards15.png

Epic,Issue,Taskは階層構造になっており、それぞれ大項目, 中項目, 小項目という感じのようです。

docs.microsoft.com

Epic

上記のNew Work ItemからEpicを選択し、課題を作成します。 タイトル、担当者、詳細欄、スケジュール等々、色々記載する箇所があるので任意の値を入れます。 今回は以下のようにしました。 Azure_Boards1.png

Issue

先ほど添付したNew Work ItemからIssueを選択し、課題を作成します。 こちらもEpic同様、色々記載する箇所があるので任意の値を入れます。 先ほどと異なる部分で右下にRelated Workという箇所があるのですが、そちらへ親課題を設定します。 Azure_Boards3.png

Task

先ほど添付したNew Work ItemからTaskを選択し、課題を作成します。 こちらもIssue同様、色々記載する箇所があるので任意の値を入れます。 Related WorkにはIssueで作成した課題をセットします。

以上で、課題を作成することができました。 一覧へ戻ると以下のように課題が表示されています。 Azure_Boards5.png

サイドメニューからBoardsを選択するとカンバン形式でタスクを見ることも出来るようです。 Azure_Boards16.png

ソースコード管理を行う

続いてはソースコード管理を行っていきます。

ソースのPushまで

サイドメニューからRepos>Filesを選択します。 ソースコードをクローンする際は右上のCloneを選択してリポジトリ先を取得します。 Azure_Boards17.png Azure_Boards18.png

Cloneした後はブランチを切ってローカルで作業を行い、再度リモートリポジトリへプッシュします。 プッシュ後は以下の赤枠部分のようにプッシュした情報が記載されているかと思います。 Azure_Boards7.png

プルリクエス

ソースコードをPushした後はプルリクエストを作成します。 サイドメニューのPull requestsをクリックし、プルリクエストを作成します。 任意のタイトルや説明文を記載し、Work items to linkへAzure Boardsで作成した課題を紐づけます。 今回はEpic,Issue,Taskそれぞれ1つずつのため全て入れていますが、基本的にはTaskごとにブランチを切ると思うので業務ではTaskのみを入れる形になりそうです。 Azure_Boards8.png

プルリクエストを出した後はレビューの方がマージ作業を行います(今回は私一人で行っているのでレビューも私がやっています)。 問題がなさそうでしたら右上のCompleteボタンをクリックし、 Azure_Boards9.png

Complete mergeボタンをクリックします。 (この際に、関連付いた課題のClosedとブランチの削除も同時に行うようoptionにチェックを入れておきます) Azure_Boards10.png

これにてマージが完了しました。masterブランチのCommitsに先ほどプルリクエストを出した内容が入っていることが分かります。 Azure_Boards11.png

課題も完了し、ステータスがDoneとなっていることが分かります。 Azure_Boards12.png

おわりに

今回はAzure DevOpsの勉強としてAzure BoardsとAzure Reposを扱ってみました。 今後は触っていく機会も増えると思うので、しっかり使いこなしていこうと思います!