チュートリアル: Microsoft Power Platform 向けに GitHub Actions を使用してソリューションのデプロイを自動化する

このチュートリアルでは、以下の方法について説明します。

  • 新しい GitHub レポジトリの作成
  • Microsoft Power Platform用 GitHub Actions を使用して、2 つの GitHub ワークフローの作成

ワークフローを使用して、開発環境からアプリを (アンマネージド ソリューションとして) 自動的にエクスポートし、アーティファクト (管理ソリューション) を構築して、アプリを運用環境にデプロイできます。 このチュートリアルでは、前回のチュートリアルで構築した ALMLab ソリューション と環境を使用します。

関連チュートリアル: 開始する、および モデル駆動型アプリの構築

GitHub アカウントの作成

  1. https://github.com に移動して サインアップ または 無料トライアルを開始する をクリックします (既存のアカウントをお持ちの場合はログイン)。

    アカウントを作成する

  2. アカウントを作成したら、リポジトリを作成する または 新規 を選択してリポジトリを作成します。

    リポジトリを作成する

    次の代替ランディング画面が表示される場合があります。

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

  3. 新しいリポジトリを作成し、「poweractionslab」 という名前を付けます。 必ず README ファイルを追加するを選択し、リポジトリを起動してリポジトリを作成するを選択します。

    リポジトリを起動する。

サービス プリンシパル認証の新しいシークレットの作成

  1. リポジトリに移動して設定をクリックし、シークレットを展開した後、アクションをクリックします。

  2. シークレット ページで、シークレットに「PowerPlatformSPN」という名前を付けます。 Microsoft Entra で作成したアプリケーション登録からクライアント シークレットを使用して、フィールドに入力し、シークレットの追加を選択します。 クライアント シークレットは、このラボの後半で GitHub ワークフローの定義に使用される YML ファイルで参照されます。

    サービス プリンシパル シークレットを作成する

    クライアント シークレットが GitHub シークレットとして安全に保存されるようになりました 。

