Share via


チュートリアル: GitHub と Azure デプロイ環境を使用して CI/CD に環境をデプロイする

このチュートリアルでは、Azure Deployment Environment を CI/CD パイプラインに統合する方法について説明します。 CI/CD をサポートする任意の GitOps プロバイダー (GitHub Actions、Azure Arc、GitLab、Jenkins など) を使用できます。

継続的インテグレーションと継続的デリバリー (CI/CD) は、チームがソフトウェアの変更のビルド、テスト、デプロイのプロセスを自動化するために役立つソフトウェア開発アプローチです。 CI/CD を使用すると、ソフトウェアの変更をより頻繁にリリースでき、信頼度が高まります。

メイン、開発、テストの 3 つのブランチを備えたワークフローを使用します。

  • main ブランチは常に運用環境と見なされます。
  • 機能ブランチは、main ブランチから作成します。
  • 機能ブランチを main にマージするには、pull request を作成します。

このワークフローは、このチュートリアルの目的のための簡単な例です。 実際のワークフローは、より複雑な場合があります。

このチュートリアルを開始する前に、「Azure Deployment Environments の主要な概念」を確認すると、Deployment Environments のリソースと概念について理解できます。

このチュートリアルでは、次の作業を行う方法について説明します。

  • デベロッパー センターの作成と構成
  • Key Vault を作成します
  • GitHub リポジトリを作成して構成する
  • デベロッパー センターにカタログを接続する
  • デプロイ ID を構成する
  • GitHub 環境を構成する
  • CI/CD パイプラインのテスト

前提条件

  • アクティブなサブスクリプションが含まれる Azure アカウント。
  • Azure サブスクリプションの所有者アクセス許可。
  • GitHub アカウント。
    • お持ちでない場合は、無料でサインアップしてください。
  • Git のインストール。
  • Azure CLI をインストールします。

1. デベロッパー センターを作成して構成する

このセクションでは、開発、テスト、Prod の 3 種類の環境を含む Azure Deployment Environments デベロッパー センターとプロジェクトを作成します。

  • Prod 環境の種類には、単一の運用環境が含まれています。
  • Dev では、機能ブランチごとに新しい環境が作成されます。
  • 各プル要求のテスト新しい環境が作成されます。

1.1 Azure CLI を設定する

まず、Azure にサインインします。 次のコマンドを実行し、プロンプトに従って認証プロセスを完了します。

az login

次に、Azure CLI 用の Azure Devcenter 拡張機能をインストールします。

az extension add --name devcenter --upgrade

最新の拡張機能がインストールされたので、Microsoft.DevCenter 名前空間を登録します。

az provider register --namespace Microsoft.DevCenter

ヒント

このチュートリアルの全体を通して、後で使用する環境変数としていくつかの値を保存します。 また、必要に応じて使用できるように、これらの値を他の場所に記録することもできます。

ユーザーの ID を取得し、後で使用するためにそれを環境変数に設定します。

MY_AZURE_ID=$(az ad signed-in-user show --query id -o tsv)

現在のサブスクリプションのサブスクリプション ID を取得します。

AZURE_SUBSCRIPTION_ID=$(az account show --query id --output tsv)

現在のテナントのテナント ID を取得します。

AZURE_TENANT_ID=$(az account show --query tenantId --output tsv)

以下の環境変数を設定します。

LOCATION="eastus"
AZURE_RESOURCE_GROUP=<resourceGroupName>
AZURE_DEVCENTER=<devcenterName>
AZURE_PROJECT=<projectName>
AZURE_KEYVAULT=<keyVaultName>

Note

グローバルに一意のキー コンテナー名を使用する必要があります。 それ以外の場合は、次のエラーが発生する可能性があります。 Code: VaultAlreadyExists Message: The vault name 'mykeyvaultname' is already in use. Vault names are globally unique so it is possible that the name is already taken.

1.2 デベロッパー センターを作成する

