以前はAppVeyor でやっていたのですが、仕様変更で動かなくなってから何となく手動でやってしまっていたのをVSTSに移行してみました。対象はChatwork.Api です。
AppVeyorと違ってビルド結果だけをPublicに見せるという設定ができないっぽい*1ので見劣りはするんですが、せっかくなので紹介します。
まずはPrivate Nugetをホスティングするときにも入れた、Package Manager拡張をインストールしておきます。
次にNugetにPushするときのApiKeyを格納するために、Servicesにエンドポイントを追加しておきます。UserNameは任意の値で構わないので、PasswordのところにApiKeyを入力して保存しておきます。
ビルドフローはこんな感じになります。
Nuget InstallerとMSBuildはslnをまとめてビルドするなら、Visual Studio Buildにまとめることができます。バージョン番号とかは上げた状態のものをコミットしておいて、手動でビルドジョブを実行するようにしています*2。Nuget packagerはnuspecを階層的に検索してパッケージングしています。このとき既定ではプロジェクトのルートディレクトリに作成されます。Nuget Publisherではルートディレクトリ直下のパッケージのみを指定しています。これは、Nugetで依存ライブラリを参照しているので、packagesフォルダの中にDLされるnupkgファイルを対象外にするためです*3。
ビルドステータスを表示するバッジですが、Optionsページにオプションがあります。Show Urlを押すとURLが表示されるので、適当なところに貼っておきましょう。
まだまだAppVeyorの方が高機能な感じですが、VSTSでもできるようになりました、という紹介でした。