以下章節將介紹 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。