デベロッパー センターとは、同様の設定を使用するプロジェクトと環境のコレクションです。 デベロッパー センターは、環境を作成するために使用できるテンプレートと成果物のカタログへのアクセスを提供します。 デベロッパー センターは、環境とプロジェクトへのアクセスを管理する方法も提供します。

リソース グループを作成します。

az group create \
  --name $AZURE_RESOURCE_GROUP \
  --location $LOCATION

新しいデベロッパー センターを作成します。

az devcenter admin devcenter create \
  --name $AZURE_DEVCENTER \
  --identity-type SystemAssigned \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION

前のコマンドは JSON を出力します。 後で使用する環境変数として ididentity.principalId の値を保存します。

AZURE_DEVCENTER_ID=<id>
AZURE_DEVCENTER_PRINCIPAL_ID=<identity.principalId>

1.3 サブスクリプションにデベロッパー センター ID 所有者ロールを割り当てる

デベロッパー センターには、環境の種類に関連付けられているサブスクリプションにロールを割り当てるためのアクセス許可が必要です。

不要な複雑さを軽減するために、このチュートリアルでは、デベロッパー センターとすべての環境の種類に対して 1 つのサブスクリプションを使用します。 実際には、デベロッパー センターのサブスクリプションとターゲット デプロイのサブスクリプションは、異なるポリシーが適用された個別のサブスクリプションである可能性があります。

az role assignment create \
  --scope /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --role Owner \
  --assignee-object-id $AZURE_DEVCENTER_PRINCIPAL_ID \
  --assignee-principal-type ServicePrincipal

1.4 環境の種類を作成する

デベロッパー センター レベルでは、環境の種類によって、開発、テスト、サンドボックス、運用前、または運用など、開発チームが作成できる環境が定義されます。

開発、テストProd という 3 つの新しい環境の種類を作成します

az devcenter admin environment-type create \
  --name Dev \
  --resource-group $AZURE_RESOURCE_GROUP \
  --dev-center $AZURE_DEVCENTER
az devcenter admin environment-type create \
  --name Test \
  --resource-group $AZURE_RESOURCE_GROUP \
  --dev-center $AZURE_DEVCENTER
az devcenter admin environment-type create \
  --name Prod \
  --resource-group $AZURE_RESOURCE_GROUP \
  --dev-center $AZURE_DEVCENTER

1.5 プロジェクトを作成する

プロジェクトは、開発チームのアクセス ポイントです。 各プロジェクトは、1 つのデベロッパー センターに関連付けられています。

新しいプロジェクトを作成します。

az devcenter admin project create \
  --name $AZURE_PROJECT \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --dev-center-id $AZURE_DEVCENTER_ID

前のコマンドは JSON を出力します。 後で使用する環境変数として id の値を保存します。

AZURE_PROJECT_ID=<id>

プロジェクトに対する DevCenter Project 管理 ロールを自分に割り当てます。

az role assignment create \
  --scope "$AZURE_PROJECT_ID" \
  --role "DevCenter Project Admin" \
  --assignee-object-id $MY_AZURE_ID \
  --assignee-principal-type User

1.6 プロジェクトの環境の種類を作成する

プロジェクト レベルでは、プラットフォーム エンジニアは、開発チームに適した環境の種類を指定します。

デベロッパー センターで作成した環境の種類ごとに、新しいプロジェクト環境の種類を作成します。

az devcenter admin project-environment-type create \
  --name Dev \
  --roles "{\"b24988ac-6180-42a0-ab88-20f7382dd24c\":{}}" \
  --deployment-target-id /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --project $AZURE_PROJECT \
  --identity-type SystemAssigned \
  --status Enabled
az devcenter admin project-environment-type create \
  --name Test \
  --roles "{\"b24988ac-6180-42a0-ab88-20f7382dd24c\":{}}" \
  --deployment-target-id /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --project $AZURE_PROJECT \
  --identity-type SystemAssigned \
  --status Enabled
