Azure Pipelines を使用する

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

Azure Pipelines では、継続的インテグレーション (CI) と継続的デリバリー (CD) がサポートされ、コードを継続的にテスト、ビルド、デプロイできます。 これを行うには、パイプラインを定義します。

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

Azure Pipelines では、継続的インテグレーション (CI) と継続的デリバリー (CD) がサポートされ、コードを継続的にテスト、ビルド、デプロイできます。 これを行うには、 クラシックとも呼ばれるユーザー インターフェイスを使用してパイプラインを定義します。

Note

Microsoft Team Foundation Server (TFS) 2018 以前のバージョンでは、ビルドとリリースの "パイプライン" は "定義"、"実行" は "ビルド"、"サービス接続" は "サービス エンドポイント"、"ステージ" は "環境"、"ジョブ" は "フェーズ" と呼ばれます。

テスト、ビルド、配信を自動化する

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

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

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

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

パイプラインは、アプリの残りの部分で呼び出される azure-pipelines.yml YAML ファイルで定義します。

パイプラインの YAML イントロ イメージ

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

次の基本的な手順に従います。

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

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

TFS 2018 以前のバージョンでは、YAML パイプラインを使用できません。

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

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

パイプライン デザイナーの概要イメージ

次の基本的な手順に従います。

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

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

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

使用可能な機能

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

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

TFS 2015 ~ TFS 2018 では、クラシック インターフェイスのみがサポートされます。 次の表は、ビルド パイプラインまたはリリース パイプラインを定義するときに使用できるパイプライン機能を示しています。

特徴量 クラシック ビルド クラシック リリース メモ
エージェント はい はい パイプラインを実行するために必要なリソースを指定します。
承認 いいえ はい デプロイ ステージを完了する前に必要な一連の検証を定義します。
アイテム はい はい さまざまな種類のパッケージの公開または使用をサポートします。
条件 はい はい ジョブを実行する前に満たす条件を指定します。
確認要求 はい はい パイプライン ステージを実行する前に、パイプラインの要件が満たされていることを確かめます。 セルフホステッド エージェントが必要です。
依存関係 Yes はい 次のジョブまたはステージを実行するために満たす必要がある要件を指定します。
デプロイ グループ いいえ はい デプロイ ターゲット マシンの論理セットを定義します。
配置グループ ジョブ いいえ はい デプロイ グループにリリースするジョブを指定します。
ジョブ はい はい 一連の手順の実行順序を定義します。
サービス接続 はい はい ジョブでタスクを実行するために必要なリモート サービスへの接続を有効にします。
ステージ いいえ はい パイプライン内のジョブを整理します。
タスク グループ はい はい 一連のタスクを 1 つの再利用可能なタスクにカプセル化します。 YAML を使用する場合は、テンプレートを参照してください。
タスク はい はい パイプラインを構成する構成要素を定義します。
トリガー はい はい パイプラインを実行するイベントを定義します。
変数 はい はい パイプラインに渡すデータに置き換えられる値を表します。
変数グループ はい はい 制御し、複数のパイプラインで使用できるようにする値を格納するために使用します。

次のステップ