Microsoft Power Platform 開發可用的 GitHub Actions

Microsoft Power Platform 的 GitHub 動作將於以下各節中描述。 此外,也會顯示 GitHub 工作流程範例。 如需 GitHub 動作以及如何下載的詳細資訊,請前往 Microsoft Power Platform 的 Github 動作

設定認證,以與 Microsoft Power Platform 的 GitHub 動作搭配使用

許多動作都需要您連接到 Microsoft Dataverse 環境。 您可以在 GitHub 存放庫中將服務主體或使用者認證新增為密碼,然後將它們用於工作流程中。

  • 如需如何在 GitHub 中設定機密的詳細資訊,請參閱加密密碼

  • 如需設定 Microsoft Power Platform 服務主體驗證的詳細資訊,請參閱 DevOps 組建工具

設定之後,您就可以從動作指令碼中呼叫服務主體。

要在 GitHub 動作指令碼中定義為 環境變數的參數:

  • 應用程式識別碼,例如:WF_APPLICATION_ID:<your application id>
  • 租用戶識別碼,例如:WF_TENANT_ID:<your tenant 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 Tools 工作新增為工作流程中的第一個工作,然後再新增任何其他適用於 Power Platform 的 GitHub Actions。
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'

您可以在 Power Platform Actions 上找到 GitHub Actions 的其他範例。

whoAmI

藉由連接服務及傳送 WhoAmI [SDK/Web API] 要求核驗服務連接。 及早將這項工作加入 GitHub 工作流程會非常有用,可在程序開始之前確認連線性。

參數 描述
環境 URL 連線中環境 URL。
使用者名稱 用來連線的帳戶使用者名稱。
密碼秘密 user-name 的密碼。 GitHub 密碼在 秘密 下的 設定 定義。 您無法在定義並儲存密碼之後,再擷取密碼。
應用程式識別碼 用於驗證的應用程式識別碼。 使用服務主體認證進行驗證時需要此參數。
用戶端密碼 用於驗證 GitHub 管線的用戶端密碼。 使用服務主體認證進行驗證時需要此參數。
租用戶識別碼 使用 app-idclient-secret 驗證認證時的租用戶識別碼。

解決方案工作

這些工作會對解決方案執行動作,包括下列各項。

匯入解決方案

將解決方案匯入至目標環境。