az devcenter admin project-environment-type create \
  --name Prod \
  --roles "{\"b24988ac-6180-42a0-ab88-20f7382dd24c\":{}}" \
  --deployment-target-id /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --project $AZURE_PROJECT \
  --identity-type SystemAssigned \
  --status Enabled

2. キー コンテナーを作成する

このセクションでは、新しいキー コンテナーを作成します。 このチュートリアルの後半でこのキー コンテナーを使用して、GitHub からの個人用アクセス トークンを保存します。

az keyvault create \
  --name $AZURE_KEYVAULT \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --enable-rbac-authorization true

ここでも、環境変数として前のコマンドの JSON 出力からの id を保存します。

AZURE_KEYVAULT_ID=<id>

新しいキー コンテナーに対する Key Vault 管理istrator ロールを自分に付与します。

az role assignment create \
  --scope $AZURE_KEYVAULT_ID \
  --role "Key Vault Administrator" \
  --assignee-object-id $MY_AZURE_ID \
  --assignee-principal-type User

デベロッパー センターの ID に Key Vault シークレット ユーザーのロールを割り当てます。

az role assignment create \
  --scope $AZURE_KEYVAULT_ID \
  --role "Key Vault Secrets User" \
  --assignee-object-id $AZURE_DEVCENTER_PRINCIPAL_ID \
  --assignee-principal-type ServicePrincipal

3. GitHub リポジトリを作成して構成する

このセクションでは、カタログを格納する新しい GitHub リポジトリを作成します。 Azure Deployment Environments は、GitHub リポジトリと Azure DevOps リポジトリの両方をサポートしています。 このチュートリアルでは、GitHub を使用します。

3.1 新しい GitHub リポジトリを作成する

この手順では、定義済みのディレクトリ構造、ブランチ、ファイルを含む新しいリポジトリを GitHub アカウントに作成します。 これらの項目は、サンプル テンプレート リポジトリから生成されます。

  1. このリンクを使用して、サンプル テンプレートから新しい GitHub リポジトリを生成します。

    Screenshot showing the GitHub create repository from template page.

  2. 有料の GitHub アカウントがない場合は、リポジトリを [パブリック] に設定します。

  3. [Create repository from template](テンプレートからリポジトリを作成する) を選択します。

  4. [アクション] タブで、[環境の作成] アクションが失敗していることがわかります。 この動作は想定されたものであり、次の手順に進むことができます。

3.2 リポジトリの main ブランチを保護する

ブランチ保護ルールを設定することで、重要なブランチを保護できます。 保護ルールでは、コラボレーターがブランチを削除できるかどうかや、ブランチへのプッシュを強制できるかどうかを定義します。 また、状態チェックの合格やリニア コミット履歴など、ブランチへのプッシュの要件も設定します。

Note

保護されたブランチは、GitHub Free と GitHub Free for organizations を使用するパブリック リポジトリと、GitHub Pro、GitHub Team、GitHub Enterprise Cloud、GitHub Enterprise Server を使用するパブリック リポジトリとプライベート リポジトリで使用できます。 詳細については、GitHub の製品を参照してください

  1. まだ開いていない場合は、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下で、 [設定] を選択します。 [設定] タブが表示されない場合は、[...] ドロップダウン メニューを選択し、[設定] を選択します。

    Screenshot showing the GitHub repository page with settings highlighted.

  3. サイドバーの [Code and automation](コードと自動化) セクションで、[ブランチ] を選択します。

    Screenshot showing the settings page, with branches highlighted.

  4. [Branch protection rules](ブランチ保護ルール) で、[Add branch protection rule](ブランチ保護ルールの追加) を選択します。

    Screenshot showing the branch protection rule page, with Add branch protection rule highlighted.

  5. [ブランチ名パターン] に「.」と入力しますmain

    Screenshot showing the branch name pattern text box, with main highlighted.

  6. [Protect matching branches](一致するブランチを保護する) で、[Require a pull request before merging](マージ前に pull request 必須) を選択します。

    Screenshot showing protect matching branches with Require a pull request before merging selected and highlighted.

  7. 必要に応じて、より多くの保護ルールを有効にすることができます。

  8. [作成] を選択します

