Azure Pipelines を使用する

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

Azure Pipelines では、コードを継続的にテストし、ビルドし、デプロイするための継続的インテグレーション (CI) と継続的デリバリー (CD) がサポートされています。 パイプラインを定義することによってこれを実現します。

パイプラインをビルドする最新の方法が、YAML パイプライン エディターを使用するものです。 クラシック エディターでクラシック パイプラインを使用することもできます。

テスト、ビルド、出荷を自動化する

継続的インテグレーション (CI) により、プロジェクトのテストとビルドが自動化されます。 CI は、簡単かつ短時間で修正できる開発サイクルの初期段階でバグや問題を検出するのに役立ちます。 成果物と呼ばれる項目は、CI システムから生成されます。 これらは、自動展開を推進するために継続的デリバリーのリリース パイプラインによって使用されます。

継続的デリバリーは、複数のステージでコードを自動的にデプロイし、テストすることで、品質を向上させます。 継続的インテグレーション システムにより、インフラストラクチャやアプリなど、配置可能な成果物が生成されます。 自動化されたリリース パイプラインでは、これらの成果物を利用して、新バージョンや修正プログラムを任意のターゲットにリリースします。

継続的インテグレーション (CI) 継続的デリバリー (CD)
- コード カバレッジを広げる
- テストとビルドの実行を分割することで、高速にビルドする
- 壊れたコードを出荷しないように自動的に確認する
- テストを継続的に実行する
- コードを運用環境に自動的にデプロイする
- デプロイ ターゲットに最新のコードがあることを確認する
- CI プロセスからテスト済みコードを使用する

YAML 構文を使用してパイプラインを定義する

アプリの他の部分と共に、azure-pipelines.yml という名前の YAML ファイルでパイプラインを定義します。

Pipelines の YAML の概要イメージ

  • パイプラインは、コードと共にバージョン管理されます。 同じブランチ構造に従います。 プル要求とブランチ ビルド ポリシーでコード レビューにより変更の検証が行われます。
  • 使用するすべてのブランチは、azure-pipelines.yml ファイルを変更することでパイプラインを変更できます。 詳細は、YAML パイプラインのブランチの考慮事項に関する記事を参照してください。
  • ビルド プロセスを変更すると、障害が発生したり、予期しない結果になる可能性があります。 変更はコードベースの残りの部分でバージョン管理されるため、問題をより簡単に特定することができます。

次の基本的なステップに従います。

  1. Git リポジトリを使用するように Azure Pipelines を構成します。
  2. azure-pipelines.yml ファイルを編集してビルドを定義します。
  3. バージョン コントロール リポジトリにコードをプッシュします。 この操作により、既定のトリガーが開始され、ビルドと展開が行われた後、結果が監視されます。

コードの更新、ビルド、テスト、パッケージ化が行われます。 任意のターゲットに展開できます。

クラシック インターフェイスを使用してパイプラインを定義する

クラシック ユーザー インターフェイス エディターを使用して、Azure DevOps Web ポータルでパイプラインを作成して構成します。 コードをビルドしてテストしてから成果物を発行する "ビルド パイプライン" を定義します。 また、それらの成果物を使用して展開ターゲットに展開する "リリース パイプライン" も定義します。

Pipelines のデザイナーの概要イメージ

次の基本的なステップに従います。

  1. Git リポジトリを使用するように Azure Pipelines を構成します。
  2. Azure Pipelines クラシック エディターを使用して、ビルドおよびリリース パイプラインを作成して構成します。
  3. バージョン コントロール リポジトリにコードをプッシュします。 このアクションによってパイプラインがトリガーされ、コードのビルドやテストなどのタスクが実行されます。

ビルドでは、ステージングや運用へのデプロイなどのタスクを実行するために、パイプラインの残りの部分で使用される成果物が作成されます。

コードの更新、ビルド、テスト、パッケージ化が行われます。 任意のターゲットに展開できます。

使用可能な機能

一部のパイプライン機能は、YAML を使用する場合、またはクラシック インターフェイスを使用してビルドまたはリリース パイプラインを定義する場合にのみ使用できます。 次の表は、サポートされている機能と対象のタスクとメソッドを示しています。

機能 YAML クラシック ビルド クラシック リリース Notes
エージェント パイプラインを実行するために必要なリソースを指定します。
承認 デプロイ ステージを完了する前に必要な検証のセットを定義します。
アイテム さまざまな種類のパッケージの公開または使用をサポートします。
キャッシュ 後で実行する際に、1 つの実行からの出力またはダウンロードされた依存関係を再利用できるようにすることで、ビルド時間を短縮します。 プレビューの場合、Azure Pipelines でのみ使用できます。
条件 ジョブを実行する前に満たす必要がある条件を指定します。
コンテナー ジョブ コンテナーで実行するジョブを指定します。
確認要求 パイプライン ステージを実行する前に、パイプラインの要件が満たされていることを確かめます。 セルフホステッド エージェントが必要です。
依存関係 次のジョブまたはステージを実行するために満たす必要がある要件を指定します。
デプロイ グループ デプロイ ターゲット マシンの論理セットを定義します。
配置グループ ジョブ デプロイ グループにリリースするジョブを指定します。
デプロイ ジョブ デプロイ手順を定義します。
環境 デプロイのターゲットとなるリソースのコレクションを表します。 Azure Pipelines でのみ使用できます。
ゲート リリース ステージを完了する前の外部の正常性シグナルの自動収集と評価をサポートします。 クラシック リリースでのみ使用できます。
ジョブ 一連の手順の実行順序を定義します。
サービス接続 ジョブでタスクを実行するために必要なリモート サービスへの接続を有効にします。
サービス コンテナー コンテナー化されたサービスのライフサイクルを管理できます。
ステージ パイプライン内のジョブを整理します。
タスク グループ 一連のタスクを 1 つの再利用可能なタスクにカプセル化します。 YAML を使用する場合は、テンプレートを参照してください。
タスク パイプラインを構成する構成要素を定義します。
テンプレート 再利用可能なコンテンツ、ロジック、およびパラメーターを定義します。
トリガー パイプラインを実行するイベントを定義します。
変数 パイプラインに渡すデータに置き換えられる値を表します。
変数グループ 制御し、複数のパイプラインで使用できるようにする値を格納するために使用します。

次のステップ