Microsoft Power Platform 開發可用的 GitHub Actions
以下部分介紹了 GitHub Actions Microsoft Power Platform 。 此外,也會顯示 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-id 和 client-secret 驗證認證時的租用戶識別碼。 |
解決方案工作
這些工作會對解決方案執行動作,包括下列各項。
匯入解決方案
將解決方案匯入至目標環境。
參數 | 描述 |
---|---|
環境 URL | (必要) 您想要將解決方案匯入的目標環境 URL (例如 https://YourOrg.crm.dynamics.com )。 |
使用者名稱 | (必要) 如果您使用的是使用者名稱/密碼驗證,用來連線的帳戶使用者名稱。 |
密碼秘密 | (必要) 如果您使用的是使用者名稱/密碼驗證,用來連接的帳戶密碼。 |
解決方案檔案 | (必要) 您要匯入之解決方案檔案的路徑與名稱。 |
應用程式識別碼 | 用於驗證的應用程式識別碼。 使用服務主體認證進行驗證時需要此參數。 |
用戶端密碼 | 用於驗證 GitHub 管線的用戶端密碼。 使用服務主體認證進行驗證時需要此參數。 |
租用戶識別碼 | 使用 app-id 和 client-secret 驗證認證時的租用戶識別碼。 |
匯出解決方案
從來源環境中匯出解決方案。
參數 | 描述 |
---|---|
環境 URL | (必要) 您想要將解決方案匯出的目標環境 URL (例如:https://YourOrg.crm.dynamics.com )。 |
使用者名稱 | (必要) 如果您使用的是使用者名稱/密碼驗證,用來連線的帳戶使用者名稱。 |
密碼秘密 | (必要)如果您使用的是使用者名稱/密碼驗證,user-name的密碼。 GitHub 密碼在 秘密 下的 設定 定義。 您無法在定義並儲存密碼之後,再擷取密碼。 |
應用程式識別碼 | 用於驗證的應用程式識別碼。 使用服務主體認證進行驗證時需要此參數。 |
用戶端密碼 | 用於驗證 GitHub 管線的用戶端密碼。 使用服務主體認證進行驗證時需要此參數。 |
租用戶識別碼 | 使用 app-id 和 client-secret 驗證認證時的租用戶識別碼。 |
解決方案名稱 | (必要) 要匯出的解決方案名稱。 請務必使用解決方案的名稱,而不是顯示名稱。 |
解決方案輸出檔案 | (必要) 預計匯出來源環境的解決方案 .zip 檔案路徑和名稱。 |
已管理的 | (必要) 設定為 是以匯出為受管理的解決方案;預設值 (否) 會匯出為未受管理的解解決方案。 |
解除封裝解決方案
取出壓縮的解決方案檔案並將其解壓縮為多個 XML 檔案,方便原始控制系統更容易讀取和管理。
參數 | 描述 |
---|---|
解決方案檔案 | (必要) 要解除封裝的 solution.zip 檔案的路徑及檔案名稱。 |
解決方案資料夾 | (必要) 要將解決方案解除封裝到的路徑及目標檔案夾。 |
解決方案類型 | (必要) 要解除封裝的解決方案類型。 選項包括:未受管理 (建議)、受管理和同時。 |
封裝解決方案
將原始檔控制所表示的解決方案封裝成可匯入至其他環境的 solution.zip 檔案。
參數 | 描述 |
---|---|
解決方案檔案 | (必要)要將解決方案壓縮,solution.zip 的檔案路徑和檔案名稱 (例如,out/CI/ALMLab .zip)。 |
解決方案資料夾 | (必要) 要封裝的解決方案的路徑及來源資料夾。 |
解決方案類型 | (可選) 要壓縮的解決方案類型。 選項包括:未受管理 (建議)、受管理和同時。 |
發行解決方案
發行解決方案自訂。
參數 | 描述 |
---|---|
環境 URL | (必要) 您想發行解決方案的環境 URL (例如 https://YourOrg.crm.dynamics.com )。 |
使用者名稱 | (必要) 如果您使用的是使用者名稱/密碼驗證,用來連線的帳戶使用者名稱。 |
密碼秘密 | (必要) 如果您使用的是使用者名稱/密碼驗證,用來連接的帳戶密碼。 |
解決方案檔案 | (必要) 您要匯入之解決方案檔案的路徑與名稱。 |
應用程式識別碼 | 用於驗證的應用程式識別碼。 使用服務主體認證進行驗證時需要此參數。 |
用戶端密碼 | 用於驗證 GitHub 管線的用戶端密碼。 使用服務主體認證進行驗證時需要此參數。 |
租用戶識別碼 | 使用 app-id 和 client-secret 驗證認證時的租用戶識別碼。 |
複製解決方案
複製指定環境的解決方案。
參數 | 描述 |
---|---|
環境 URL | (必要) 您想要從中複製解決方案的環境 URL (例如:https://YourOrg.crm.dynamics.com )。 |
使用者名稱 | (必要) 如果您使用的是使用者名稱/密碼驗證,用來連線的帳戶使用者名稱。 |
密碼秘密 | (必要) 如果您使用的是使用者名稱/密碼驗證,用來連接的帳戶密碼。 |
解決方案檔案 | (必要) 您要匯入之解決方案檔案的路徑與名稱。 |
應用程式識別碼 | 用於驗證的應用程式識別碼。 使用服務主體認證進行驗證時需要此參數。 |
用戶端密碼 | 用於驗證 GitHub 管線的用戶端密碼。 使用服務主體認證進行驗證時需要此參數。 |
租用戶識別碼 | 使用 app-id 和 client-secret 驗證認證時的租用戶識別碼。 |
解決方案名稱 | (必要) 複製所需的 solution.zip 檔案的路徑和名稱 (例如 out/CI/ALMLab.zip)。 |
解決方案版本 | 要複製解決方案的版本。 |
目標資料夾 | 要放入擷取解決方案的目標資料夾。 (例如 Git 存放庫\target-solution-folder)。 |
工作目錄 | 用於複製解決方案所需之進行中成品的暫存資料夾。 預設: root of the repository |
檢查程式解決方案
檢查解決方案檔案以偵測不一致。
參數 | 描述 |
---|---|
環境 URL | (必要) 您想要從中複製解決方案的環境 URL (例如:https://YourOrg.crm.dynamics.com )。 |
使用者名稱 | (必要) 如果您使用的是使用者名稱/密碼驗證,用來連線的帳戶使用者名稱。 |
密碼秘密 | (必要) 如果您使用的是使用者名稱/密碼驗證,用來連接的帳戶密碼。 |
應用程式識別碼 | 用於驗證的應用程式識別碼。 使用服務主體認證進行驗證時需要此參數。 |
用戶端密碼 | 用於驗證 GitHub 管線的用戶端密碼。 使用服務主體認證進行驗證時需要此參數。 |
租用戶識別碼 | 使用 app-id 和 client-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-id 和 client-secret 驗證認證時的租用戶識別碼。 |
解決方案名稱 | (必要) 要升級之解決方案的名稱。 |
非同步 | 以非同步方式升級解決方案。 |
最大非同步等候時間 | 最大非同步等待時間 (分鐘)。 預設值為 60 分鐘。 |
封裝工作
這些工作會針對套件執行動作,包括下列各項。
部署套件
提供部署套件 dll 或 zip 檔案的能力。
Note
只有 Windows 才支援此動作。
參數 | 描述 |
---|---|
環境 URL | (必要) 您想要從中複製解決方案的環境 URL (例如:https://YourOrg.crm.dynamics.com )。 |
使用者名稱 | (必要) 如果您使用的是使用者名稱/密碼驗證,用來連線的帳戶使用者名稱。 |
密碼秘密 | (必要) 如果您使用的是使用者名稱/密碼驗證,用來連接的帳戶密碼。 |
應用程式識別碼 | 用於驗證的應用程式識別碼。 使用服務主體認證進行驗證時需要此參數。 |
用戶端密碼 | 用於驗證 GitHub 管線的用戶端密碼。 使用服務主體認證進行驗證時需要此參數。 |
租用戶識別碼 | 使用 app-id 和 client-secret 驗證認證時的租用戶識別碼。 |
套件 | (必要) 套件 dll 或包含套件之 zip 檔案的路徑。 |
入口網站工作
這些工作會針對 Power Pages 執行以下動作。
upload-paportal
上傳資料至 Power Pages。
參數 | 描述 |
---|---|
環境 URL | (必要) 您想匯入解決方案的環境 URL (例如 https://YourOrg.crm.dynamics.com )。 |
應用程式識別碼 | 用於驗證的應用程式識別碼。 使用服務主體認證進行驗證時需要此參數。 |
用戶端密碼 | 用於驗證 GitHub 管線的用戶端密碼。 使用服務主體認證進行驗證時需要此參數。 |
租用戶識別碼 | 使用 app-id 和 client-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 動作