3.3 リポジトリ変数を構成する

Note

GitHub Actions の構成変数はベータ版であり、変更される可能性があります。

  1. サイドバーの [セキュリティ] セクションで、[Secrets and variables](シークレットと変数) を選択し、[アクション] を選択します。

    Screenshot showing the Security section of the sidebar with Actions highlighted.

  2. [変数] タブを選択します。

  3. テーブル内の各項目に対して、次の手順を実行します。

    1. [New repository variable](新しいリポジトリ変数) を選択します。
    2. [名前] フィールドに、変数名を入力します。
    3. [値] フィールドに、表で説明されている値を入力します。
    4. [変数の追加] を選びます。
    変数名 変数の値
    AZURE_DEVCENTER デベロッパー センター名
    AZURE_PROJECT プロジェクト名
    AZURE_CATALOG [環境] に設定する
    AZURE_CATALOG_ITEM "FunctionApp" に設定する
    AZURE_SUBSCRIPTION_ID Azure サブスクリプション ID
    AZURE_TENANT_ID Azure テナント ID

    Screenshot showing the variables page with the variables table.

3.4 GitHub 個人用アクセス トークンを作成する

次に、詳細な個人用アクセス トークンを作成して、Azure Deployment Environments 開発センターがリポジトリに接続し、環境カタログを使用することができるようにします。

Note

詳細な個人用アクセス トークンは現在ベータ版であり、変更される可能性があります。 フィードバックを残すには、フィードバックのディスカッションに関するページを参照してください。

  1. GitHub.com 上の任意のページの右上隅で、自分のプロファイル写真を選択し、[設定] を選択します。

  2. 左側のサイドバーで、[開発者向け設定] を選びます。

  3. 左側のサイドバーの [個人用アクセス トークン] で、[Fine-grained tokens](詳細なトークン) を選択し、[新しいトークンの生成] を選択します。

    Screenshot showing the GitHub personal access token options, with Fine-grained tokens and Generate new token highlighted.

  4. [新しいきめ細かな個人用アクセス トークン] ページの [トークン] に、トークンの名前を入力します。

  5. [有効期限] で、トークンの有効期限を選びます。

  6. [リソース所有者] で GitHub ユーザーを選択します。

  7. [リポジトリ アクセス] で、[Only select repositories](リポジトリのみを選択) を選択し、[選択したリポジトリ] ドロップダウンで、作成したリポジトリを検索して選択します。

    Screenshot showing GitHub repository access options, with Only select repositories highlighted.

  8. [アクセス許可] で、[リポジトリのアクセス許可] を選択し、[コンテンツ][読み取り専用] に変更します。

    Screenshot showing GitHub repository permissions with Contents highlighted.

  9. [Generate token](トークンの生成) を選択します。

  10. 今すぐ個人用アクセス トークンをコピーして保存します。 もう一度表示することはできません。

3.5 個人用アクセス トークンをキー コンテナーに保存する

次に、個人用アクセス トークンを pat という名前のキー コンテナー シークレットとして保存します。

az keyvault secret set \
    --name pat \
    --vault-name $AZURE_KEYVAULT \
    --value <personalAccessToken>

4. デベロッパー センターにカタログを接続する

Azure Deployment Environments で、カタログは環境定義のセットを含むリポジトリです。 カタログ 項目は、コードとしてのインフラストラクチャ (IaC) テンプレートと、マニフェストとして機能する環境ファイルで構成されます。 テンプレートは環境を定義し、環境ファイルはテンプレートに関するメタデータを提供します。 開発チームは、カタログからの環境定義を使用して、環境を作成します。

GitHub リポジトリを作成するために使用したテンプレートには、Environments フォルダー内のカタログが含まれています。

デベロッパー センターにカタログを追加する

次のコマンドで、< Organization/Repository > を GitHub 組織とリポジトリの名前に置き換えます。

