使用可能な Microsoft Power Platform 開発用 GitHub Actions
Microsoft Power Platform 用 GitHub Actions については、次のセクションで説明します。 また、サンプルの GitHub ワークフローについても説明します。 GitHub アクションとそのダウンロード方法の詳細については、Microsoft Power Platform の GitHub アクション をご覧ください。
Microsoft Power Platform で GitHub Actions で使用する認証情報を構成する
アクションの多くは、Microsoft Dataverse 環境に接続する必要があります。 サービス プリンシパルまたはユーザー認証情報をシークレットとして GitHub リポジトリに追加し、ワークフローで使用できます。
GitHub でシークレットを設定する方法の詳細については、暗号化されたシークレット を参照してください
Microsoft Power Platform のサービス プリンシパル認証を設定する方法の詳細については、DevOps ビルド ツール を参照してください
構成が完了すると、アクション スクリプト内からサービス プリンシパルを呼び出すことができます。
GitHub Action スクリプト内で環境変数 として定義するパラメーター:
WF_APPLICATION_ID:<your application id>
などのアプリケーション IDWF_TENANT_ID:<your tenant id>
などのテナント ID
クライアント シークレットは GitHub シークレットとして追加および保存する必要があり、次のようなパラメーターを使用してワークフロー内から参照されます: client secret: ${{secrets.CLIENT_SECRET_GITHUB_ACTIONS}}
ヘルパー タスク
使用可能なヘルパー タスクを以下に示します。
actions-install
GitHub Actions ワークフローでランナーのコンテキストに Power Platform CLI のインストールを強制し、タイムアウトエラーが発生した場合は、以下のようにバージョン 1 (@v1) にアクション (actions-install
) を追加して使用する必要があります。
重要
- バージョン1 (@v1) を使用すると、既存の GitHub アクションが更新され、現在のワークフローが更新される可能性があります。
- Power Platform 用 GitHub Actions のワークフローの最初のタスクとして Power Platform Tools のインストール を追加する必要があります。
jobs:
builds:
runs-on: windows-latest # alternate runner OS is: ubuntu-latest
steps:
- name: Install Power Platform Tools
uses: microsoft/powerplatform-actions/actions-install@v1
- name: Export Solution
uses: microsoft/powerplatform-actions/export-solution@v1
with:
environment-url: 'https://myenv.crm.dynamics.com'
user-name: 'me@myenv.onmicrosoft.com'
password-secret: ${{ secrets.MYPASSWORD }}
solution-name: aSolution
solution-output-file: 'aSolution.zip'
working-directory: 'out'
GitHub Actions のサンプルは Power Platform Actions にもあります。
whoAmI
サービスに接続して WhoAmI
SDK/Web API リクエストを送信することにより、サービス接続を確認します。 このタスクは、処理を開始する前に接続を確認するために、GitHub ワークフローの初期段階で含めると便利です。
パラメーター | 内容 |
---|---|
environment-url | 接続している環境の URL。 |
user-name | 接続に使用しているアカウントのユーザー名。 |
password-secret | ユーザー名 のパスワード。 GitHub のパスワードは、設定のシークレットで定義されています。 シークレットを定義して保存した後で、シークレットを取得できません。 |
app-id | 認証に使用するアプリケーション ID。 このパラメータは、サービス プリンシパルの認証情報を使用して認証する場合に 必須 です。 |
client-secret | GitHub パイプラインの認証に使用されるクライアント シークレット。 このパラメータは、サービス プリンシパルの認証情報を使用して認証する場合に 必須 です。 |
tenant-id | app-id と client-secret を使用した認証時のテナント ID。 |
ソリューション タスク
これらのタスクでは、ソリューションに対してアクションを実行し、以下のタスクが含まれます:
import-solution
ソリューションをターゲット環境にインポートします。
パラメーター | 内容 |
---|---|
environment-url | (必須) ソリューションをインポートするターゲット環境の URL (たとえば、https://YourOrg.crm.dynamics.com )。 |
user-name | (必須) ユーザー名/パスワード認証を使用している場合は、接続に使用しているアカウントのユーザー名。 |
password-secret | (必須) ユーザー名/パスワード認証を使用している場合は、接続に使用しているアカウントのパスワード。 |
solution-file | (必須) インポートするソリューション ファイルのパスと名前。 |
app-id | 認証に使用するアプリケーション ID。 このパラメータは、サービス プリンシパルの認証情報を使用して認証する場合に 必須 です。 |
client-secret | GitHub パイプラインの認証に使用されるクライアント シークレット。 このパラメータは、サービス プリンシパルの認証情報を使用して認証する場合に 必須 です。 |
tenant-id | app-id と client-secret を使用した認証時のテナント ID。 |
export-solution
ソース環境からソリューションをエクスポートします。
パラメーター | 内容 |
---|---|
environment-url | (必須) ソリューションのエクスポート元となる環境の URL (たとえば、https://YourOrg.crm.dynamics.com )。 |
user-name | (必須) ユーザー名/パスワード認証を使用している場合は、接続に使用しているアカウントのユーザー名。 |
password-secret | (必須) ユーザー名/パスワード認証を使用している場合、ユーザー名。 GitHub のパスワードは、設定のシークレットで定義されています。 シークレットを定義して保存した後で、シークレットを取得できません。 |
app-id | 認証に使用するアプリケーション ID。 このパラメータは、サービス プリンシパルの認証情報を使用して認証する場合に 必須 です。 |
client-secret | GitHub パイプラインの認証に使用されるクライアント シークレット。 このパラメータは、サービス プリンシパルの認証情報を使用して認証する場合に 必須 です。 |
tenant-id | app-id と client-secret を使用した認証時のテナント ID。 |
solution-name | (必須) エクスポートを行うソリューションの名称。 常にソリューションの 表示名 ではなく、名前 を使用してください。 |
solution-output-file | (必須) ソース環境をエクスポートする solution.zip ファイルのパスと名前。 |
managed | (必須) 管理ソリューションとしてエクスポートを true に設定します。アンマネージド ソリューションとしてエクスポートするは、規定 (false) です。 |
unpack-solution
圧縮されたソリューション ファイルを取得し、それを複数の XML ファイルに分解して、これらのファイルをソース コントロール システムでより簡単に読み取り管理できるようにします。
パラメーター | 内容 |
---|---|
solution-file | (必須) 解凍をする solution.zip ファイルのパスと名称を指定します。 |
solution-folder | (必須) ソリューションの展開を行う対象フォルダとパス。 |
solution-type | (必須) 解凍するソリューションの種類。 オプションには、アンマネージド (推奨)、管理、両方 があります。 |
pack-solution
ソース コントロールに表示されているソリューションを solution.zip へと圧縮すると、このファイルを、他の環境へとインポートすることができます。
パラメーター | 内容 |
---|---|
solution-file | (必須) ソリューションをパックする solution.zip ファイルのパスとファイル名 (たとえば、out/CI/ALMLab.zip)。 |
solution-folder | (必須) 圧縮をするソリューションのパスとソース フォルダー。 |
solution-type | (オプション) パックするソリューションのタイプ。 オプションには、アンマネージド (推奨)、管理、両方 があります。 |
publish-solution
ソリューションのカスタマイズを公開します。
パラメーター | 内容 |
---|---|
environment-url | (必須) ソリューションを公開する環境の URL (たとえば、https://YourOrg.crm.dynamics.com )。 |
user-name | (必須) ユーザー名/パスワード認証を使用している場合は、接続に使用しているアカウントのユーザー名。 |
password-secret | (必須) ユーザー名/パスワード認証を使用している場合は、接続に使用しているアカウントのパスワード。 |
solution-file | (必須) インポートするソリューション ファイルのパスと名前。 |
app-id | 認証に使用するアプリケーション ID。 このパラメータは、サービス プリンシパルの認証情報を使用して認証する場合に 必須 です。 |
client-secret | GitHub パイプラインの認証に使用されるクライアント シークレット。 このパラメータは、サービス プリンシパルの認証情報を使用して認証する場合に 必須 です。 |
tenant-id | app-id と client-secret を使用した認証時のテナント ID。 |
clone-solution
指定した環境のソリューションを複製します。
パラメーター | 内容 |
---|---|
environment-url | (必須) ソリューションの複製元となる環境の URL (たとえば、https://YourOrg.crm.dynamics.com )。 |
user-name | (必須) ユーザー名/パスワード認証を使用している場合は、接続に使用しているアカウントのユーザー名。 |
password-secret | (必須) ユーザー名/パスワード認証を使用している場合は、接続に使用しているアカウントのパスワード。 |
solution-file | (必須) インポートするソリューション ファイルのパスと名前。 |
app-id | 認証に使用するアプリケーション ID。 このパラメータは、サービス プリンシパルの認証情報を使用して認証する場合に 必須 です。 |
client-secret | GitHub パイプラインの認証に使用されるクライアント シークレット。 このパラメータは、サービス プリンシパルの認証情報を使用して認証する場合に 必須 です。 |
tenant-id | app-id と client-secret を使用した認証時のテナント ID。 |
solution-name | (必須) 複製に必要な solution.zip ファイルのパスと名前 (たとえば、out/CI/ALMLab.zip)。 |
solution-version | 複製するソリューションのバージョン。 |
target-folder | 抽出したソリューションを配置するターゲット フォルダー。 (たとえば、Git repository\target-solution-folder)。 |
Working-directory | ソリューションの複製に必要な進行中のアーティファクト用一時フォルダー。 既定: root of the repository |
check-solution
ソリューション ファイルをチェックして、不整合を検出します。
パラメーター | 内容 |
---|---|
environment-url | (必須) ソリューションの複製元となる環境の URL (たとえば、https://YourOrg.crm.dynamics.com )。 |
user-name | (必須) ユーザー名/パスワード認証を使用している場合は、接続に使用しているアカウントのユーザー名。 |
password-secret | (必須) ユーザー名/パスワード認証を使用している場合は、接続に使用しているアカウントのパスワード。 |
app-id | 認証に使用するアプリケーション ID。 このパラメータは、サービス プリンシパルの認証情報を使用して認証する場合に 必須 です。 |
client-secret | GitHub パイプラインの認証に使用されるクライアント シークレット。 このパラメータは、サービス プリンシパルの認証情報を使用して認証する場合に 必須 です。 |
tenant-id | app-id と client-secret を使用した認証時のテナント ID。 |
path | (必須) チェックするソリューション ファイルのパスと名前。 |
geo | 使用する Microsoft Power Platform チェッカー サービスの物理的場所。 既定値は、'united states' です。 |
rule-level-override | ルールとそのレベルの JSON 配列を含むファイルへのパス。 指定できる値は、Critical、High、Low、Informational です。 例: [{"Id":"meta-remove-dup-reg","OverrideLevel":"Medium"},{"Id":"il-avoid-specialized-update-ops","OverrideLevel":"Medium"}] |
checker-logs-artifact-name | Microsoft Power Platform チェッカー ログがアップロードされるアーティファクト フォルダーの名前。 既定値は 'CheckSolutionLogs' です。 |
upgrade-solution
ソリューションをアップグレードできます。
パラメーター | 内容 |
---|---|
environment-url | (必須) ソリューションの複製元となる環境の URL (たとえば、https://YourOrg.crm.dynamics.com )。 |
user-name | (必須) ユーザー名/パスワード認証を使用している場合は、接続に使用しているアカウントのユーザー名。 |
password-secret | (必須) ユーザー名/パスワード認証を使用している場合は、接続に使用しているアカウントのパスワード。 |
solution-file | (必須) インポートするソリューション ファイルのパスと名前。 |
app-id | 認証に使用するアプリケーション ID。 このパラメータは、サービス プリンシパルの認証情報を使用して認証する場合に 必須 です。 |
client-secret | GitHub パイプラインの認証に使用されるクライアント シークレット。 このパラメータは、サービス プリンシパルの認証情報を使用して認証する場合に 必須 です。 |
tenant-id | app-id と client-secret を使用した認証時のテナント ID。 |
solution-name | (必須) アップグレードするソリューションの名前。 |
非同期 | ソリューションを非同期にアップグレードします。 |
max-async-wait-time | 分単位での最大非同期待機時間。 既定値は 60 分です。 |
パッケージ タスク
これらのタスクはパッケージに対してアクションを実行し、次のものが含まれます。
deploy-package
パッケージの dll やパッケージ付き zip ファイルを展開できます。
Note
このアクションは、Windows でのみサポートされています。
パラメーター | 説明設定 |
---|---|
environment-url | (必須) ソリューションの複製元となる環境の URL (たとえば、https://YourOrg.crm.dynamics.com )。 |
user-name | (必須) ユーザー名/パスワード認証を使用している場合は、接続に使用しているアカウントのユーザー名。 |
password-secret | (必須) ユーザー名/パスワード認証を使用している場合は、接続に使用しているアカウントのパスワード。 |
app-id | 認証に使用するアプリケーション ID。 このパラメータは、サービス プリンシパルの認証情報を使用して認証する場合に 必須 です。 |
client-secret | GitHub パイプラインの認証に使用されるクライアント シークレット。 このパラメータは、サービス プリンシパルの認証情報を使用して認証する場合に 必須 です。 |
tenant-id | app-id と client-secret を使用した認証時のテナント ID。 |
パッケージ | (必須) パッケージの dll やパッケージ付きの zip ファイルへのパス。 |
ポータル タスク
これらのタスクは、Power Pages に対して次のアクションを実行します。
upload-paportal
データを Power Pages にアップロードします。
パラメーター | 説明設定 |
---|---|
environment-url | (必須) ソリューションをインポートする環境の URL (たとえば、https://YourOrg.crm.dynamics.com )。 |
app-id | 認証に使用するアプリケーション ID。 このパラメータは、サービス プリンシパルの認証情報を使用して認証する場合に 必須 です。 |
client-secret | GitHub パイプラインの認証に使用されるクライアント シークレット。 このパラメータは、サービス プリンシパルの認証情報を使用して認証する場合に 必須 です。 |
tenant-id | app-id と client-secret を使用した認証時のテナント ID。 |
アップロード - パス | Web サイトのコンテンツを保存するパス (エイリアス: -p)。 |
deployment-profile | deployment-profiles/[profile-name].deployment.yaml ファイルのプロファイル変数 を介して定義された環境詳細でポータル データをアップロードします。 |
モデル バージョン | アップロードするサイト データが標準 (1 ) を使用するか、拡張データ モデル (2 ) を使用するかを示します。 既定値は「1」です。 |
Power Pages 向けの Microsoft Power Platform CLI サポート。
タスクのカタログ (プレビュー)
これらのタスクでは、Power Platform のカタログに対してアクションを実行し、以下のタスクが含まれます。
注意
現在、Power Platform のカタログ タスクが プレビュー リリースされています。
install
ターゲット環境に Catalog の項目をインストールします。
パラメーター | Description |
---|---|
catalog-item-id | (必須) ターゲット環境にインストールされるカタログ アイテム。 |
target-url | (必須) カタログ アイテムをインストールするターゲット環境の URL (例: "https://YourOrg.crm.dynamics.com")。 |
設定 | (必須) 実行するインストール フレームワークのランタイム パッケージの設定。 文字列の式は key=value|key=value になります。 |
target-version | インストールするターゲット バージョン。 空のままにすると、公開されたバージョンが選択されます。 |
poll-status | ポールを使って、要求の状態を確認することができます。 |
submit
現在の Dataverse 環境 (組織) から公開されたすべてのカタログ項目をリストアップします。
パラメーター | Description |
---|---|
パス | (必須) カタログ提出ドキュメントへのパス。 |
package-zip | パッケージ zip ファイルへのパス。 |
solution-zip | ソリューション zip ファイルへのパス。 |
poll-status | 要求の状態を確認するためにポーリングします。 |
ステータス
Catalog のインストール/要求の送信の状態を取得します。
パラメーター | Description |
---|---|
tracking-id | (必須) 追跡 ID の要求。 |
タイプ | (必須) 要求のタイプ (値: インストール、送信) |
GitHub ワークフロー作成
GitHub アクションを使用して GitHub ワークフローを構成する方法については、Microsoft Power Platform 用 GitHub Actions ラボ を修了してください。
詳細情報: GitHub アクションについて