Microsoft Power Platform 開發可用的 GitHub Actions

以下章節將介紹 Microsoft Power Platform 的 GitHub Actions。 這些章節也展示了 GitHub 工作流程範例。 欲了解更多關於 GitHub Actions 及其下載方式,請參閱 Microsoft Power Platform 的 GitHub Actions。

設定可與 GitHub Actions 搭配使用的 Microsoft Power Platform 認證

許多動作都需要您連接到 Microsoft Dataverse 環境。 在你的 GitHub 倉庫中將服務主體或使用者憑證作為 Secrets,然後在工作流程中使用它們。

  • 關於如何在 GitHub 中設定祕密的詳細資訊,請參閱已加密的祕密。

  • 關於如何為 Microsoft Power Platform 設定服務主體認證的詳細資訊,請參閱 DevOps Build 工具。

設定好憑證後,你可以在 Action 腳本中呼叫服務主體。

在你的 GitHub Actions 指令碼中將以下參數定義為環境變數:

  • 應用程式識別碼,例如: WF_APPLICATION_ID:<your application id>
  • 租戶識別,例如: WF_TENANT_ID:<your tenant id>

將 client secret 新增為 GitHub secret。 在工作流程中,使用類似以下參數來參考: client secret: ${{secrets.CLIENT_SECRET_GITHUB_ACTIONS}}

輔助工作

以下的協助工作可使用。

actions-install

當GitHub Actions工作流程強制在執行器情境下安裝 Power Platform CLI 並發生逾時錯誤時,請使用 version 1(@v1)並附加額外動作(actions-install),如以下範例所示。

重要

  • 使用版本 1 (@v1) 可能會導致現有 GitHub Actions 的更新,從而使目前的工作流程一併更新。
  • 在工作流程中,將安裝 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 工作流程中,有助於在處理開始前驗證連線性。

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

解決方案任務

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

匯入解決方案

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

參數 描述
environment-url (必要) 您想要將解決方案匯入其中的目標環境 URL (例如 https://YourOrg.crm.dynamics.com)。
使用者名稱 (必要) 如果您使用使用者名稱/密碼驗證,請輸入用於連線帳戶的使用者名稱。
password-secret (必要) 如果您使用使用者名稱/密碼驗證,請輸入用於連線帳戶的密碼。
方案檔案 (必要) 您要匯入之解決方案檔案的路徑與名稱。
應用程式識別碼 用於驗證的應用程式識別碼。 使用服務主體認證進行驗證時,此參數為必填。
用戶端密鑰 用於驗證 GitHub 管線的用戶端密鑰。 使用服務主體認證進行驗證時,此參數為必要。
tenant-id 使用 app-id 和 client-secret 進行驗證時的租用戶識別碼。

匯出解決方案

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

參數 描述
環境-網址 (必要) 您要從中匯出解決方案的環境 URL (例如:https://YourOrg.crm.dynamics.com)。
使用者名稱 (必要) 如果您使用使用者名稱/密碼驗證,請輸入用於連線之帳戶的使用者名稱。
密碼密鑰 (必要)如果您使用的是使用者名稱/密碼驗證,請輸入 user-name 的密碼。 在設定的密碼設定中定義 GitHub 密碼。 你無法在定義並儲存秘密後再取回它。
app-id 用於驗證的應用程式識別碼。 使用服務主體認證進行驗證時,此參數為必要。
用戶端密鑰 用於驗證 GitHub 管線的用戶端密鑰。 使用服務主體認證進行驗證時,此參數為必填。
租用戶識別碼 使用 app-id 和 client-secret 驗證時的租用戶識別碼。
solution-name (必要) 要匯出的解決方案名稱。 請務必使用解決方案的名稱,而不是顯示名稱。
解決方案輸出檔案 (必要) 要匯出來源環境至的 solution.zip 檔案路徑和名稱。
Managed (必要) 設定為 true 以匯出為受管理的解決方案;預設值 (false) 會匯出為未受管理的解解決方案。

解壓縮方案

將壓縮好的解決方案檔案分解成多個 XML 檔案。 你可以更輕鬆地在原始碼控制系統中讀取和管理這些檔案。

參數 描述
方案檔 (必要) 要解除封裝的 solution.zip 檔案的路徑及檔案名稱。
解決方案資料夾 (必填)你想要解包方案的路徑和目標資料夾。
解決方案類型 (必要) 您要解壓縮的解決方案類型。 選項包括:未管理 (建議)、受管理和兩者。

pack-solution

它會將儲存在原始碼控制中的解決方案打包成可匯入其他環境的 solution.zip 檔案。

參數 描述
方案檔 (必要)solution.zip 檔案的路徑與檔案名稱,以將方案打包到其中(例如,out/CI/ALMLab.zip)。
解決方案資料夾 (必要) 要封裝的解決方案的路徑及來源資料夾。
解決方案類型 (可選) 要封裝的解決方案類型。 選項包括:非受控 (建議)、受控和兩者。

發佈解決方案

發佈解決方案自訂項目。

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

複製方案

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

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

檢查方案

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

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

upgrade-solution

升級此解決方案。

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

套件工作

這些任務會對套件執行動作。

部署套件

部署一個套件 DLL 或一個包含套件的 ZIP 檔案。

注意

此動作僅支援 Windows。

參數 描述
environment-url (必要) 您想要從中複製解決方案的環境 URL (例如:https://YourOrg.crm.dynamics.com)。
使用者名稱 (必要) 如果您使用的是使用者名稱/密碼驗證,請輸入用來連線的帳戶使用者名稱。
password-secret (必填)如果您使用使用者名稱/密碼驗證,請輸入用來連線的帳戶密碼。
應用程式識別碼 用於驗證身分的應用程式識別碼。 使用服務主體認證進行驗證時需要此參數。
用戶端密鑰 用於驗證 GitHub 管線的用戶端密鑰。 使用服務主體認證進行驗證時,此參數為必要。
tenant-id 使用 app-id 和 client-secret 驗證認證時的租用戶識別碼。
套件 (必填)包含套件的 DLL 或 ZIP 檔案路徑。

Portal 工作

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

upload-paportal

上傳資料至 Power Pages。

參數 描述
environment-url (必要) 您要將解決方案匯入其中的環境 URL (例如 https://YourOrg.crm.dynamics.com)。
應用程式識別碼 用於驗證的應用程式識別碼。 使用服務主體認證進行驗證時需要此參數。
用戶端密鑰 這是用於驗證 GitHub 管線的用戶端密鑰。 使用服務主體認證進行驗證時,此參數為必要。
租戶識別碼 使用 app-id 和 client-secret 進行驗證時的租用戶 ID。
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 (必填)目錄項目安裝的目標環境網址(例如,https://YourOrg.crm.dynamics.com)。
設定 (必要) 供安裝框架執行的執行階段套件設定。 字串格式必須為 key=value|key=value。
target-version 要安裝的目標版本。 如果你沒有指定版本,就會選擇已發佈版本。
poll-status 輪詢以檢查您的請求狀態。

提交

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

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

狀態

查詢目錄安裝作業狀態或提交請求。

參數 描述
tracking-id (必要) 要求追蹤識別碼。
型別 (必填)請求類型。 有效值為 Install 和 Submit。

GitHub 工作流程撰寫

想了解如何使用 GitHub Actions 撰寫 GitHub 工作流程,請完成 Microsoft Power Platform 的 GitHub Actions 實驗室。

欲了解更多資訊,請參閱關於 GitHub Actions。

另請參閱

適用於 Microsoft Power Platform 的 GitHub Actions