az devcenter admin catalog create \
    --name Environments \
    --resource-group $AZURE_RESOURCE_GROUP \
    --dev-center $AZURE_DEVCENTER \
    --git-hub path="/Environments" branch="main" secret-identifier="https://$AZURE_KEYVAULT.vault.azure.net/secrets/pat" uri="https://github.com/< Organization/Repository >.git"

5. デプロイ ID を構成する

OpenID Connect with GitHub Actions は、有効期間の短いトークンを使用してセキュリティを強化する認証方法です。 これは、Azure に対して GitHub Actions を認証するための推奨される方法です。

シークレットを使用してサービス プリンシパルを直接認証することもできますが、このチュートリアルでは対象外です。

5.1 デプロイ ID を生成する

  1. 3 つの環境の種類ごとに、Microsoft Entra アプリケーションとサービス プリンシパルを登録します。

    開発用の Microsoft Entra アプリケーションを作成します。

    az ad app create --display-name "$AZURE_PROJECT-Dev"
    

    このコマンドは、Graph API を使用してフェデレーション資格情報を作成するときに使用する id と、appId (クライアント ID とも呼ばれます) を含む JSON を出力します。

    以下の環境変数を設定します。

    DEV_AZURE_CLIENT_ID=<appId>
    DEV_APPLICATION_ID=<id>
    

    [テスト] を繰り返します。

    az ad app create --display-name "$AZURE_PROJECT-Test"
    
    TEST_AZURE_CLIENT_ID=<appId>
    TEST_APPLICATION_ID=<id>
    

    Prod の場合も対象 です

    az ad app create --display-name "$AZURE_PROJECT-Prod"
    
    PROD_AZURE_CLIENT_ID=<appId>
    PROD_APPLICATION_ID=<id>
    
  2. 各アプリケーション用にサービス プリンシパルを作成します。

    次のコマンドを実行して、Dev 用の新しいサービス プリンシパルを作成します。

     az ad sp create --id $DEV_AZURE_CLIENT_ID
    

    このコマンドにより、異なる id を持つ JSON 出力が生成され、次のステップで使用されます。

    以下の環境変数を設定します。

    DEV_SERVICE_PRINCIPAL_ID=<id>
    

    [テスト] を繰り返します。

     az ad sp create --id $TEST_AZURE_CLIENT_ID
    
    TEST_SERVICE_PRINCIPAL_ID=<id>
    

    Prod の場合も対象 です

     az ad sp create --id $PROD_AZURE_CLIENT_ID
    
    PROD_SERVICE_PRINCIPAL_ID=<id>
    
  3. 次のコマンドを実行して、各 Active Directory アプリケーションの新しいフェデレーション ID 資格情報を作成します。

    次の 3 つのコマンドのそれぞれで、< Organization/Repository > を GitHub 組織とリポジトリの名前に置き換えます。

    Dev のフェデレーション ID 資格情報を作成します。

    az rest --method POST \
        --uri "https://graph.microsoft.com/beta/applications/$DEV_APPLICATION_ID/federatedIdentityCredentials" \
        --body '{"name":"ADEDev","issuer":"https://token.actions.githubusercontent.com","subject":"repo:< Organization/Repository >:environment:Dev","description":"Dev","audiences":["api://AzureADTokenExchange"]}'
    

    テストの場合

    az rest --method POST \
        --uri "https://graph.microsoft.com/beta/applications/$TEST_APPLICATION_ID/federatedIdentityCredentials" \
        --body '{"name":"ADETest","issuer":"https://token.actions.githubusercontent.com","subject":"repo:< Organization/Repository >:environment:Test","description":"Test","audiences":["api://AzureADTokenExchange"]}'
    

    Prod の場合も対象 です

    az rest --method POST \
        --uri "https://graph.microsoft.com/beta/applications/$PROD_APPLICATION_ID/federatedIdentityCredentials" \
        --body '{"name":"ADEProd","issuer":"https://token.actions.githubusercontent.com","subject":"repo:< Organization/Repository >:environment:Prod","description":"Prod","audiences":["api://AzureADTokenExchange"]}'
    

