教學:透過使用 GitHub Actions for Microsoft Power Platform 自動化解決方案部署

在這個教學中,你會學到如何:

  • 建立新的 GitHub 存放庫
  • 使用 GitHub Actions for Microsoft Power Platform 建立兩個GitHub工作流程

工作流程可以從開發環境自動匯出應用程式 (作為非受管理的解決方案)、生成建置成品 (受管理的解決方案),並將應用程式部署至生產環境中。 本教學課程會使用您組建的 ALMLab 解決方案,以及您在先前教程中設定的環境。

相關教學課程:新手入門,並組建模型驅動的應用程式。

建立一個 GitHub 帳號

  1. 請前往 https://github.com 選擇 註冊 或 開始免費試用 (或如果你已有帳號,請登入)。

    建立帳戶

  2. 建立帳號後,請選擇 建立儲存庫 或 新建 來建立儲存庫。

    建立存放庫

    您可能會看到以下替代登入畫面:

    建立新存放庫

  3. 建立你的新儲存庫並命名為 poweractionslab。 請選擇 新增 README 檔案 以啟動儲存庫,並選擇 建立儲存庫。

    啟動存放庫。

為服務主體驗證建立新的密鑰

  1. 移至您的存放庫,然後選取 [ 設定]。 展開 Secrets,然後選取 操作。

  2. 在 祕密 頁面,請將祕密命名為 PowerPlatformSPN。 在 Microsoft Entra 中建立的應用程式註冊中,將客戶端密碼輸入到 Value 欄位,然後選擇 新增秘密。 你會在本教學稍後,於定義 GitHub 工作流程的 YML 檔案中引用 client secret。

    建立服務主體密碼

    現在,用戶端密碼會安全地儲存為 GitHub secret。

