kkamegawa's weblog

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

Visual Studio Team Servicesで外部サービスを呼び出す(30日目 - 最終回)

はじめに

アドベントカレンダーの枠からはみ出して続けていたVSTSの機能全紹介もここでいったん区切りです(1/5の新機能が出ちゃったし)。VSTSは基本オールインワンですが、Web hookやREST APIを使って外部サービスを使用することもできます。

外部サービス呼び出しはチームプロジェクトごとの設定になります。

Azure Resource Manager Endpoint

やはり同じ会社のサービスということもあり、Azureはいろいろ優遇されています。

f:id:kkamegawa:20170104070633p:plain

今強化やデプロイは基本Azure Resource Managerのほうが多いので、こちらを選ぶと…

f:id:kkamegawa:20170104070634p:plain

こんな風に接続名とサブスクリプションを選ぶだけです。以前はMSアカウントでSPNを作る必要があり、はっきり言って、「これユーザーにやらせるのか」と思っていたのですが、便利になりました。

f:id:kkamegawa:20170104070635p:plain

Azure Classicで接続sるう場合…面倒ですね。通常はCertificate Basedを選んでAzureポータルから管理証明書をダウンロードするのですが面倒です。

GitHubへの接続

f:id:kkamegawa:20170104070636p:plain

GitHubでホストされているソースをVSTSでビルド、Release Managementで使用する場合に必要です。ここで設定しなくても、ビルドタスクの中でもできます。PATを使うか、ここでOAuthの認証をするか好きな方法が選択できます。どちらを使ってもGitHub側で無効にできます。

Jenkinsへの接続

f:id:kkamegawa:20170104070638p:plain

Jenkins連携も強化されてます。Jenkinsを選択すると、サーバURLとユーザー、パスワードを指定します。

SSHでの接続

f:id:kkamegawa:20170104070639p:plain

SSHを使用して特定のホストに接続します。LinuxのWebサーバなどへVSTSからデプロイする場合にこの接続を使います。

Subversion

f:id:kkamegawa:20170104070640p:plain

Git(Hub)同様に、外部ソースコードリポジトリにSubversionをサポートしています…一部のエンタープライズ向けにはいいんじゃないでしょうかね。

その他一般的な外部サービス

f:id:kkamegawa:20170104070637p:plain

サーバのURLとユーザー、PAT/パスワードで接続する外部サービスです。VSTSの拡張機能で提供されていないような外部サービス(Chatworkとかかな…)を使う場合使用します。

SonarQubeへの接続

Continuous Code Quality | SonarQube

最後は静的解析では有名なSonarQubeの紹介です。品質管理はSonarQubeに任せることにしたようで、最近強化が続けられています。有償版と無償版、さらにはLTSも提供されていますが、SonarQubeの強化と同期をとっているようなので、できればLTSではない、Currentを使ってください。ほぼ毎月のように更新されています。

つい先日公開された6.2でUIが結構変わってびっくりしています(6.0で変えなかったのに)。

f:id:kkamegawa:20170110063009p:plain

サービス一覧からSonarQubeを選択します。アクセスするユーザーでTokenを生成してください。Azureの仮想マシンで作る場合、AzureにSQL Serverを作ってもいいのですが、SQL Databaseもサポートされているので、SQL DatabaseにS0で作っています。遅くなったなと思ったら、SQL DatabaseをS1とかにすればいいでしょう。

f:id:kkamegawa:20170111055821p:plain

SonarQubeで解析する場合、ビルドタスクにPrepare the SonarQube analysisを追加します。注意点として、先日MSが提供するビルドタスクからSonarSourceが作ったビルドタスクに移行することになりました。

[DEPRECATED]がついているタスクは使わないでください。

f:id:kkamegawa:20170111055823p:plain

ビルドすると、こんな風に最後にDetailed SonarQube reportと表示されています。クリックすると、SonarQubeを呼び出して…

f:id:kkamegawa:20170111055822p:plain

こんな風にSonarQube側でプロジェクトが開かれます。

まとめ

VSTSの外部サービス連携は以前のService Hookと合わせて使えばいろいろ使えると思います。いいとこどりしてみてください。

ちょっと駆け足でしたが、VSTSの全機能を大体紹介したつもりです。Application Insightsとかも紹介したいなと思ったのですが…ほかにも漏れているところがあれば、また紹介します。では今年のアドベントカレンダーは…疲れたから別のやつにします(^^;。

実はもう一つだけネタがあったのですが、ちょっと間に合わなかったのでまた後で。