5.2 デプロイ ID にロールを割り当てる

  1. 各デプロイ ID にプロジェクトの閲覧者ロールを割り当てます。

    az role assignment create \
        --scope "$AZURE_PROJECT_ID" \
        --role Reader \
        --assignee-object-id $DEV_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID" \
        --role Reader \
        --assignee-object-id $TEST_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID" \
        --role Reader \
        --assignee-object-id $PROD_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
  2. 各デプロイ ID に、対応する環境の種類にデプロイ環境ユーザー ロールを割り当てます。

    az role assignment create \
        --scope "$AZURE_PROJECT_ID/environmentTypes/Dev" \
        --role "Deployment Environments User" \
        --assignee-object-id $DEV_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID/environmentTypes/Test" \
        --role "Deployment Environments User" \
        --assignee-object-id $TEST_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID/environmentTypes/Prod" \
        --role "Deployment Environments User" \
        --assignee-object-id $PROD_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    

6. GitHub 環境を構成する

GitHub 環境を使用することで、保護ルールとシークレットを使用して環境を構成できます。 環境を参照するワークフロー ジョブは、環境のシークレットを実行またはそれにアクセスする前に、環境の保護ルールに従う必要があります。

Azure Deployment Environments プロジェクトの環境の種類にマップする開発、テスト、および Prod 環境を作成します。

Note

環境、環境のシークレット、環境保護ルールは、すべての製品のパブリック リポジトリで利用できます。 プライベートまたは内部リポジトリ内の環境、環境シークレット、デプロイ ブランチにアクセスする場合は、GitHub Pro、GitHub Team、または GitHub Enterprise を使う必要があります。 プライベートまたは内部リポジトリ内の他の環境保護ルールにアクセスする場合は、GitHub Enterprise を使う必要があります。 詳細については、GitHub の製品を参照してください

6.1 Dev 環境を作成する

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下で、 [設定] を選択します。 [設定] タブが表示されない場合は、[...] ドロップダウン メニューを選択し、[設定] を選択します。

  3. 左側のサイドバーで、[環境] を選択します。

  4. [新しい環境] を選択し、環境名として Dev と入力し、[環境の構成] を選択します。

    Screenshot showing the Environments Add pane, with the environment name Dev, and Configure Environment highlighted.

  5. [Environment secrets](環境シークレット) で、[シークレットの追加] を選択し、[名前] として AZURE_CLIENT_ID と入力します。

    Screenshot showing the Environment Configure Dev pane, with Add secret highlighted.

  6. [値] に、先ほど作成した *Dev**Microsoft Entra アプリ (環境変数として$DEV_AZURE_CLIENT_ID保存) のクライアント ID (appId) を入力します。

    Screenshot of the Add secret box with the name AZURE CLIENT ID, the value set to an ID number, and add secret highlighted.

  7. [Add secret](シークレットの追加) を選択します。

6.2 Test 環境を作成する

左側のサイドバーで [環境] を選択して、メイン環境ページに戻ります。

  1. [新しい環境] を選択し、環境名として Test と入力し、[環境の構成] を選択します。

  2. [Environment secrets](環境シークレット) で、[シークレットの追加] を選択し、[名前] として AZURE_CLIENT_ID と入力します。

  3. [値] に、前に作成した Test Microsoft Entra アプリのクライアント ID (appId) ($TEST_AZURE_CLIENT_ID 環境変数として保存) を入力します。

  4. [Add secret](シークレットの追加) を選択します。

6.3 Prod 環境を作成する

もう一度、左側のサイドバーで [環境] を選択して、メイン環境ページに戻ります。

  1. [新しい環境] を選択し、環境名として Prod と入力し、[環境の構成] を選択します。

  2. [Environment secrets](環境シークレット) で、[シークレットの追加] を選択し、[名前] として AZURE_CLIENT_ID と入力します。

  3. [値] に、前に作成した Prod Microsoft Entra アプリのクライアント ID (appId) ($PROD_AZURE_CLIENT_ID 環境変数として保存) を入力します。

  4. [Add secret](シークレットの追加) を選択します。

