Visual Studio Team Services の最新情報: 2017 年 9 月のまとめ


執筆者: Buck Hodges (Director of Engineering, VS Team Services)

このポストは、9 月 28 日に投稿された What’s brewing in Visual Studio Team Services: September 2017 Digest の翻訳です。

 

Visual Studio Team Services は、効率的な継続的インテグレーションと Azure へのリリース パイプラインを作成するのに最適な DevOps ツールです。今月は、Git フォークやマルチフェーズ ビルドのサポートをはじめ、作業項目ハブの改良、新しいレポート ウィジェット、NDepend 拡張機能の更新などをご紹介します。まずは、VSTS でのフォークのサポートから見てみましょう。

フォークのプレビュー

プレビュー機能

この機能は、アカウント内の Git フォークプレビュー機能 (英語) から有効化できます。

VSTS アカウント内でフォークを行い、変更内容をプッシュできるようになりました。今回初めて採用されたフォーク機能はまだ発展の段階にあり、今後は、リポジトリを異なる VSTS アカウントへフォークできるようになる予定です。

フォークとは、サーバー側に存在するリポジトリの完全なコピーで、すべてのファイル、コミット、(場合によっては) ブランチが含まれています。実験的な変更、リスクのある変更、非公開の変更などを行う場合に、元のコード ベースから分離して実装するのに便利です。変更内容の共有準備が整ったら、プル リクエストを使用して元のリポジトリに容易にプッシュできます。

フォークを使用すると、幅広いユーザーが直接コミットにアクセスすることなくリポジトリで作業することができます。ユーザーは、リポジトリの各自のフォークに作業内容をコミットします。このため、元のリポジトリに変更を採用する前に、プル リクエストで変更内容をレビューすることができます。

create fork

上流 (分岐元) のリポジトリのすべてのコンテンツを含んだ状態で開始し、フォーク作成時に、すべてのブランチを含めるか既定のブランチのみに限定するかを選択します。アクセス許可、ポリシー、ビルド定義は適用されません。新しいフォークは、元のリポジトリのクローンを空の新規リポジトリにプッシュした状態で作成され、プル リクエストが実行されるまで新規のファイル、フォルダー、ブランチはリポジトリ間で共有されません。

プル リクエストはフォークから上流へ、上流からフォークへのどちらでも作成可能ですが、フォークから上流へが一般的です。プル リクエストには、リクエスト先のリポジトリのアクセス許可、ポリシー、ビルド、作業項目が適用されます。

詳しくはフォークに関するドキュメント (英語) を参照してください。

リポジトリ内のフォルダーを Web から作成

Git および TFVC のリポジトリ内のフォルダーを Web から作成できるようになりました。これは、近々廃止される予定の Folder Management 拡張機能 (英語) に替わるものです。

コマンド バーまたはコンテキスト メニューで、[New]、[Folder] の順にクリックしてフォルダーを作成します。

New folder option

Wiki ページの詳細なリンク

