Skip to content

Instantly share code, notes, and snippets.

@kkamegawa
Created September 17, 2017 07:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kkamegawa/85d4fb2cdb5bec4eb57a497d5a58572f to your computer and use it in GitHub Desktop.
Save kkamegawa/85d4fb2cdb5bec4eb57a497d5a58572f to your computer and use it in GitHub Desktop.

複数フェーズのビルド - VSTS 123スプリントの更新

Visual Studio Team Services(VSTS)のSprint 123アップデートでは、複数の種類のビルド定義を一つのビルドに内に格納し、一連のビルドとして構築するためのマルチフェーズビルドの提供開始を発表しています。 以下のマルチフェーズビルドの詳細を読んでください。
その他の重要な機能のハイライトの一部は次のとおりです。

注意事項
ここで紹介している新機能は今後三週間にわたって順次展開されます。

Work

Tip
New Queries Experience はあなたのプロファイルでpreview feature を有効にしてください。

Queriesハブには、新しいルックアンドフィール、ナビゲーションの変更、クエリーを検索する機能などの新機能があります。最初に左ペインが削除されていることに気づくでしょう。 お気に入りのクエリにすばやく移動するには、クエリタイトルのプルダウンを使用します。

New queries experience

または、新しいディレクトリページのすべての個人クエリと共有クエリを参照し、自分とチームにとって重要なものを好きにしてください。 Queriesのパンくずリストでクエリーディレクトリにアクセスできます。

New queries directory pages

ディレクトリページでは、次のような各クエリの新しいメタデータが強調表示されます。

  • クエリのタイプ
  • 階層内のパス
  • そのクエリを最後に修正した人
  • 最後に変更されたタイミング

このページには、気になるクエリをすばやく検索できるフィルタバーもあります。

Find queries filter

これに加えて、さらに以下の改善を行いました:

  • @Followsマクロを使用して、フォローしている作業項目クエリを作成および編集する
  • @Mentionsマクロで言及された作業項目を照会する
  • Save asでチャートを新しいクエリにコピーする
  • ResultsEditor用の簡略化されたコマンドバー
  • 結果グリッドでのフィルタ機能の拡張

Keyboard shortcuts in the work item form

キーボードショートカットを使用して、作業項目を自分自身に割り当て(Alt + i)、ディスカッションに移動(Ctrl + Alt + d)し、作業項目にクイックリンクをコピー(Shift + Alt + c)します。 新しいショートカットの完全なリストについては、作業項目フォームを開いた状態で「?」と入力するか、下の表を参照してください。

Keyboard shortcuts in work item form

Contextual actions in the Work Items hub

Work Itemsハブ内で、アイテムの選択に基づいて変化するコンテキストアクションを使用できるようになりました。 Queriesで選択した項目をクリップボード(Ctrl + C)、電子メール、削除(Delete)、および開くで開くことができるようになりました。 または、ShiftキーまたはCtrlキーを使用して、一度に複数項目の選択もできます。

Keyboard shortcuts in work item form

Keyboard shortcuts in work item form

HTML tags stripped in work item grids

お客様からのフィードバックにより、Web、Excel、およびVisual Studio IDEの作業項目のクエリ結果ビューで複数行のテキストフィールドの動作を更新し、HTML書式を削除しました。クエリ結果の列に追加すると、複数行のテキストフィールドがプレーンテキストとして表示されるようになりました。この説明にHTMLが含まれている機能の例を示します。

Strip HTML tags

以前のクエリ結果では、時々次のような結果が表示されました。<span style="border: 1px solid #d3d6db;background-color: #f9f9f9;>"<div><b><u>Customer Value</u>...

Filtering to the Process and Fields pages in the Process admin

Processの管理ページのプロセスとフィールドのリストはかなり長くなる可能性があります。 探しているプロセスやフィールドをすばやく見つけるために、これらのページにテキストフィルタを追加しました。

Process admin filtering

Code

Create a folder in a repository using web

GitとTFVCのリポジトリにWeb経由でフォルダを作成できるようになりました。これにより、フォルダ管理拡張機能が置き換えられ、Folder Management extension拡張機能は廃止予定になります。フォルダを作成するには、コマンドバーまたはコンテキストメニューのNewFolderをクリックします。

New folder option

TFVCの場合、フォルダ名を指定してチェックインします。Gitでは、空のフォルダが許可されていないので、ファイル名を指定し、オプションでファイルを編集してからコミットする必要があります。

さらにGitでは、New fileダイアログが拡張され、スラッシュを指定すると、サブフォルダが作成できます。

New file dialog

