Help us understand the problem. What is going on with this article?

Azure Pipelines のリリースゲート機能概要

More than 1 year has passed since last update.

※本記事は2019年1月現在の情報です

はじめに

本記事では、Azure Pipelinesのリリースゲートという機能を紹介します。VSTS時代から存在していた機能ですが、この機能について紹介している記事があまりなかったため、作成することにしました。

リリースゲートの目的

リリースゲート(release gate)は、サービスをリリースする際の条件(もしくはリリース後の条件)を、外部ツールが返した値を元に設定できる機能です。Azure Pipelinesでは、Build終了後のReleaseプロセスで、リリースゲートを設定をすることが出来ます。リリースゲートを用いることで、インシデント管理や品質評価等をアプリケーションのリリース前・後に自動的に行うことが出来ます。

※本記事では、リリース前にゲートを設置するという文脈で綴ります。

ゲートの種類

デフォルトで用意されている主に利用可能なゲートは以下4つです。

Invoke Azure Function
-> リリース前にAzure Functionに書かれたコードを実行し、設定した結果が返ってきたらリリースを実行する。
Query Azure Monitor alerts
-> Azure Monitorで設定したアラートルールの結果を元にリリースを実行する。
Invoke REST API
-> REST APIをコールし、成功レスポンスが返ってきたらリリースを実行する。
Query Work Items
-> Azure Boardsに登録されたwork itemsにクエリをかけた結果を元に、設定した値が返ってきたらリリースを実行する。

本記事では、Query Work Itemsを例に紹介をします。

リリースゲートの設定方法

ここでは、Work Itemsに登録されているバグが0でない限りリリースをしないという設定をゲートを用いて行いたいと思います。

1.ビルドが終了したところから始めます。ビルドが正常に終了したら画面右上の「Release」ボタンをクリックしてください。

2.以下の手順でクリックしていくと、ゲートを設定するところにいきます。

3.クエリはAzure BoardsのQueriesのShared Queriesに保存されているものの中から選択することが出来ます。ここでは、Critical Bugsクエリを選択します。

4.Upper thresholdでは、クエリの結果として返ってきた値の閾値の最大値を決めることができます。今回の例だと、Critical BugsがOO個以下だったらリリースさせるという設定を決めていることになります。ここでは、Work Itemsに登録されているバグが0個でなければ、リリースさせないという設定にしましょう。
(ゲートを評価する時間間隔も決めることができます。ここでは5分としています。)

5.全ての設定が終わったら、画面右上のSaveボタンをクリックして設定内容を保存しましょう。

実行・結果

1.「Create a release」ボタンをクリックし、「Create」をクリックすると手動でのデプロイを開始することが出来ます。
(今回はAzure Web Appへのデプロイを設定しています。設定方法についてはこの記事では割愛します。)

2.Critical Bugsのクエリを実行すると、1つbugが残っています。

3.そのため、リリースのプロセスが止まっていることが分かります。

さいごに

本記事ではQuery Work Itemsの結果をリリースの条件として設定する手順を紹介しました。VSTSから存在していた機能なので、あまり新鮮味を感じない方もいるかと思いますが、Azure Pipelinesとして提供されてから紹介されている方がいらっしゃらなかったので、今回このような形でまとめをしました。Azure Pipelinesのリリースゲート機能には今回紹介した以外のもの(FunctionsやREST APIなど)もありますので、リリース条件を決めて自動で評価をしたい際には非常に便利な機能かと思います。

※間違っている点、補足コメント等あったら是非お願いします。自習ノートとしてまとめているものですので・・

taminami
日頃の勉強のアウトプットを目的として記事を書いています。 記事は個人の見解に基づいた内容であり、所属する会社の公式見解ではありません。また、記事中の情報はいかなる保証を与えるものでもありません。正式な情報は、各製品の販売元にご確認ください。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away