はじめに
これはVisual Studio Team Servicesアドベントカレンダー7日目の記事です。今回はSprint 125で追加された新機能、YAMLビルドを紹介します。
個人的な不満
VSTSのGUIビルド定義は便利なのですが、ビルド定義を変更しても、作業項目が関連付けられないが不満でした。タスクにビルド/リリース定義を変更して、トラッキングしたいんですよね。一度フィードバックしたことはあるのですが、そのときも「要る派」と「別に要らないよ」派にわかれました。
今回追加されたYAMLであれば、YAMLファイルのコミット時に作業項目を関連付けられるので、ビルド定義の変更と作業のトラッキングができそうです。ではやってみましょう。
まだプレビュー機能なので、preview featureで有効にしてください。
YAMLでビルド定義を作成
現在のVSTSでは複数のレポジトリを対象にできないので、ビルド対象のレポジトリにYAMLファイルを作成します。
慣例的にymlという拡張子で、わかりやすい名前を指定します。
こんな風にもりもり書きます。YAMLの書式はWikipediaも参考にしてください。
YAMLができたらビルド定義を作成します。
ビルド定義作成
ビルド定義作成からYAMLを選択してApplyをクリックします。
YAMLではまだVSTSとGitHubしかサポートされていないので注意してください。対象のソースレポジトリを選択します。
ProcessのYAML pathから対象レポジトリ内のYAMLファイルを指定します。
ビルド定義名と、Agent queueを選択します。実はAgent Queueに関してはYAML内に記述できます。
注意事項として、YAMLではほかのテンプレートのようにVariableが事前に定義されていないので、ASP.NET (Core)のビルドであれば、BuildConfigurationやBuildPlatformという値を定義しておかないと失敗します。
忘れやすいので注意してください。
ビルドを実行します。
こんな風にビルドが実行されます。
制限事項
YAMLビルド良さそうなのですが、現状ではまだまだ制限事項が多いです。
- VSTSとGitHubのみサポート
- TFVC未サポート
- ローカルテストできない
- ビルド結果のバッジが出ない
- Webインターフェースで一時停止ができない
- ビルド時に自動的に作業項目のリンクがされない(これは痛い)
- ビルド失敗時作業項目が作られない
- OAuth tokenが使えない
- ビルドジョブの認証が使えない
- Gitのサブモジュールなどが未対応
今後に期待。
YAML定義のカンニング
YAML定義一から覚えるのめんどくせーとは思います。そんなあなたのためにVSTSが教えてくれます。
一度GUIでビルド定義を作って、View YAMLをクリックします。
こんな風にできてます!ここからコピペすると、改行コードの都合で余計な改行が入ることがあるので、気を付けてください。
まとめ
YAMLビルドがGUIと同程度になれば、ビルド定義を完全にコードで管理することも、自動的に生成することもできるでしょう。今後が楽しみです。