ソリューション ファイルを新しいブランチにエクスポートして解凍するワークフローを作成します

  1. アクションをクリックし、ワークフローを自分でセットアップするをクリックするか、またはこのリポジトリに提案セクションの下にあるシンプルなワークフロー ボックスの構成をクリックします。

    ワークフローの設定。

  2. これにより、基本的なワークフローの新しい YAML ファイルが作成され、GitHub Actions を始めやすくなります。

    YML ファイルのサンプル

  3. 事前に作成されたコンテンツを削除し、export-and-branch-solution-with-spn-auth.yml ファイルからコンテンツを貼り付け、ファイルの名前を 「export-and-branch-solution」.yml に変更します。

    コンテンツの名前を変更して置換する。

  4. 使用したいエクスポート元の開発環境 URL で <ENVIRONMENTURL> を更新します (例: https://poweractionsdev.crm.dynamics.com)。

  5. <APPID><TENANT ID> を自分の値を使用して更新します。

    • 資格情報を使用している場合、export-and-branch-solution-with-spn-auth.yml ファイルの内容の代わりに export-and-branch-solution.yml ファイルを貼り付けます。 <USERNAME> を環境への接続に使用しているユーザー名で更新します。

      コンテンツの名前を変更して置換する

    チップ

    GitHub Actions に慣れていない場合、詳細は、https://docs.github.com/en/actions の公式ドキュメントを確認してください。

  6. これで、変更をコミットする準備が整いました。 コミットを開始を選択して、タイトル フィールドでエクスポート yml を作成と入力し、説明 (オプション) を追加します。 次に、新しいファイルをコミットする をクリックします。

    コミットを開始。

次のアクションを使用して、最初の GitHub ワークフローを作成することに成功しました。

  • 接続の確認: エクスポート元の環境に正常に接続できることを確認します。
  • ソリューションのエクスポート: 開発環境からソリューション ファイルをエクスポートします。
  • ソリューションを凍結: サーバーからエクスポートされるソリューション ファイルは、統合された構成ファイルを含む圧縮 (zip) ファイルです。 ソース コード管理システムがファイルの差分を適切に判断し、ソース管理にコミットする変更をキャプチャできるように構成されていません。そのため、これらの初期ファイルはソース コード管理には適していません。 ソリューション ファイルをソース管理で保存や処理を実行するには、ソリューション ファイルを 「解凍」 する必要があります。
  • ブランチ ソリューション: エクスポートされたソリューションを保存するための新しいブランチを作成します。

エクスポートを確認し、ワークフローを凍結します

  1. 次に、ワークフローが実行できることを確認します。 アクションワークフローの実行 の順に移動し、ワークフローの実行 を選択します。 「ALMLab」以外のソリューション名を使用している場合は、ここで値を変更しますが、他の値はそのままにしておきます。

    ワークフローを実行します。

  2. 5 秒から 10 秒後にワークフローが開始され、実行中のワークフローを選択して進行状況を監視できます。

    クリックしてワークフローを表示します。

    ワークフローを表示して選択。

  3. ワークフローが完了したら、ソリューション フォルダーまたは ALMLab フォルダーに解凍されたソリューションを使用して新しいブランチが作成されたことを確認します。 コード タブに移動しブランチ ドロップダウンを展開します

  4. アクションが作成したブランチを選択します。

  5. 新しいブランチにソリューション フォルダーまたは ALMLab フォルダーが作成されていることを確認してから、プル要求を作成して変更をメイン ブランチにマージします。 共同作成者をクリックし、ポップアップで プル要求を開く をクリックします

  6. プル要求を開く画面で、必要に応じてタイトルと説明を追加してから、プル要求を作成するをクリックします。

  7. 画面が更新され、新しく作成されたプル要求が表示されます。 プル要求が作成されると、ブランチがメイン ブランチと競合していないことを示す確認が表示されます。 この確認は、メイン ブランチに変更を自動的にマージできることを意味します。 プル要求をマージするをクリックし、マージを確認するをクリックします。 オプションとして、ブランチの削除をクリックして、現在は無効なブランチをクリーンアップします。

    ブランチの表示

  8. メイン ブランチに戻り、ソリューションが既定の (メイン) ブランチでも利用できるようになったことを確認します。

再利用可能なワークフローを作成して、ビルド成果物を生成し、本番環境にインポートします

このセクションでは、次を実行する他のワークフローを作成します。

  • 管理ソリューションを作成し、GitHub 成果物として公開する
  • ビルド成果物を運用環境にインポートする
  1. アクション へ移動してから 新しいワークフロー を選択します。

    ワークフローを新規作成する。

  2. 自分でワークフローを設定する を選択しました。

    ワークフローの設定。

  3. ワークフローのタイトルの名前を「release-solution-to-prod-with-inputs」に変更してから、release-solution-to-prod-with-inputs.yml ファイルのコンテンツをコピーし、それを新しいファイルの編集画面に貼り付けます。

    コードの名前を変更して貼り付ける。

  4. 変更をコミットします。 コミットを開始するを選択してからタイトルと説明を追加します (オプション)。 次に、新しいファイルをコミットするを選択します。

    変更をコミットします。

リリース イベントで再利用可能なワークフローを呼び出す

このセクションでは、リリース イベントで再利用可能なワークフローを呼び出します。

  1. アクション へ移動してから 新しいワークフロー を選択します。

    ワークフローを新規作成する。

  2. ワークフローを自分でセットアップするを選択します。

    ワークフローの設定。

  3. ワークフローのタイトルの名前を「release-action-call」に変更してから、release-action-call.yml ファイルのコンテンツをコピーし、それを 新しいファイルの編集 画面に貼り付けます。

    コードの名前を変更して貼り付ける。

  4. 新しいワークフロー ファイルで次の変数を更新します。

  5. 変更をコミットします。 コミットを開始するを選択してからタイトル (オプション) と説明 (オプション) を追加します。 次に、新しいファイルをコミットするを選択します。

    変更をコミットします。

リリースから運用ワークフローへのテスト

これで、最後のワークフローをテストする準備が整いました。 このワークフローは、新しいリリースが運用環境にデプロイされたときにトリガーされます。

  1. リリースへ移動します。

    リリースへ移動。

  2. 新しいリリースを下書きするを選択します。

  3. リリース タグとタイトルを追加して、リリースを公開するを選択します。

  4. アクションを選択して実行中のワークフローを表示します。

    選択してワークフローを表示する。

  5. 実行中のワークフローを選択して、実行しているアクションを表示します。

    ワークフローを表示する。

  6. 各アクションの完了を待機します。

    ブランチの表示。

  7. ワークフローが完了したら、運用環境にログインし、ソリューションが管理ソリューションとしてデプロイされていることを確認します。

更新をデプロイし、運用リリースの前に変更を確認します

次に、エンドツーエンド プロセスをテストしてから、アプリを運用環境にデプロイする前に、アプリへの変更を表示および検証する方法を確認します。

  1. 開発環境の ALMLab ソリューションに移動し、編集を選択するか、またはソリューションの表示名をクリックします。

    ソリューションを編集。

  2. 休暇申請テーブルを選択し、表示します。

    テーブルの表示。

  3. + 列を追加するをクリックし、次の図に示すように新しい列を作成します。

    列を追加します。

    更新されたフィールド名:**

    • 表示名: 承認済み
    • データの種類: はい/いいえ
  4. 終了をクリックします。

  5. テーブルの保存列を追加します。をクリックします

  6. GitHub リポジトリのアクション タブに戻り、ワークフローを実行するを選択し、ワークフローを実行するボタンを選択します。

    ワークフローの実行。

  7. 5 秒から 10 秒後にワークフローが開始され、実行中のワークフローをクリックして進行状況を監視できます。

    ワークフローを選択する。

    ワークフローを表示します。

  8. ワークフローが完了したら、コードブランチ の順に選択して新しいブランチに移動します。

    ブランチへ移動する。

  9. 展開共同作成によって作成されたブランチを選択し、プル要求を開くをクリックします。

  10. タイトル (オプション) を追加し、プル要求を作成するをクリックします。

  11. コンテンツが更新された後、変更済みのファイル タブをクリックします。

  12. ソリューションへの変更が緑色で強調表示されているのは、メイン ブランチにある同じファイルと比較したときに、ファイルのこのセクションが追加されたことを示しています。

  13. 会話タブに戻ります。プル要求を選択し、以前に作成したプル要求を選択します。

  14. プル要求ページでスカッシュ マージを選択して、更新されたソリューション ファイルをメイン ブランチにマージし、オプションでとしてメインにマージされたものを削除します。

    新しいブランチのプル要求を開き、変更を表示して既定のブランチにマージする

  15. リリースから運用ワークフローのテスト セクションにある手順に従い、新しいリリースを作成し、更新されたソリューションが使用している運用環境にデプロイされていることを検証します。

GitHub アクションを使用して、CI ワークフローまたは CD ワークフロー (サンプル) を正常にセットアップしました。

関連情報

アイデアから運用までのワークフローを自動化する