建立工作流程以將方案檔案匯出並解壓縮到新分支

  1. 選擇「動作」,然後選擇「自己設定工作流程」。 或者,在「建議此儲存庫」區塊的簡單工作流程框中選擇配置。

    設定工作流程。

  2. 你會看到一個新的 YAML 檔案,裡面有基本工作流程,幫助你開始使用 GitHub Actions。

    範例 YML 檔案

  3. 刪除預先建立的內容,然後將 export-and-branch-solution-with-spn-auth.yml 檔案中的內容貼上。 將檔案重新命名為 export-and-branch-solution.yml.

    重新命名並取代內容。

  4. 將 <ENVIRONMENTURL> 更新為您要從中匯出之開發環境的 URL (例如:https://poweractionsdev.crm.dynamics.com)。

  5. 使用您的值更新 <APPID> 和 <TENANT ID>。

    • 如果你用憑證,請貼上 export-and-branch-solution.yml 檔案內容,而不是 export-and-branch-solution-with-spn-auth.yml 檔案內容。 將 <USERNAME> 更新為你用來連接該環境的使用者名稱。

      重新命名和取代內容

    提示

    如果你不熟悉 GitHub Actions,想了解更多,請參考 https://docs.github.com/en/actions 的官方文件。

  6. 你現在已準備好提交變更。 選擇 Start commit,在標題欄位中輸入Create export yml,然後新增說明 (可選)。 接下來,選擇提交新檔案。

    開始提交。

恭喜你,透過以下操作建立了你的第一個 GitHub 工作流程:

  • Who Am I:確保你能成功連接到想要輸出的環境。
  • 匯出解決方案:從開發環境匯出解決方案檔。
  • 解包方案:伺服器匯出的方案檔案是一個壓縮(zip)檔案,並整合了設定檔。 這些初始檔案不適合用於原始碼管理,因為其結構方式使原始碼管理系統難以正確地對檔案進行差異比對並擷取你想提交給原始碼控制的變更。 你需要將方案檔案解包,使其適合用於原始碼控制的儲存與處理。
  • 分支方案:建立一個新分支來儲存匯出的方案。

測試匯出和解包工作流程

  1. 接下來,測試工作流程是否會執行。 到 動作,選擇 執行工作流程,然後選擇 執行工作流程。 如果您使用的解決方案名稱與 ALMLab 不同,請在此更改值,但其他值則保持不變。

    執行工作流程。

  2. 5到10秒後,工作流程開始。 你可以選擇正在運行的工作流程來監控進度。

    按一下檢視工作流程。

    選擇並檢視工作流程。

  3. 工作流程結束後,檢查是否建立了新的分支,並將解決方案解包到 solutions/ALMLab 資料夾中。 到 程式碼 標籤 並 展開 分支 下拉選單。

  4. 選擇該動作所建立的分支。

  5. 檢查新分支中是否已建立 solutions/ALMLab 資料夾。 接著,建立一個 Pull Request,將變更合併到主分支。 選擇 「貢獻 」,在飛出視窗中 選擇 「開啟拉取請求」。

  6. 在 「開啟拉取請求」 畫面,如果你願意,可以新增標題和描述,然後 選擇 「建立拉取請求」。

  7. 畫面更新顯示新的提取要求。 當你建立 pull request 時,你會得到確認你的分支與主分支沒有衝突。 這個確認表示你可以自動將變更合併到主分支。 選擇 合併提取要求,然後 選擇 確認合併。 可選擇刪除分支以移除已失效的分支。

    檢視分支

  8. 回到預設(主)分支,檢查解決方案是否可用。

建立可重複使用的工作流程,以產生建置成品並匯入到正式環境

在本節中,建立一個額外的工作流程:

  • 建立受管理的解決方案,並將它發佈為 GitHub Artifact
  • 將建置成品匯入生產環境
  1. 到 操作 區,選擇 新工作流程。

    建立新的工作流程。

  2. 選擇 自己建立工作流程。

    設定工作流程。

  3. 將工作流程的標題改為 release-solution-to-prod-with-inputs。 從 release-solution-to-prod-with-inputs.yml 檔案複製內容,貼到 編輯新檔案 畫面。

    重新命名並貼上程式碼。

  4. 提交變更。 選擇開始提交,然後新增標題和說明 (選用)。 接下來,選擇提交新檔案。

    提交變更。

在發行事件上呼叫可重複使用的工作流程

在這個區段,你會在 發佈事件時呼叫可重用的工作流程。

  1. 到 操作 區,選擇 新工作流程。

    建立新的工作流程。

  2. 選擇自行設定工作流程。

    設定工作流程。

  3. 將工作流程的標題改為 release-action-call。 從 release-action-call.yml 檔案複製內容,貼到 編輯新檔案 畫面。

    重新命名並貼上程式碼。

  4. 在新工作流程檔案中,更新下列變數:

    • 更新 <BUILD_ENVIRONMENT> 為你用來產生受管理解決方案的建置環境的網址。 例如:https://poweractionsbuild.crm.dynamics.com。
    • 將 <PROD_ENVIRONMENT> 更新為你要部署到的生產環境網址。 例如:https://poweractionsprod.crm.dynamics.com。
    • 請使用你在本教學中先前建立的註冊(可在 Microsoft Azure 入口網站 的 應用程式註冊 刀鋒視窗中選取)裡找到的應用程式(用戶端)ID 來更新 <APP_ID>。
    • 請使用你在 Microsoft Azure 入口網站 應用程式註冊 刀片中,選取你在本教學中先前建立的註冊後所找到的目錄(租戶)ID 來更新 <TENANT_ID>。
  5. 提交變更。 選擇開始提交,然後新增標題 (選用) 和說明 (選用)。 接下來,選擇提交新檔案。

    提交變更。

測試發行到正式環境的工作流程

你現在準備好測試最後的工作流程了。 當新版本部署到生產環境時,此工作流程會被觸發。

  1. 前往 Releases。

    瀏覽至版本。

  2. 選取 建立新版本草稿。

  3. 新增版本標籤、標題,然後選擇發行版本。

  4. 選取動作以查看正在執行的工作流程。

    選擇以查看工作流程。

  5. 選擇執行的工作流程,在執行期間查看動作。

    檢視工作流程。

  6. 等待各個動作完成。

    檢視分支。

  7. 工作流程結束後,登入你的生產環境,並驗證該方案是否以受控解決方案部署。

在生產版發行之前,部署更新和審查變更

先測試端對端流程,然後看看如何在部署到生產環境前查看並驗證應用程式的變更。

  1. 在你的開發環境中,進入 ALMLab 解決方案,選擇 編輯 或選擇解決方案的顯示名稱。

    編輯解決方案。

  2. 選取並查看休假要求資料表。

    檢視資料表。

  3. 選擇 + 新增欄位 ,並依照下圖建立新欄位。

    新增資料行。

    已更新的欄位值:**

    • 顯示名稱:已核准
    • 資料類型:是/否
  4. 選取完成。

  5. 選取儲存資料表。 新增資料行。

  6. 回到你的 GitHub 倉庫的Actions分頁,選擇執行工作流程,然後選擇執行工作流程按鈕。

    執行工作流程。

  7. 5到10秒後,工作流程開始。 選擇正在執行的工作流程來監控其進度。

    選擇工作流程。

    檢視工作流程。

  8. 工作流程結束後,選擇程式碼,然後選擇分支,進入新分支。

    前往分支。

  9. 請選擇你所建立的分支,方法是展開contribute並選擇Open pull request。

  10. 新增標題(可選),然後選擇 建立提取要求。

  11. 內容更新後,選擇 「檔案變更」 標籤。

  12. 請注意,解決方案的變更以綠色強調顯示,表示此檔案的這個區段與主分支中的相同檔案相比是新增的。

  13. 回到 對話 標籤。選擇 Pull request ,然後選擇你之前建立的 pull request。

  14. 在 Pull request 頁面,選擇 Squash 並合併 ,將更新的解決方案檔案合併到你的主分支。 可以選擇刪除現在已經合併到主版的項目。

    打開新分支的拉取請求,查看變更並合併至預設分支

  15. 請依照 「測試發布到生產環境」 工作流程的步驟建立新版本,並驗證更新後的解決方案是否已部署到你的生產環境。

恭喜你成功透過 GitHub Actions 建立範例 CI/CD 工作流程!

另請參閱

自動化從構想到正式上線的工作流程