このブログをご覧のみなさん、こんにちは。

ここ最近、Visual Studio Online(以下 VSO と記載) についてよく質問されるので、以下にまとめてみました。

ここに書いていないもので、コスパの質問もよくされるのですが、あまりにも生々しい話なのでここには記載していません。簡単に説明すると、VSO への質問ではなく算数の問題です。私の回答後、質問された方は全員コスパについての疑問は解消し、納得されていたことだけは記させていただきます。

Q. VSO は先日Cross Platform に完全対応したとありましたが、.NET 以外のビルドをさせると失敗してしまいます。

A. VSO にはデフォルトでビルドマシンが組まれています。 ビルドキューを登録する際にプルダウンに表示される Hosted がデフォルトのビルドマシンになります。 このビルドマシンは Windows のため、Mac がビルドに必要な Xcode や Linux 系の bash は実行できません。 Xcode のビルド定義にも “Build and test an Xcode workspace. This template requires a Mac OS build agent.”とあるように、Xcode のビルド定義に Mac OS のビルドエージェントを準備するようにと表示されています。Xcode のビルドエージェントのセットアップ手順は以下を参考にしてください。 [Visual Studio OnlineとXcodeを連携する方法 Xcode側準備編 #tfsug #xcode][3] この手順は他の言語のビルドエージェントのセットアップ手順にもなっています。

Q. ビルドした成果物を VSO にアップしたいです。

A. VSO にアップするにはビルドステップの Publish Build Artifacts を使えば実現できます。 Copy Root: [アップしたいファイルのRoot], Contents: [アップしたいファイル, *など正規表現が使用可能], Artifacts Name: drop, Artifact Type: Server を選択してください。 入力欄の右にある i マークにマウスを合わせるとより詳細な説明が表示されるので参考にしてください。

Q. Chef や Docker などの現時点でビルドステップに存在しないものを実行したいときはどうすればいいですか?

A. Batch Scriptを使えば実現できます。 ビルドマシンで実行するスクリプトを記述したファイルをこのビルドステップで実行してください。 実行するコマンドはビルドマシンに合わせる必要があります。 Windows に対して bashLinux系 に対して PowerShell といったコマンドは実行できないので注意してください。