Get a permanent link to code

ファイルを表示すると、通常、選択したブランチの先端にバージョンが表示されます。ファイルのバージョンを知るTipsとして、新しいコミットによって変更されます。このビューからリンクをコピーすると、URLにコミットSHAではなくブランチ名のみが含まれるため、リンクが古くなる可能性があります。Filesビューに簡単に切り替えて、URLをブランチではなくコミットを参照するように変更できるようになりました。 "y"キーを押すと、ビューは現在のブランチの最新のコミットに切り替わります。パーマネントリンクをコピーすることができます。

Filter text highlighting

ナビゲーションペインでフィルタリングすると、Wikiのページ階層全体が表示されます。たとえば、「foobar」というタイトルのページをフィルタリングすると、フィルタを適用したナビゲーションペインにすべての親ページも表示されます。 これは、「foobar」というタイトルのないページがフィルタリングされた結果セットに表示される理由を混乱させる可能性があります。Wikiのコンテンツをフィルタリングすると、検索対象のテキストが強調表示され、フィルタリングされたタイトルと表示されていないタイトルが明確に表示されます。

Filter text highlighting in Wiki

すべてのコードナビゲーションペインで同様の挙動になっています。たとえば、ファイルナビゲーションペインでは、pull request、コミット、変更セット、シェルフセットがあります。

Filter text highlighting in PR

Wikiでページ内のセクションへのディープリンクをサポートしているので、目次を作成する時本当に便利です。 次の構文を使用して、同じページまたは別のページの見出しを参照できます。

詳細については、documentation for Markdown syntax guidanceを参照してください。

Move page in Wiki using keyboard

以前のWikiでは、ユーザーはキーボードを使用してページの並べ替えや親ページの再作成を行うことができず、これはキーボード操作で完結させたいユーザーに好まれていませんでした。今回の強化で、Ctrl + UpまたはCtrl + Downコマンドを使用してページを並べ替えることができます。また、ページのコンテキストメニューでMove pageをクリックし、移動させる新しい親ページを選択してページの親を再設定することもできます。

Move Wiki page

Move Wiki page dialog

データから、ユーザーがほとんど常に、コンテンツの編集中にwikiページを複数回Previewすることがわかってます。各ページの編集では、平均でPreviewを1〜2回クリックしています。これにより、作業が遅くなってしまうため、新しいmarkdownファイルの編集時時間がかかることがあるため、快適な編集ができなくなっていました。そこで、編集中にページのプレビューを表示するようにしました。

Wiki preview

Confluence、OneNote、SharePoint、mediawikiなどのブラウザベースのアプリケーションから、リッチテキストをWikiのマークダウンエディタに貼り付けることができます。これは、複雑なテーブルなどの豊富なコンテンツを作成し、Wikiに表示したい人にとって特に便利です。コンテンツをコピーしてHTMLとして貼り付けるだけです。

Wiki rich content as HTML

Build

現代の複数のフェーズを持ったアプリケーションでは、さまざまな機能を備えたさまざまなエージェントのセットで、時には異なるプラットフォームでさえ、さまざまなタスクセットで構築する必要があります。今までVSTSでは、これらの種類のアプリのそれぞれの側面に別々のビルドを作成する必要がありました。しかし、今日からマルチフェーズビルドの一般提供を公開します。

Multi-phase builds

必要なタスクを各フェーズを構成し、フェーズごとに異なるエージェントキューを指定できます。各フェーズにおいて、並列実行を指定することにより、複数のジョブを並列に実行できます。1つのフェーズで成果物を公開してから、それらの成果物をダウンロードして後続のフェーズで使用することができます。

現在可能なシナリオには、次のものがあります。

  1. 最初のフェーズでビルドエージェントプールでアプリケーションをコンパイルし、2番目のフェーズでテストエージェントプールでテストを実行します。
  2. Windowsエージェントの最初のフェーズでASP.NET Coreバックエンドをコンパイルし、2番目のフェーズでmacOSエージェントでアプリケーションのモバイルフロントエンドをコンパイルします。

この機能があなたのアカウントで使用可能になると、あなたの現在のビルド定義がすべて単一のフェーズにアップグレードされていることがわかります。要求やマルチ構成などの構成オプションの一部は、各フェーズに移行されます。ビルド定義内のすべてのフェーズのデフォルトキューを引き続き選択し、オプションで各フェーズでその選択肢を上書きすることができます。

私たちはまだいくつかの機能に取り組んでいます:

  • 次のフェーズで出力変数を1つのフェーズから提供する機能。
  • フェーズを並行して実行する能力 (今のところ、定義するすべてのフェーズは順番に実行されます)。