次に、この環境の必須のレビュー担当者として自分を設定します。 Prod へのデプロイを試みるときに、GitHub Actions は、開始する前に承認を待機します。 ジョブが承認を待っている間、ジョブの 状態は [待機中] になります。 30 日以内に承認されないジョブは、自動的に失敗します。

環境と必要な承認の詳細については、「デプロイに環境を使用する」を参照してください

  1. [必要なレビュー担当者] を選択します。

  2. GitHub ユーザーを検索して選択します。 最大 6 人または 6 チームを入力できます。 ジョブが進行するため承認が必要なレビュー担当者は1人だけです。

  3. [保護ルールの保存 (Save protection rules)] を選択します。

最後に、デプロイ ブランチとして構成 main します。

  1. [デプロイ ブランチ] ドロップダウンで、[選択されたブランチ] を選択します。

  2. [デプロイ ブランチ ルールの追加] を選択し、ブランチ名パターン入力mainします。

  3. [規則の追加] を選択します。

7. CI/CD パイプラインをテストする

このセクションでは、リポジトリにいくつかの変更を加え、CI/CD パイプラインをテストします。

7.1 リポジトリを複製する

  1. ターミナルで、cd を実行して、リポジトリをローカルに複製する先のフォルダーに移動します。

  2. リポジトリを複製します。 次のコマンドの < Organization/Repository > を GitHub 組織とリポジトリの名前に置き換えてください。

    git clone https://github.com/< Organization/Repository >.git
    
  3. クローンされたディレクトリに移動します。

    cd <repository>
    
  4. 次に、新しいブランチを作成し、それをリモートに公開します。

    git checkout -b feature1
    
    git push -u origin feature1
    

    このブランチに固有の新しい環境が Azure に作成されます。

  5. GitHub で、新しく作成したリポジトリの メイン ページに移動します。

  6. リポジトリ名の下で、 [アクション] を選択します。

    新しい [環境の作成] ワークフローが実行されていることがわかります。

7.2 コードに変更を加える

  1. VS Code で、ローカルに複製されたリポジトリを開きます。

  2. ADE 内。Tutorial フォルダー。ファイルに変更を加えます。

  3. 変更を保存します。

7.3 変更をプッシュして環境を更新する

  1. 変更をステージングし、feature1 ブランチにプッシュします。

    git add .
    git commit -m '<commit message>'
    git push
    
  2. リポジトリの [アクション] ページで、新しい [環境の更新] ワークフローが実行されていることがわかります。

7.4 pull request を作成する

  1. GitHub pull request main <- feature1を作成します。

  2. リポジトリの [アクション] ページで、テスト環境の種類を使用して pull request に固有の環境を作成するための新しいワークフローが開始されていることがわかります。

7.5 pull request をマージする

  1. GitHub で、作成した pull request に移動します。

  2. pull request をマージします。

    変更が運用環境に公開され、ブランチと pull request 環境が削除されます。

リソースをクリーンアップする

作成したどのリソースも使用する予定がない場合は、追加の課金が発生しないように削除します。 別のリソース グループにサンプル アプリケーションをデプロイした場合は、次の手順を繰り返します。

Azure portal を使用してリソースを削除するには、次のようにします。

  1. 左上隅にあるメニュー ボタンを選択して、[リソース グループ] を選択します。

  2. 一覧から、作成したリソース グループを選択します。

  3. [リソース グループの削除] を選択します。

  4. リソース グループ名を入力します。 次に、 [削除] を選択します。

Azure CLI を使用してリソースを削除するには、次のコマンドを入力します。

az group delete --name <my-dev-center-rg>

リソース グループを削除すると、そのグループに含まれるすべてのリソースが削除されるので注意してください。