次の方法で共有


YAML パイプライン ファイルでの野生のカードと条件式のサポート

このスプリントでは、YAML パイプライン ファイルに対する野生のカードと条件式のサポートを含めていました。 さらに、Azure Pipelines でホストされるイメージに対して複数の更新を行いました。

詳細については、次の機能の説明をご覧ください。

Azure Pipelines

Azure Repos

Azure Pipelines

新しい YAML 条件式

YAML ファイルに条件式を記述する方が、式と${{ elseif }}使用${{ else }}が簡単になりました。 YAML パイプライン ファイルでこれらの式を使用する方法の例を次に示します。

steps:
- script: tool
  env:
    ${{ if parameters.debug }}:
      TOOL_DEBUG: true
      TOOL_DEBUG_DIR: _dbg
    ${{ else }}:
      TOOL_DEBUG: false
      TOOL_DEBUG_DIR: _dbg
variables:
  ${{ if eq(parameters.os, 'win') }}:
    testsFolder: windows
  ${{ elseif eq(parameters.os, 'linux') }}:
    testsFolder: linux
  ${{ else }}:
    testsFolder: mac

パス フィルターでのワイルドカードのサポート

パイプライン YAML ファイルで CI トリガーまたは PR トリガーの包含ブランチと除外ブランチを指定するときに、ワイルド カードを使用できます。 ただし、パス フィルターを指定するときに使用することはできません。 たとえば、一致 src/app/**/myapp*するすべてのパスを含めることはできません。 これは、複数の顧客によって不便として指摘されています。 この更新プログラムは、このギャップを埋めます。 パス フィルターを指定するときに、野生のカード文字 (***または?) を使用できるようになりました。

Bitbucket での複数の状態のサポート

Azure Pipelines は Bitbucket リポジトリと統合され、CI トリガーと PR トリガーをサポートします。 1 つの Bitbucket リポジトリから複数のパイプラインを設定できます。 ただし、これらのパイプラインが完了すると、Bitbucket には 1 つの状態しか表示されませんでした。 開発者コミュニティから、Bitbucket で各パイプラインの状態を個別に表示するよう求めるフィードバックが寄せられます。 この更新プログラムでは、Bitbucket への API 呼び出しを更新し、パイプラインの名前に関する追加情報を渡しました。

Build status

ビルド検証の前に、共同作成者が PR コメントの検索をスキップできるようにする

GitHub リポジトリで Azure Pipelines を使用する場合は、フォークされたリポジトリから受信したコントリビューションの PR 検証パイプラインを自動的に実行しないことをお勧めします。 ここでのベスト プラクティスは、最初にリポジトリのコラボレーターの 1 人が変更を確認してから、PR にコメントを追加してパイプラインをトリガーすることです。 これらの設定を構成するには、パイプライン Web エディターで [トリガー] メニュー (YAML パイプラインの場合) または [トリガー] タブ (クラシック ビルド パイプラインの場合) を選択します。 フォークのすべての PR をチーム メンバーが最初にレビューするように要求する代わりに、このポリシーを適用できるのは、チーム メンバー以外のメンバーからのコントリビューションに対してのみ行うこともできます。

この更新プログラムでは、任意の共同作成者が受け取ったコントリビューションからの PR コメントの検索をスキップできます。 チームメンバー以外のメンバーは、フォークを作成してアップストリームに PR を作成する場合、PR がマージされるまでアップストリーム リポジトリへの共同作成者とは見なされません。 PR がマージされると、共同作成者と見なされます。 次に示す新しいオプションを選択すると、チーム以外のメンバーが初めてフォークから PR を送信するときに、チームの誰かが PR を確認し、コメントを追加してパイプラインをトリガーする必要があります。 ただし、PR がマージされると、そのチーム以外のメンバーによって行われたそれ以上のコントリビューションは、PR コメントを待たずにパイプラインを直接トリガーします。

Require a team member's comment before building a pull request

Windows Server 2022 with Visual Studio 2022 が Microsoft ホステッド エージェントで利用可能に (プレビュー)

Windows Server 2022 および Visual Studio Enterprise 2022 Preview は、Microsoft がホストするエージェントでプレビューで利用できるようになりました。 これを使用するには、パイプラインでイメージとして参照 windows-2022 します。

pool:
  vmImage: 'windows-2022'

steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
  inputs:
    restoreSolution: '**/*.sln'
- task: VSBuild@1 # Visual Studio 2022 build
  inputs:
    solution: '**/*.sln'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
    platform: 'Any CPU'
    configuration: 'Release'

YAML パイプラインで Windows 最新のプールを参照する場合でも、windows-2022 ではなく windows-2019 を意味し、後者はプレビュー段階です。

Windows Server 2022 パイプライン イメージには、Windows Server 2019 と比較して、ツールとツールのバージョンが異なります。 詳細については、ソフトウェアのお知らせの問題と、仮想環境リポジトリのドキュメントを参照してください。