Release

リリース通知は、VSTS通知設定エクスペリエンスと統合されました。 これらの管理リリースでは、保留中のアクション(承認または手動介入)と重要なデプロイメントの失敗が自動的に通知されるようになりました。これらの通知をオフにするには、プロファイルメニューのNotificationに移動し、Release Subscriptionsをオフにします。 カスタムサブスクリプションを作成することで、追加の通知にサブスクライブすることもできます。管理者は、TeamAccount設定のNotification設定から、チームやグループの購読を制御できます。

リリース定義者は、手動で承認と展開の完了を電子メールで送信する必要がなくなりました。

これは、リリースに複数のステークホルダーを持つ大規模なアカウント、および承認される可能性のある承認者、リリース作成者、環境所有者以外が多くいる大規模なアカウントに特に便利です。

Release notifications

詳細については、post for managing release notificationsを参照してください。

Manage variables using the List and Grid views in the new release definition editor

ListビューとGridビューの2つのビューを使用して、すべてのリリースと環境変数を簡単に管理できるようになりました。Listビューを使用してリリースまたは環境変数をすばやく追加し、Gridビューを使用してスコープ間で変数を比較および編集します。 さらに、フィルタとキーワード検索を使用して、両方のビューで動作する一連の変数を管理できます。

List view

Grid view

Branch filters in environment triggers

新しいリリース定義エディタで、特定の環境の成果物条件を指定できるようになりました。 これらの成果物生成条件を使用すると、特定の環境にどのアーティファクトを展開するかをより細かく制御できます。たとえば、実稼働環境では、masterブランチからのみ生成されたビルドを展開させたい場合に有効です。このフィルターは、基準を満たす必要があると思われるすべての成果物に対して設定する必要があります。

また、リリース定義にリンクされている成果物ごとに複数のフィルタを追加することもできます。 すべての成果物条件がうまく満たされている場合にのみ、この環境に配備されます。

Branch filters

Improved Deployment Groups UI

BuildReleaseのエクスペリエンスを刷新しながら、デプロイメントグループのページを再創造して、よりクリーンで直感的なエクスペリエンスを実現しました。開始ページから、展開グループ内のターゲットの正常性が確認できます。また、個々の展開グループのセキュリティを管理したり、展開グループ全体の既定のアクセス許可を設定することもできます。

Deployment groups UI

デプロイメントグループ内のターゲットの場合、要約、最近の展開、およびターゲットの機能を表示できます。ターゲット上にタグを設定し、各ターゲットで何が実行されるかを制御できます。今後のリリースで、展開グループのフィルタサポートを追加する予定です。

Deployment groups UI tags

Test

Visual Studioのテストタスクを使用して、WebテストをCI / CDパイプラインで実行できるようになりました。Webtestsは、タスクアセンブリ入力で実行するテストを指定することで実行できます。Webtestにリンクされた”associated automation”を持つテストケースのワークアイテムは、タスク内のテスト計画/テストスイートを選択することによって実行することもできます。

Test selection

Webtestの結果は、テスト結果の添付ファイルとして利用できます。 これは、Visual Studioでオフラインで分析するためにダウンロードできます。

Test summary

この機能はVisual Studioテストプラットフォームの変更に依存し、Visual Studio 2017 Update 4をビルド/リリースエージェントにインストールする必要があります。 WebTestは、以前のバージョンのVisual Studioを使用して実行することはできません。

同様に、WebテストはRun Functional Testタスクを使用して実行できます。 この機能は、Visual Studio 2017 Update 5で使用できるTest Agentの変更に依存します。
負荷テストと一緒に使用する方法の例として、Load test your app in the cloud using Visual Studio and VSTS quickstartを参照してください。

Chart widget for test plans and test suites

以前は、Testハブのテスト計画とスイートにチャートを作成し、それらをダッシュボードに固定することができました。今回の更新でダッシュボード上のウィジェットカタログからテスト計画とスイートのためのチャートを作成できるウィジェットを追加しました。テストオーサリングステータスまたはテスト実行ステータス用のチャートを作成できます。さらに、ウィジェットからチャートを追加することで、より多くのデータをチャートに表示する際に、より大きなチャートを作成することができます。

Chart widget

Preview improvements and support for different log types generated by Visual Studio Test task

失敗したテストの標準出力と標準エラーに対応するさまざまな種類のロギングステートメントによって生成されたログを公開するように、VSTestタスクを強化しました。 また、プレビューエクスペリエンスを改善して、テキストファイルとログファイル形式の表示をサポートし、ログファイルを検索する機能も備えています。

