はじめに
これはVisual Studio Team Services アドベントカレンダー13日目の記事です。
ビルドやリリースで使うタスクはどうしても長くなります。また、ブランチやfork先のレポジトリでビルド定義を一から作るのも大変です。そんなときのためにTask Groupsという機能があります。ちょっと使ってみましょう。
タスクグループを定義する
タスクグループの定義は簡単です。既存のビルド定義やリリース定義から作っていきます。
このようにグループにしたいタスクを選択して、右クリック「Create Task group」をクリックします。
ただし、注意点として、標準のタスクはプロセスごとに共通の値(*/.csproj等の値)を定義しています。リンク機能といいますが、これを指定していると、タスクグループにできません。
このように各タスクで共通の値として設定されている項目にある、unlinkをクリックしておきます。unlink allで全部削除されます。
リンクが解除されると、今までタスクごとに編集できなかったProject(S)の項目が編集できるようになっているのがわかります。
タスクグループの名前でわかりやすいものをつけましょう。ビルドタスク一覧に作者の名前と一緒に表示されます。また参照しているvariableの既定の設定も行います。ここではBuildConfiguration(Release/Debugなど)の指定ができます。
タスクグループをどのカテゴリーに追加するかという選択です。buildを選んだら、タスク追加時に選択する"build"カテゴリーに表示されます。Createボタンを押すと、現在のビルド定義の該当タスクがタスクグループでおきかえられます。
こんな感じですね。Build configurationもグループの共通設定で可能になっています。
Task groups定義の管理
作ったタスクグループはTask groupsハブで管理できます。
グループの名前、詳細説明(description)、定義のカテゴリーなど作るときに指定した項目が指定できます。
一度作ったタスクグループの内容を変更したい、ということはよくあります。ここでタスクの追加や削除、使用しているタスクのバージョンアップといったことができます。ピンクの旗アイコンがタスクの横についていますが、これがタスクのバージョンアップが可能というお知らせです。ちなみに選択するとpreview版のver2が選択できます。
新しくビルドタスクの追加もできます。
タスクグループをバージョンアップするのはいいのですが、複数のビルド定義で参照されていると影響が…ということもあると思います。そういう時はReferencesから使用しているビルドやリリース定義の参照ができます。
とはいえ、いきなり全部のタスクをアップデートするのは怖いものです。そういうときのために、プレビュー版として公開する機能も用意されています。
新しく同じタスクグループを参照するビルド定義を追加すると、こんなかんじでふえます。
新しいビルド定義で参照する
作ったからには当然新しいビルド定義で参照もできます。
buildカテゴリーにタスクグループを作っているので、buid配下で探すと、作ったdotnet buildタスクがありますね。
追加するとこんな感じです。
プレビュータスクで評価する
前述したように、いきなりビルドタスクを更新されると困ることもあります。そのような場合のために、プレビュー版を作って事前に評価してもらう仕組みがあります。
ビルドタスクの一部を新しいバージョンに更新します。Saveではなく、Save draftで保存して、Publishをクリックします。
Publishを実行すると、Publish as previewというチェックボックスがあるので、チェックすると、プレビュー版のタスクグループとして登録されます。
ビルド定義でバージョンのところに2.*(preview)という選択肢が増えてますね。これでビルドできるかフィードバックをもらって、OKであれば、タスクグループを更新して、全体に反映させます。
まとめ
ビルドやリリースのタスクをグループ化できるTask groups大きな環境になると便利なので、使ってみてください