kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Visual Studio OnlineのWebでのリリース承認機能提供開始

出す出すといいつつ、ずうっと出なかったVisual Studio Onlineの承認フローのWebインターフェース版がひっそりと公開され始めたようです。まだ公式ブログも出ていないので、おそらくconnect();で正式告知なのでしょう。

簡単に触ってみたので、ご紹介。

ステップ バイ ステップ

f:id:kkamegawa:20151117212042p:plain

RELEASEタブが追加されていると思います。+をクリックするとテンプレート画面が表示されます。

f:id:kkamegawa:20151117212043p:plain

今のところクラウドサービスとWeb Appsと空っぽのテンプレートのみ公開されています。そのうち増えていくんでしょう。ビルドエージェントタスクは恐ろしい勢いで変わっているので、それに倣って増えていくんでしょうか。

f:id:kkamegawa:20151117212045p:plain

Web Appの承認フローを追加してみます。基本的にビルドとあまり変わらないので、特に詳細な解説はしません。

f:id:kkamegawa:20151117212046p:plain

黄色のマークのところにあるLink a build artifactsをクリックするとこの承認フローを実行するイベントを指定することができます。通常はbuildを指定すればいいでしょう。

ほかにもJenkinsや外部ビルドエージェントといったイベントを指定することができます。

f:id:kkamegawa:20151117212047p:plain

こんな風にArtifactsに登録されます。

f:id:kkamegawa:20151117212048p:plain

初期状態では自動的に承認フローが実行されます。承認ワークフローを設定しましょう。default environmentの...をクリックすると、メニューが表示されます。

f:id:kkamegawa:20151117212049p:plain

assign approversをクリックすると承認者の設定画面が表示されます。

f:id:kkamegawa:20151117212050p:plain

ここでは私の別のアカウントを指定していますが、グループを指定することもできます。

f:id:kkamegawa:20151117212051p:plain

同様に同じメニューにあるAgent Optionをクリックすると、エージェントのオプションを指定します。これはビルドエージェントが指定バージョン以上であるかどうかという条件判定に使用します。新ビルドと同じですね。

ビルドをリンクしたので、リンクしたビルドをキューに入れると、自動的にリリースワークフローが実行されます。

f:id:kkamegawa:20151117212052p:plain

こんな感じで開始中であることが分かります。

f:id:kkamegawa:20151117212053p:plain

概要を表示すると、こんな風にどのビルド、どのリリースが動いているかということが分かります。

f:id:kkamegawa:20151117212054p:plain

承認者を指定したので、ワークフローが開始されるタイミングで停止しています。

f:id:kkamegawa:20151117212055p:plain

承認者のところにはこんなメールが送られてきます。メール中のリンクをクリックするとVS Onlineのポータルが表示され、承認画面になります。

f:id:kkamegawa:20151117212056p:plain

上の黄色背景のところをクリックすると承認のダイアログが表示されます。

f:id:kkamegawa:20151117212057p:plain

承認のコメントを記入して、Approveをクリックするとワークフローが通り、リリース作業が開始されます。

f:id:kkamegawa:20151117212058p:plain

…しかし、ビルドうまくなかったようで、リリースに失敗してしまいました(^^;。

f:id:kkamegawa:20151117212059p:plain

こんな風に概要のページが表示され、さらに責任者と承認者のところに同様のメールが通知されます。

作ってみての感想

この承認フローは好きなだけ?作ることができるようで、リリース単位でいろんなパターンを用意することができます。今はプロダクションのみという形で作っていますが、ステージング用のリリース、検証用のリリースは自動、ということも可能です。検証用だとこんなの作らずに、そのまま新ビルドからデプロイしてもいいと思いますが。

ただ、一つ言えるのはRELEASE機能を使うのであれば新ビルドからの直接デプロイは基本的に無効にしておかないと、大変なことになると思います。

まだ全部見ていませんが、ビルド定義、リリース機能のセキュリティの設計、ビルド定義の作成ユーザーへのルール徹底といったことをやっておかないと結構厳しいんじゃないかな。まだ最初のリリースなのであまりあれもないとか言いたくはないけど、この辺の整合性をとるための仕掛けがあると、よりよくなるんじゃないかと思いました。