Package

今のnpmタスクは、認証されたnpmフィード(Package Managementnpm EnterpriseArtifactoryなどの外部レジストリ)とシームレスに連携しますが、これまでGulpYarmのようなタスクランナーから認証フィードの使用は困難でした。今回のアップデートでは、.npmrcに資格情報を追加する新しいnpm Authenticateビルドタスクを追加しました。これにより、後続のタスクで認証されたフィードを正常に使用できるようになります。

Auth feeds

Package feed default permissions now include Project Administrators

以前はフィードを作成することで作成ユーザーが唯一のフィード所有者に設定されていました。そのため、大規模な組織では、ユーザーがチームを切り替えるか組織を離れる場合に管理上の課題が発生する可能性があります。この単一障害点を削除するために、フィードを作成すると、ユーザーの現在のプロジェクトコンテキストが使用され、Project Administratorsグループが取得され、フィードの所有者になります。任意の権限と同様に、このグループを削除し、フィード設定ダイアログを使用してフィード権限をさらにカスタマイズすることができます。

Reporting

BurndownウィジェットとBurnupウィジェットは、アカウントにAnalytics Extentionをインストールしたユーザーが利用できるようになりました。

Burndownウィジェットを使用すると、複数のチームと複数のスプリントにバーンダウンを表示できます。リリースバーンダウン、バグバーンダウン、または任意の期間にわたるちょうどあらゆる仕事の範囲に関するバーンダウンを作成するために使用することができます。さらに、チームプロジェクトにまたがるバーンダウンを作成することもできます!

Burndownウィジェットはあなたが次の質問に答えられるか、という状況を助けます:私たちは時間通りにこのプロジェクトを完了させるでしょうか?

その質問の回答ができるように、以下の機能を提供します:

  • 完了までの割合を表示します。
  • 平均burndownを計算します。
  • ストーリーポイントで見積もられていないアイテムがある場合に表示されます。
  • プロジェクトの過程でスコープの増加を追跡します。
  • 過去のバーンダウンとスコープの増加傾向に基づいて、プロジェクトの完成日を計画します。

作業項目の数や特定のフィールドの合計(ストーリー・ポイントなど)に基づいて、任意の作業アイテム・タイプに変更することができます。毎日/毎週/毎月の間隔で、または繰り返しスケジュールに基づいてバーンダウンできます。さらにフィルター条件を追加して、バーンダウン作業の正確な範囲を微調整することもできます。

このウィジェットは高度に設定可能で、さまざまなシナリオで使用できます。私たちは、皆さんがこの2つのウィジェットを使用する素晴らしい方法を発見してくれることを期待しています。

release burndown

bug burndown

BurnupウィジェットはBurndownウィジェットと似ていますが、残りの作業ではなく、完了した作業をプロットする点が異なります。

stories burnup

Login

Refreshed error page and seamless tenant switching hint

同じサインインアドレスのMSA(訳注:Microsoftアカウント)とAAD(訳注:Azure Active Directory)アイデンティティを持っているユーザーは、サインインするアイデンティティを求めるログイン中に曖昧さ回避のプロンプトを受け取ります(訳注:#AzureAD と Microsoft アカウントの重複問題に対する取り組みのこと)。多くのユーザーにとって、この選択は、MSAとAADのアイデンティティを持っていなかったか、どちらがアカウントにアクセスしているか不明であったために混乱していました。 この新しい機能を使用すると、誤ったIDを選択したユーザーは、他のIDが実際にアクセスしたことを示すエラーページを表示し、他のIDと正しいIDで直接サインインするボタンの選択ができるようになります。

Marketplace

Marketplace moves to new markdown-it parser

マーケットプレイスは、CommonMark仕様に基づくmarkdown-itパーサーに移行し、今後発行されるすべての新しい拡張機能に使用されます。既存のVSTSエクステンションのパブリッシャーは、エクステンションページで試したマークアップコンテンツをテストし、マニフェストを変更することで新しいパーサーに移動することができます。2017年12月1日より、Marketplaceは新しい拡張機能と既存の拡張機能の両方で新しいパーサーのみを活用します。

詳細については、ドキュメントを参照してください。

markdown-it parser

Feedback

これらの機能についてどう思っているかお聞きしたいと思います。 優先順位をつけたいと思っていることに関するアイデアがある場合は、新しいフィードバックメニューから問題を報告するか、提案を提出してください。

Feedback menu

Stack Overflowでは、コミュニティからアドバイスや質問の回答を得ることもできます。

ありがとうございました。

Jamie Cool

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment