Azure Pipelines を使用して複数のブランチをビルドする

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Azure Pipelines を使用して、リポジトリへの新しいコミット要求ごとにプロジェクトをビルドするトリガーを作成できます この記事では、継続的インテグレーションを有効にし、リポジトリに対して複数のブランチ ビルドを設定する方法について説明します。

前提条件

トピック ブランチの CI トリガーを有効にする

Git を使用する場合は、ワークフローの効率化を図るために、メイン ブランチから一時的なブランチを作成するのが一般的な方法です。 これらのブランチは、トピック ブランチまたは機能ブランチとも呼ばれ、作業を分離する目的で使用されます。 このワークフローでは、特定の機能またはバグ修正専用のブランチを作成し、完了したら、トピック ブランチを削除する前にコードを メイン ブランチにマージします。

YAML ファイルでトリガーが明示的に指定されていない場合、ブランチに加えられた変更によって実行がトリガーされます。 メイン ブランチと機能/ブランチの両方にトリガーを追加するには、YAML ファイルに次のスニペットを含めます。 これにより、これらのブランチに加えられた変更によって、パイプラインの実行が自動的にトリガーされるようになります。

trigger:
- main
- feature/*

TFS では、YAML ビルドはまだ使用できません。

ビルド中のブランチに基づいてビルド タスクをカスタマイズする

通常、メイン ブランチは、バイナリなどのデプロイ可能な成果物の生成する役割を担います。 有効期間の短い機能ブランチでは、時間をかけてこのような成果物を作成して格納する必要はありません。 Azure Pipelines では、カスタム条件を実装して、特定のタスクが メイン ブランチでのみ実行されるようにすることができます。

メイン ブランチで azure-pipelines.yml ファイルを編集し、目的のタスクに条件を追加します。 たとえば、次のスニペットによって、パイプライン成果物の発行タスクに条件を追加します。

- task: PublishPipelineArtifact@1
  condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))

TFS では、YAML ビルドはまだ使用できません。

pull request を検証する

ブランチ保護を確保するために、pull request をマージする前にビルドの成功を要求するポリシーを利用できます。 Azure Pipelines を使用すると、変更を メイン ブランチなどの重要なブランチにマージするための、新しい成功したビルドの要件を柔軟に構成できます。

GitHub リポジトリ

YAML ファイルで pr トリガーを明示的に定義しない場合、pull request のビルドはすべてのブランチに対して既定で有効になります。 ただし、pull request のビルドのターゲット ブランチを指定できます。 たとえば、メイン ブランチと feature/ で始まるブランチを対象とした pull request 専用のビルドを実行する場合は、次の構成を指定できます。

pr:
- main
- feature/*

TFS では、YAML ビルドはまだ使用できません。

Azure Repos リポジトリ。

  1. Azure DevOps 組織にサインインしてから、プロジェクトに移動します。

  2. [Repos] を選択し、[ブランチ] を選択します。

  3. ブランチ名の右側の省略記号を選択し、[ブランチ ポリシー] を選択します。

  4. [ビルドの検証] メニューで、+ 記号を選択してビルド ポリシーを追加します。

  5. ドロップダウン メニューから自分のビルド パイプラインを選択し、トリガーが自動に設定され、ポリシー要件が必須に設定されていることを確認します。

  6. ポリシーを説明する、わかりやすい [表示名] を入力します。

  7. [保存] を選択して、ポリシーを作成して有効にします。 画面の左上にある [変更の保存] を選択して変更を保存します。

新しいビルド ポリシーを追加する方法を示すスクリーンショット。

  1. ポリシーをテストするには、Azure DevOps ポータルで Repos>Pull requests に移動します。

  2. [新しい pull request] を選択し、トピック ブランチがメイン ブランチにマージするように設定されていることを確認し、[作成] を選択します。

  3. 画面には、現在実行中のポリシーが表示されます。

  4. ポリシー名を選択して、ビルドを調べます。 ビルドが成功した場合、pull request がマージされます。 ビルドが失敗した場合、マージはブロックされます。

Note

Azure Pipelines では、パイプラインごとの保持ポリシーはサポートされなくなりました。 プロジェクト レベルの保持ルールを使用することをお勧めします。