Wiki で同一ページおよび異なるページのセクションへの詳細なリンクを設定できるようになりました。これは、目次を作成する場合に便利な機能です。同一ページまたは異なるページの見出しを参照するには、次の構文を使用します。

  • 同一ページ: [表示するテキスト](#セクション名)
  • 異なるページ: [表示するテキスト](/ページ名#セクション名)

詳しくはマークダウン構文のガイド (英語) を参照してください。

Wiki ページ編集中のコンテンツのプレビュー

調査データによると、多くのユーザーが Wiki ページを編集する際にページを何回もプレビューしていることが明らかになっています。1 ページを編集するのに平均 1 ~ 2 回 [Preview] をクリックしますが、マークダウンに慣れているユーザーでないと、作業に時間がかかってしまいます。これを受け、編集中にページのプレビューを参照できるようにしました。

Wiki preview

リッチ コンテンツを HTML として Wiki に貼り付け

このたび、Confluence、OneNote、SharePoint、MediaWiki などのブラウザー ベースのアプリケーションから Wiki のマークダウン エディターにリッチ テキストを貼り付けられるようになりました。複雑な表などのリッチ コンテンツを作成して Wiki に掲載する際に、HTML としてコンテンツをコピーして貼り付けることができます。

Wiki rich content as HTML

マルチフェーズ ビルド

最新の多層アプリケーションはいくつものタスク群で構成されており、さまざまな機能を持つ複数のエージェント群や、複数のプラットフォームを使用している場合があります。これまで VSTS では、このようなアプリの各機能のビルドを個別に作成する必要がありました。このたび、マルチフェーズ ビルドが可能な機能セットを新たにリリースいたします。

Multi-phase builds

この機能を使用すると、必要なタスクに応じてフェーズを構成し、各フェーズで異なる要求を指定できます。各フェーズでは、乗算器によって複数ジョブが並列処理されます。1 つのフェーズで成果物を公開し、後のフェーズでその成果物をダウンロードして使用することも可能です。

また、現在のビルド定義はすべてアップグレードされ、単一フェーズとして扱われるようになります。要求やマルチ構成などの一部の構成オプションは、各フェーズに移動されます。

今後は、以下のような機能が実装される予定です。

  • 各フェーズで異なるキューを選択する機能
  • あるフェーズで出力された変数をその後のフェーズで使用する機能
  • 複数のフェーズを並列で処理する機能 (現時点ではユーザーが定義したフェーズはすべてシーケンシャルに実行される)

Bitbucket リポジトリ用 CI ビルド

接続されている Bitbucket リポジトリから CI ビルドを実行できるようになりました。この機能を使用するには、サービス エンドポイントから Bitbucket への接続 (英語) をセットアップし、ビルド定義で [Tasks] タブから Bitbucket ソースを選択します。

get sources bitbucket repo

[Triggers] タブで CI を有効化すれば準備は完了です。

この機能は、Bitbucket リポジトリがクラウドでホストされている場合にのみ、VSTS アカウントのビルドで使用できます。

リリース テンプレート拡張機能

リリース テンプレートは、リリース プロセスの定義を開始する際の基準として使用できます。これまでも新しいテンプレートをアカウントにアップロードすることはできましたが、今回新たにリリース テンプレートを拡張機能に組み込むことができるようになりました。詳しくは GitHub リポジトリのサンプル (英語) を参照してください。

条件付きのリリース タスクとリリース フェーズ

条件付きビルド タスク (英語) と同様に、タスクやフェーズの実行を特定の条件を満たす場合のみに制限できるようになりました。これは、ロールバック シナリオのモデルを作成する場合などに便利な機能です。

組み込みの条件がニーズに適合しない場合、またはタスクやフェーズをより細かく制御したい場合に、条件をカスタマイズできます。条件は入れ子型の関数として記述します。エージェントによって、最も内側の関数から順に外側に向けて条件が評価され、ブール値で示される最終結果でタスクを実行するかどうかが決まります。

conditional release phases

リリース通知のパーソナライズ

リリース通知が VSTS の通知設定エクスペリエンスに統合され、保留中の操作 (承認や手動操作) やデプロイに関する重要な障害が自動的に通知されるようになりました。なお、これらの通知を無効化したい場合は、プロファイル メニューの [Notification] 設定で [Release Subscriptions] をオフにすると無効化されます。また、カスタム サブスクリプションを作成して新しい通知を追加することもできます。管理者は、[Team] または [Account] の [Notification] 設定からチームやグループのサブスクリプションを制御できます。

リリース定義の作成者が、承認やデプロイメントの完了確認メールを手動で送信する必要はありません。

これは、承認者、リリース作成者、環境の所有者以外の幅広いリリース関係者に向けて通知したい場合などに便利な機能です。

Release notifications

詳しくはリリース通知の管理に関するブログ記事 (英語) を参照してください。

リリース環境トリガーのブランチ フィルター

新しいリリース定義エディターでは、特定の環境における成果物の条件を指定できるようになりました。成果物の条件を指定すると、どの環境にどの成果物をデプロイするかをより細かく制御できます。たとえば、運用環境にはマスター ブランチで生成されたビルドのみをデプロイするように指定できます。このフィルターは、条件に適合させたいすべての成果物に設定する必要があります。

また、リリース定義にリンクされている各成果物に複数のフィルターを設定することもできます。その場合、成果物はすべての条件を満たす場合にのみ指定した環境にデプロイされます。

Branch filters

Gulp、Yarn、その他の認証済みフィードのサポート

最近の npm タスクは、認証済み npm フィード (Package Management または npm EnterpriseArtifactory などの外部レジストリ) とはシームレスに連動しますが、Gulp などのタスク ランナーや Yarn などの npm クライアントについては、タスクで認証済みフィードをサポートしない限りうまく連携できませんでした。今回の更新では、資格情報を .npmrc に追加する新しい npm Authenticate ビルド タスクが追加され、認証済みフィードを他のタスクでも問題なく使用できるようになります。

Auth feeds

VSTest タスクでの Web テストの実行

Visual Studio のテスト タスクを使用して CI/CD パイプラインで Web テストを実行できるようになりました。タスク アセンブリの入力時にテストを指定して、Web テストを実行できます。タスク内でテスト プランやテスト スイートを選択すると、Web テストにリンクされている「関連付けられたオートメーション」を含むあらゆるテスト ケースの作業項目を実行できます。

Test selection

Web テストの結果は、添付ファイルとして出力されます。このファイルは、ダウンロードして Visual Studio のオフライン分析で使用できます。

Test summary

この機能は Visual Studio のテスト プラットフォームの変更に付随するもので、ビルド エージェントやリリース エージェントに Visual Studio 2017 Update 4 がインストールされている必要があります。それ以前のバージョンの Visual Studio では Web テストは実行できません。

同様に、Web テストは Run Functional Test タスクでも実行できます。この機能は、Visual Studio 2017 Update 5 で提供される Test Agent の変更に付随します。

こちらのクイック スタート ガイド (英語) では、この機能を負荷テストと併用する例を紹介しています。

作業項目ハブ

プレビュー機能

この機能を使用するには、新しい作業項目ハブプレビュー機能 (英語) をプロファイルとアカウントのいずれかまたは両方で有効化する必要があります。

作業項目ハブでは、チーム プロジェクト内の関連項目のうち以下の 5 つのピボットに該当するものを表示できます。

  • 自分に割り当てられた項目 - プロジェクト内で自分に割り当てられているすべての作業項目が、更新日時の新しい順に表示されます。タイトルをクリックして開くと作業項目を更新できます。
  • フォロー中の項目 - フォロー中のすべての作業項目が表示されます。
  • 最近メンションされた項目 - メンションされたすべての作業項目のうち、最新の 30 日分が表示されます。
  • 自分のアクティビティ - 最近表示または更新したすべての作業項目が表示されます。
  • 最近作成された項目 - プロジェクト内で最近作成されたすべての作業項目が表示されます。

work item hub

1 クリックで簡単に作業項目を作成できます。

new item menu

新しい作業項目ハブの開発では、クエリ エディターから上記のようなピボットを再作成できるようにすることに重点が置かれました。既に、フォロー中の項目と自分に割り当てられた項目へのクエリがサポートされていましたが、今回はさらに @RecentMentions (最近メンションされた項目) と @MyRecentActivity (最近作成された項目) の 2 つのマクロを追加しました。これにより、過去 30 日間にメンションされた作業項目を取得するクエリや最近の操作を返すクエリを作成できるようになりました。以下がマクロの使用例です。

filters

詳しくは作業項目ハブのドキュメント (英語) を参照してください。

作業項目ルールのカスタマイズ

特定の作業項目のフィールド値を自動設定したり、特定の状態におけるフィールドの動作を定義したりする際に、管理者がルールを使用して作業項目のフィールドの挙動を自動化することで、プロジェクト チームの負担を軽減できるようになりました。以下は、ルールを使用して構成できる主なシナリオ例です。

  • 作業項目が [Active] に変更されるときに [Remaining Work] を必須フィールドにする。
  • 作業項目が [Proposed] の状態で [Original Estimate] が変更されるときに、[Original Estimate] の値を [Remaining Work] フィールドにコピーする。
  • 独自の [by/date] フィールド型のカスタマイズされた状態を追加するときに、ルールを使用して状態の遷移に応じたフィールド値を自動的に設定する。
  • 作業項目の状態が変更されるときに、カスタマイズされた [by/date] フィールド値を設定する。

以下の手順に従って、このルールの使用を開始できます。

customize menu action

  1. 作業項目のコンテキスト メニューから [Customize] を選択します。
  2. プロセスを新規作成するか、継承された既存プロセスを選択します。
  3. ルールに追加する作業項目の型を選択し、[Rules]、[New rule] の順にクリックします。

custom rules

詳しくはカスタム ルールのドキュメント (英語) を参照してください。

通知のフィールドとタグのカスタマイズ

フィールドやタグの条件をカスタマイズして、変更時だけでなく特定の値に一致したときにも通知を生成するように定義できるようになりました。UserVoice (6059328 (英語) および 2436843 (英語) を参照) を通じて皆様からご提案いただいた内容を反映したこの機能では、より堅牢な作業項目の通知セットを設定することができます。

custom work item notification settings

インラインでの配信計画への追加

新しい機能のアイデアをいつでも反映できるようにするために、新機能を配信計画に簡単に追加できるようにしました。ホバー時に表示される [New item] ボタンをクリックして名前を入力すると、必要な区分パスとイテレーション パスを持つ新機能が作成されます。

inline add on delivery plans

 

新しいクエリ エクスペリエンス

プレビュー機能

この機能を使用するには、新しいクエリ エクスペリエンスプレビュー機能 (英語) をプロファイルで有効化する必要があります。

クエリ ハブのデザインとナビゲーションが更新され、クエリの検索機能などの機能が新たに追加されました。

画面の左側のウィンドウがなくなり、クエリ タイトルのドロップダウン メニューを使用して、特定のクエリに迅速に移動できるようになりました。

New queries experience

さらに、以下の機能強化が実施されました。

  • @Follows マクロを使用して、フォロー中の作業項目を作成または編集できるようになりました。
  • @Mentions マクロを使用して、自分がメンションされた作業項目をクエリできるようになりました。
  • [Save as] でグラフを新しいクエリにコピーできるようになりました。
  • [Results] と [Editor] のコマンド バーが簡素化されました。
  • 結果グリッドのフィルター機能が拡張されました。

バーンダウン/バーンアップ ウィジェット

Analytics 拡張機能 (英語) がインストールされているアカウントで、バーンダウン ウィジェットとバーンアップ ウィジェットを使用できるようになりました。

バーンダウン ウィジェットでは、複数のチームや期間のバーンダウン チャートを表示できます。これを使用して、リリースやバグ修正をはじめ、さまざまな範囲や期間の作業のバーンダウン チャートを作成することができます。また、チーム プロジェクト全体のバーンダウン チャートも作成できます。

バーンダウン ウィジェットは、プロジェクトが期限内に完了するかどうかを判断するのに便利です。

以下のような機能が含まれています。

  • 進捗状況の割合を表示
  • 平均のバーンダウンを計算
  • ストーリー ポイントで見積もられていない項目を表示
  • プロジェクト途中で範囲が拡大した部分を追跡
  • 過去のバーンダウンと範囲の拡大傾向に基づいてプロジェクト完了日を予測

作業項目数や特定のフィールド (ストーリー ポイントなど) の合計値ごとに、あらゆる種類の作業項目のバーンダウンを表示できます。また、日次、週次、月次などの反復スケジュールのバーンダウンも表示できます。さらに、フィルター条件を追加して、表示する作業範囲を細かく調整することもできます。

これらのウィジェットは、さまざまなシナリオに対応するための詳細な構成が可能です。ぜひご自身に最適な活用方法を開拓してください。

release burndown

bug burndown

バーンアップ ウィジェットは、バーンダウン ウィジェットとほぼ同じ機能ですが、残りの作業ではなく完了した作業をプロットするものです。

stories burnup

ユーザー管理の合理化

プレビュー機能

この機能は、プロファイルとアカウントのいずれかまたはその両方の合理化されたユーザー管理プレビュー機能 (英語) から有効化できます。

効果的なユーザー管理により、管理者はプロジェクトに適したリソースを採用して、適切なアクセス許可を付与することができます。お客様からは、VSTS におけるこのプロセスの簡素化を求める声が多く寄せられました。今回一般提供されるエクスペリエンスには、この声を反映した内容が盛り込まれています。詳しくはユーザー ハブのドキュメント (英語) を参照してください。今回リリースされた変更内容を紹介します。

ワンステップでアカウントにユーザーを招待

管理者がアカウントにユーザーを追加するときに、必要な拡張機能、アクセス レベル、グループ メンバーシップを指定できるようになりました。これにより、ユーザーは即座に使用を開始することができます。また、新しい招待エクスペリエンスでは、最大で 50 人のユーザーを同時に招待することが可能です。

new account invitation

ユーザー管理に関する詳細情報

[Manage users] ページに詳細情報が表示され、ユーザー アカウント内のユーザーをひとめで確認できるようになりました。ユーザーの表に新たに追加された [Extensions] 列には、各ユーザーがアクセス可能な拡張機能が表示されます。

new user page

プロジェクトやチームへのユーザーの追加

マイクロソフトは、手軽にチームを構成し運用を開始できる管理者向けツールの開発に取り組んでいます。この取り組みの一環として、改善されたプロジェクト招待ダイアログをリリースいたします。新しいダイアログでは、チーム メンバーに加えたいユーザーを容易に追加できます。プロジェクトまたはチームの管理者は、プロジェクトのホーム ページまたはチーム メンバー ウィジェットで [Add] をクリックするだけでこのダイアログを使用できます。

project invite

認証に関するドキュメントとサンプルの向上

これまで、REST に関するドキュメントでは、REST API へのアクセス方法として PAT を重点的に紹介してきました。このたび、ドキュメントの拡張機能や統合に関する記述を更新し、特定のアプリケーション シナリオの認証に関するベスト プラクティスを掲載しました。ネイティブ クライアント アプリケーションの開発、インタラクティブな Web アプリの開発、PowerShell からの単純な API 呼び出しなどについて、VSTS での最適な認証方法の例がわかりやすく紹介されています。詳しくはこちらのドキュメント (英語) を参照してください。

今月の拡張機能: Code Quality NDepend for TFS 2017/VSTS

NDepend は、VSTS エクスペリエンスに多くの新機能を追加することができる拡張機能です。Visual Studio Marketplace でのインストール件数が 200 を超え、5 つ星評価を維持している最高レベルのコード品質ソリューションです。

  • NDepend ダッシュボード ハブ: 技術的負債の予測、コード サイズ、クオリティ ゲートの状態、ルールや問題の番号など、関連性の高いデータの要約を表示します。
  • クオリティ ゲート: ソース制御へのコミットやリリースよりも前に強制適用する必要があるコード品質仕様です。
  • ルール: 受信トレイやカスタマイズされた追加機能の作成などに関する 150 のルールを使用して、コードをベスト プラクティスと照合します。
  • 技術的な負債や問題: 業界のベスト プラクティスとのコードの照合結果に基づいて生成される情報です。問題を詳細にドリルダウンすることができます。
  • 傾向: 複数のビルドを可視化することで、改善点や技術的負債の増加を確認できます。
  • コード メトリック: 各アセンブリ、名前空間、クラス、メソッドの概要を確認できます。
  • ビルド サマリー: 各ビルド サマリーの概要を確認できます。

NDepend の新しい料金プランでは、すべてのツールをコード品質担当エンジニア向けに割安な月額料金で提供しています。

料金の詳細については、NDepend 拡張機能のページ (英語) を参照してください。

今回、この記事で紹介した以外にも多数の機能がリリースされています。詳しくは、8 月 28 日 (英語) および 9 月 15 日 (英語) のリリース ノートを参照してください。VSTS に関する計画や開発の最新情報については、ぜひ DevOps ブログ (英語) を確認してください。

ではまた!

@tfsbuck

Comments (0)

Skip to main content