參數 描述
環境 URL (必要) 您想要將解決方案匯入的目標環境 URL (例如 https://YourOrg.crm.dynamics.com)。
使用者名稱 (必要) 如果您使用的是使用者名稱/密碼驗證,用來連線的帳戶使用者名稱。
密碼秘密 (必要) 如果您使用的是使用者名稱/密碼驗證,用來連接的帳戶密碼。
解決方案檔案 (必要) 您要匯入之解決方案檔案的路徑與名稱。
應用程式識別碼 用於驗證的應用程式識別碼。 使用服務主體認證進行驗證時需要此參數。
用戶端密碼 用於驗證 GitHub 管線的用戶端密碼。 使用服務主體認證進行驗證時需要此參數。
租用戶識別碼 使用 app-idclient-secret 驗證認證時的租用戶識別碼。

匯出解決方案

從來源環境中匯出解決方案。

參數 描述
環境 URL (必要) 您想要將解決方案匯出的目標環境 URL (例如:https://YourOrg.crm.dynamics.com)。
使用者名稱 (必要) 如果您使用的是使用者名稱/密碼驗證,用來連線的帳戶使用者名稱。
密碼秘密 (必要)如果您使用的是使用者名稱/密碼驗證,user-name的密碼。 GitHub 密碼在 秘密 下的 設定 定義。 您無法在定義並儲存密碼之後,再擷取密碼。
應用程式識別碼 用於驗證的應用程式識別碼。 使用服務主體認證進行驗證時需要此參數。
用戶端密碼 用於驗證 GitHub 管線的用戶端密碼。 使用服務主體認證進行驗證時需要此參數。
租用戶識別碼 使用 app-idclient-secret 驗證認證時的租用戶識別碼。
解決方案名稱 (必要) 要匯出的解決方案名稱。 請務必使用解決方案的名稱,而不是顯示名稱
解決方案輸出檔案 (必要) 預計匯出來源環境的解決方案 .zip 檔案路徑和名稱。
已管理的 (必要) 設定為 以匯出為受管理的解決方案;預設值 () 會匯出為未受管理的解解決方案。

解除封裝解決方案

取出壓縮的解決方案檔案並將其解壓縮為多個 XML 檔案,方便原始控制系統更容易讀取和管理。

參數 描述
解決方案檔案 (必要) 要解除封裝的 solution.zip 檔案的路徑及檔案名稱。
解決方案資料夾 (必要) 要將解決方案解除封裝到的路徑及目標檔案夾。
解決方案類型 (必要) 要解除封裝的解決方案類型。 選項包括:未受管理 (建議)、受管理同時

封裝解決方案

將原始檔控制所表示的解決方案封裝成可匯入至其他環境的 solution.zip 檔案。

參數 描述
解決方案檔案 (必要)要將解決方案壓縮,solution.zip 的檔案路徑和檔案名稱 (例如,out/CI/ALMLab .zip)。
解決方案資料夾 (必要) 要封裝的解決方案的路徑及來源資料夾。
解決方案類型 (可選) 要壓縮的解決方案類型。 選項包括:未受管理 (建議)、受管理同時

發行解決方案

發行解決方案自訂。

參數 描述
環境 URL (必要) 您想發行解決方案的環境 URL (例如 https://YourOrg.crm.dynamics.com)。
使用者名稱 (必要) 如果您使用的是使用者名稱/密碼驗證,用來連線的帳戶使用者名稱。
密碼秘密 (必要) 如果您使用的是使用者名稱/密碼驗證,用來連接的帳戶密碼。
解決方案檔案 (必要) 您要匯入之解決方案檔案的路徑與名稱。
應用程式識別碼 用於驗證的應用程式識別碼。 使用服務主體認證進行驗證時需要此參數。
用戶端密碼 用於驗證 GitHub 管線的用戶端密碼。 使用服務主體認證進行驗證時需要此參數。
租用戶識別碼 使用 app-idclient-secret 驗證認證時的租用戶識別碼。

複製解決方案

複製指定環境的解決方案。

參數 描述
環境 URL (必要) 您想要從中複製解決方案的環境 URL (例如:https://YourOrg.crm.dynamics.com)。
使用者名稱 (必要) 如果您使用的是使用者名稱/密碼驗證,用來連線的帳戶使用者名稱。
密碼秘密 (必要) 如果您使用的是使用者名稱/密碼驗證,用來連接的帳戶密碼。
解決方案檔案 (必要) 您要匯入之解決方案檔案的路徑與名稱。
應用程式識別碼 用於驗證的應用程式識別碼。 使用服務主體認證進行驗證時需要此參數。
用戶端密碼 用於驗證 GitHub 管線的用戶端密碼。 使用服務主體認證進行驗證時需要此參數。
租用戶識別碼 使用 app-idclient-secret 驗證認證時的租用戶識別碼。
解決方案名稱 (必要) 複製所需的 solution.zip 檔案的路徑和名稱 (例如 out/CI/ALMLab.zip)。
解決方案版本 要複製解決方案的版本。
目標資料夾 要放入擷取解決方案的目標資料夾。 (例如 Git 存放庫\target-solution-folder)。
工作目錄 用於複製解決方案所需之進行中成品的暫存資料夾。
預設:root of the repository

檢查程式解決方案

檢查解決方案檔案以偵測不一致。

參數 描述
環境 URL (必要) 您想要從中複製解決方案的環境 URL (例如:https://YourOrg.crm.dynamics.com)。
使用者名稱 (必要) 如果您使用的是使用者名稱/密碼驗證,用來連線的帳戶使用者名稱。
密碼秘密 (必要) 如果您使用的是使用者名稱/密碼驗證,用來連接的帳戶密碼。
應用程式識別碼 用於驗證的應用程式識別碼。 使用服務主體認證進行驗證時需要此參數。
用戶端密碼 用於驗證 GitHub 管線的用戶端密碼。 使用服務主體認證進行驗證時需要此參數。
租用戶識別碼 使用 app-idclient-secret 驗證認證時的租用戶識別碼。
path (必要) 您要檢查之解決方案檔案的路徑與名稱。
地區 使用哪一個 Microsoft Power Platform 檢查器服務的地理位置。 預設值為「美國」。
規則層級覆寫 包含規則及其層級的 JSON 陣列的檔案路徑。 接受的值包括:重大、高、低和資訊。 範例:[{"Id":"meta-remove-dup-reg","OverrideLevel":"Medium"},{"Id":"il-avoid-specialized-update-ops","OverrideLevel":"Medium"}]。
檢查程式記錄成品名稱 將上傳 Microsoft Power Platform 檢查程式記錄的成品資料夾名稱。 預設值為 'CheckSolutionLogs'。

升級解決方案

提供升級解決方案的能力。

參數 描述
環境 URL (必要) 您想要從中複製解決方案的環境 URL (例如:https://YourOrg.crm.dynamics.com)。
使用者名稱 (必要) 如果您使用的是使用者名稱/密碼驗證,用來連線的帳戶使用者名稱。
密碼秘密 (必要) 如果您使用的是使用者名稱/密碼驗證,用來連接的帳戶密碼。
解決方案檔案 (必要) 您要匯入之解決方案檔案的路徑與名稱。
應用程式識別碼 用於驗證的應用程式識別碼。 使用服務主體認證進行驗證時需要此參數。
用戶端密碼 用於驗證 GitHub 管線的用戶端密碼。 使用服務主體認證進行驗證時需要此參數。
租用戶識別碼 使用 app-idclient-secret 驗證認證時的租用戶識別碼。
解決方案名稱 (必要) 要升級之解決方案的名稱。
非同步 以非同步方式升級解決方案。
最大非同步等候時間 最大非同步等待時間 (分鐘)。 預設值為 60 分鐘。

封裝工作

這些工作會針對套件執行動作,包括下列各項。

部署套件

提供部署套件 dll 或 zip 檔案的能力。

Note

只有 Windows 才支援此動作。

參數 描述
環境 URL (必要) 您想要從中複製解決方案的環境 URL (例如:https://YourOrg.crm.dynamics.com)。
使用者名稱 (必要) 如果您使用的是使用者名稱/密碼驗證,用來連線的帳戶使用者名稱。
密碼秘密 (必要) 如果您使用的是使用者名稱/密碼驗證,用來連接的帳戶密碼。
應用程式識別碼 用於驗證的應用程式識別碼。 使用服務主體認證進行驗證時需要此參數。
用戶端密碼 用於驗證 GitHub 管線的用戶端密碼。 使用服務主體認證進行驗證時需要此參數。
租用戶識別碼 使用 app-idclient-secret 驗證認證時的租用戶識別碼。
套件 (必要) 套件 dll 或包含套件之 zip 檔案的路徑。

入口網站工作

這些工作會針對 Power Pages 執行以下動作。

upload-paportal

上傳資料至 Power Pages。

參數 描述
環境 URL (必要) 您想匯入解決方案的環境 URL (例如 https://YourOrg.crm.dynamics.com)。
應用程式識別碼 用於驗證的應用程式識別碼。 使用服務主體認證進行驗證時需要此參數。
用戶端密碼 用於驗證 GitHub 管線的用戶端密碼。 使用服務主體認證進行驗證時需要此參數。
租用戶識別碼 使用 app-idclient-secret 驗證認證時的租用戶識別碼。
upload-path 儲存網站內容的路徑 (alias: -p)。
deployment-profile 上傳具有透過 deployment-profiles/[profile-name].deployment.yaml 檔案中設定檔變數定義之環境詳細資料的入口網站資料。
模型版本 指出要上傳的網站資料將使用標準 (1) 還是 增強型資料模型 (2)。 預設值為 「1」。

深入了解 Microsoft Power Platform CLI 對 Power Pages 的支援

目錄工作 (預覽版)

這些工作會對 Power Platform 中的目錄執行動作,包括下列各項。

注意

目前,Power Platform 的目錄工作為預覽版本。

安裝

將 Catalog 項目安裝到目標環境。

參數 描述:
catalog-item-id (必要) 要安裝在目標環境的目錄項目。
target-url (必要) 目錄項目要安裝到的目標環境 URL (例如 "https://YourOrg.crm.dynamics.com")。
設定 (必要) 要執行安裝框架的執行階段套件設定。 字串格式必須為 key=value|key=value
target-version 要安裝的目標版本。 如果保留空白,則會選取已發行的版本。
poll-status 輪詢以檢查要求的狀態。

提交

列出目前 Dataverse 環境 (組織) 中所有已發行的目錄項目。

參數 描述:
path (必要) 目錄提交文件的路徑。
package-zip 套件 zip 檔案的路徑。
solution-zip 解決方案 zip 檔案的路徑。
poll-status 輪詢以檢查要求的狀態。

狀態

取得 Catalog 安裝/提交要求的狀態。

參數 描述:
tracking-id (必要) 要求追蹤識別碼。
type (必要) 要求類型 (值:安裝、提交)

GitHub 工作流程製作

若要瞭解使用 GitHub 動作來撰寫 GitHub 工作流程的詳細資訊,請完成 Microsoft Power Platform 實驗室的 GitHub 動作

更多資訊 關於 GitHub 動作

請參閱

GitHub Actions for Microsoft Power Platform