Microsoft がホストするエージェントでの macOS 11 の一般提供

macOS 11 は、Microsoft がホストするエージェントで一般提供されるようになりました。 これを使用するには、パイプラインでイメージとして参照 macos-11 します。

pool:
  vmImage: macos-11

macOS 11 パイプライン イメージにはさまざまなツールとツールがあり、このバージョンの詳細については、こちらの完全なドキュメントを参照してください。

Microsoft でホストされているエージェントでの Ubuntu 16.04 イメージの削除

に発表したように、2021 年 9 月 20 日に Microsoft がホストするエージェントから Ubuntu 16.04 イメージを削除します。 Canonical による Ubuntu 16.04 の従来の 5 年間のサポートは、2021 年 4 月に終了しました。 Ubuntu-16.04 パイプラインを ubuntu-18.04 または ubuntu-latest に移行する必要があります。Ubuntu 20.04 LTS で実行されます。

Ubuntu-16.04 を使用するビルドには、既に警告がログに記録されています。 誰もがこの変更を認識していることを確認するために、2 つの短い "ブラウンアウト" をスケジュールしました。 Ubuntu 16.04 ビルドは、ブラウンアウト期間中に失敗します。 そのため、2021 年 9 月 6 日より前にワークフローを移行することをお勧めします。

ブラウンアウトは、次の日時にスケジュールされています (以前に発表された時刻から 1 時間延長されていることに注意してください)。 2021 年 9 月 6 日午後 4 時 (UTC) - 午後 10:00 UTC (2021 年 9 月 14 日午後 4:00 UTC – 午後 10:00 UTC)

Azure Repos

新しい TFVC ページの一般提供開始

さまざまなサービスでエクスペリエンスの一貫性とアクセシビリティを高めるという目的で、新しい Web プラットフォームを使用するように、Azure DevOps のさまざまなページを更新しています。 新しい Web プラットフォームを使用するように TFVC ページが更新され、それらの変更は数か月間プレビュー段階にあります。 この更新プログラムでは、新しい TFVC ページを一般公開しています。 この更新プログラムでは、ユーザー設定に "新しい TFVC ページ" というプレビュー機能が表示されなくなります。

ブランチ作成者が自分のブランチの「管理アクセス許可」を取得しないように構成する

新しいブランチを作成すると、そのブランチに対する "アクセス許可の管理" が取得されます。 このアクセス許可を使用すると、他のユーザーのアクセス許可を変更したり、そのブランチに投稿する追加のユーザーを許可したりできます。 たとえば、ブランチ作成者は、このアクセス許可を使用して、別の外部ユーザーがコードに変更を加えることを許可できます。 または、パイプライン (ビルド サービス ID) がそのブランチのコードを変更できるようにする場合もあります。 コンプライアンス要件が高い特定の組織では、ユーザーはそのような変更を行うことができません。

この更新プログラムでは、チーム プロジェクト内のすべてのリポジトリを構成し、ブランチ作成者が "アクセス許可の管理" アクセス許可を取得できないように制限できます。 これを行うには、プロジェクト設定に移動し、[リポジトリ] を選択し、すべてのリポジトリまたは特定のリポジトリの設定します。

All repositories settings

この設定は、既存の動作を模倣するために既定でオンになっています。 ただし、この新しいセキュリティ機能を利用する場合は、オフにすることができます。

フォーク ユーザーが上流 PR に投票できないようにする

Azure Repos では、リポジトリに対する "読み取り" アクセス許可を持つユーザーは、リポジトリをフォークし、フォークを変更できます。 アップストリームに変更を加えた pull request を送信するには、アップストリームに対する "pull requests に貢献する" アクセス許可が必要です。 ただし、このアクセス許可は、アップストリーム リポジトリ内のプル要求に投票できるユーザーも管理します。 その結果、リポジトリの共同作成者ではないユーザーがプル要求を送信し、ブランチ ポリシーの設定方法に応じてマージされる場合があります。

内部ソース モデルを昇格させる組織では、フォークアンド貢献が一般的なパターンです。 このパターンをさらにセキュリティで保護して昇格させるために、pull request に投票するアクセス許可を "pull request に投稿する" から "投稿" に変更しています。 ただし、この変更はすべての組織で既定で行われるわけではありません。 このアクセス許可を切り替えるには、リポジトリでオプトインし、"Strict Vote Mode" という名前の新しいポリシーを選択する必要があります。 Azure Repos のフォークに依存する場合は、これを行うことをお勧めします。

Repository settings

次のステップ

Note

これらの機能は、今後 2 ~ 3 週間にわたってロールアウトされます。

Azure DevOps に向かい、見てみましょう。

フィードバックの提供方法

これらの機能に関するご意見をお聞かせください。 ヘルプ メニューを使用して、問題を報告したり、提案を提供したりします。

Make a suggestion

Stack Overflow のコミュニティからアドバイスや質問に回答してもらうこともできます。

よろしくお願いします。

アーロン・ハルベルク