教學課程:使用 Microsoft Power Platform 的 GitHub 動作來自動化解決方案部署
在本教學課程中,您將了解如何:
- 建立新的 GitHub 存放庫
- 使用 Microsoft Power Platform GitHub 操作建立兩個 GitHub 工作流程
工作流程可以從開發環境自動匯出應用程式 (作為非受管理的解決方案)、生成組建專案 (受管理的解決方案),並將應用程式部署至生產環境中。 本教學課程會使用您組建的 ALMLab 解決方案,以及您在先前教程中設定的環境。
相關教學課程:新手入門,並組建模型驅動的應用程式。
建立 GitHub 帳戶
前往 https://github.com 並按下註冊或開始免費教學課程 (如果您有現有帳戶,請登入)。
建立帳戶後,透過選擇建立存放庫或新項目。
您可能會看到以下替代登陸畫面:
建立新存放庫,並命名為「poweractionslab」。 請確保選擇新增一個唯讀檔案以啟動存放庫,並選擇建立存放庫。
為服務主體驗證建立新的密碼
導航到您的存儲庫並按下 Settings (設置),然後展開 Secrets(金鑰),然後按兩下 Actions(操作)。
在密碼頁面上,將密碼命名為「PowerPlatformSPN」。 從在 Microsoft Entra 建立的應用程式註冊中使用用戶端密碼,並將其輸入數值欄位,然後選取新增密碼。 在此實驗室中,用來定義 GitHub 工作流程的 YML 檔案中將會參考用戶端密碼。
現在,用戶端密碼會安全地儲存為 GitHub 密碼。
建立工作流程以將解決方案檔匯出並解壓縮到新分支
按一下動作,然後按一下自行設定工作流程或按一下建議用於此存放庫區段下的簡易工作流程方塊中的 [設定]。
這將啟動一個全新的 YAML 檔案,並配有基本工作流程,可説明您開始使用 GitHub 動作。
若要刪除先前建立的內容,請貼上 export-and-branch-solution-with-spn-auth.yml 檔案中的內容,然後將文件重新命名為 'export-and-branch-solution'.yml。
使用要從中匯出開發環境的 URL 更新
<ENVIRONMENTURL>
(例如:https://poweractionsdev.crm.dynamics.com
)。使用值來更新
<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 查看官方文件。
現在您可以提交變更了。 選擇 Start commit,在標題欄位中輸入Create export yml,然後新增說明 (可選)。 接下來,點選提交新檔案。
恭喜,您已經使用以下操作建立了第一個 GitHub 工作流程:
- 我是誰:確保您可以成功連線到要從中匯出環境。
- Export Solution:從開發環境匯出解決方案檔。
- 解壓縮解決方案:從伺服器導出的解決方案檔是包含合併配置檔的壓縮 (zip) 檔案。 這些初始檔不適合原始碼管理,因為它們的結構不是使原始程式碼管理系統能夠對文件正確執行不同的操作並擷取要提交到原始程式碼管理的更改。 您需要「拆封」解決方案檔案,使其適合原始碼管理儲存和處理。
- Branch Solution:創建一個新分支來存儲導出的解決方案。
測試匯出和拆封工作流程
接下來,測試工作流程執行。 前往動作、執行工作流程並選擇執行工作流程。 如果您的解決方案名稱與 [ALMLab] 不同,則請在此變更值,但讓其他值保留。
5~10 秒後工作流程將開始,您可以選擇正在運行的工作流程來監視進度。
工作流程完成後,驗證已建立新分支,將解決方案解壓縮到解決方案/ALMLab 資料夾中。 導航到 Code 選項卡 並 展開 branches 下拉清單。
選擇由動作建立的分支。
驗證已在新分支中建立了解決方案/ALMLab 資料夾,然後建立提取要求,將變更合併至主要分支中。 按兩下 Contribute (貢獻 ),然後在浮出控件 中按下 Open Pull request(打開拉取請求)。
在打開提取要求畫面上,視需要新增標題和描述,然後按一下建立提取要求。
畫面將會更新,顯示最新的提取要求。 當提取要求建立時,會提供確認,表明分支與主要分支沒有衝突。 此確認代表變更可以自動合併至主要分支。 按兩下 Merge pull request (合併拉取請求),然後按下 Confirm merge ( 確認合併)。 或者,按一下 [刪除分支] 以清除現已解除功能的分支。
回到預設 (主要) 分支,並驗證解決方案現在也可在中使用。
建立可重用的工作流程,以產生組建成品並匯入到生產中
在本節中,我們將建立其他工作流程,其中:
- 建立受管理的解決方案,並將它發行為 GitHub 成品
- 將組件成品匯入生產環境
瀏覽動作並選取新增工作流程。
已選擇自行設定工作流程。
將工作流程的標題重新命名為「release-solution-to-prod-with-inputs」,並複製 release-solution-to-prod-with-inputs.yml 檔案中的內容,在把它貼上到編輯新檔案畫面。
認可變更。 選擇開始認可,然後新增標題和說明 (選用)。 接下來,選擇提交新檔案。
在發行事件上呼叫可重複使用的工作流程
在本節中,我們將在發行事件上呼叫可重複使用的工作流程。
瀏覽動作並選取新增工作流程。
選擇自行設定工作流程。
將工作流程的標題重新命名為「release-action-call」,並複製 release-action-call.yml 檔案中的內容,在把它貼上到編輯新檔案畫面。
在新工作流程檔案中,更新下列變數:
- 更新為
<BUILD_ENVIRONMENT>
您用來生成受管理的解決方案的生成環境 URL。 例如:https://poweractionsbuild.crm.dynamics.com
。 - 更新為
<PROD_ENVIRONMENT>
您要部署至的實際執行環境 URL。 例如:https://poweractionsprod.crm.dynamics.com。 - 使用應用程式 (用戶端) 識別碼更新
<APP_ID>
,按一下本教學課程之前建立的註冊,即可在 Microsoft Azure 入口網站的應用程式註冊刀鋒視窗中找到該識別碼。 - 使用目錄 (租用戶) 識別碼更新
<TENANT_ID>
,按一下本教學課程之前建立的註冊,即可在 Microsoft Azure 入口網站的應用程式註冊刀鋒視窗中找到該識別碼。
- 更新為
認可變更。 選擇開始認可,然後新增標題 (選用) 和說明 (選用)。 接下來,選擇提交新檔案。
測試發行至生產工作流程
您現在已準備好測試上次工作流程。 將新版本部署到生產時,會觸發此工作流程。
瀏覽至版本。
選取草擬新版本。
新增版本標籤、標題,然後選擇發行版本。
選取動作以查看正在執行的工作流程。
選擇執行的工作流程,在執行期間查看動作。
等待各個動作完成。
工作流程完成後,請登入您的生產環境,並驗證該解決方案是否已部署為受管理的解決方案。
在生產版發行之前,部署更新和審查變更
我們現在將測試端對端程式,然後查看如何在將應用程式部署到生產環境之前,查看和驗證該應用程式的變更。
瀏覽至開發環境中的 ALMLab 解決方案,然後選擇編輯或按一下解決方案顯示名稱。
選取並查看休假要求資料表。
按一下 + 新增資料行,然後建立新資料行,如下圖所示。
更新的 Field 值:**
- 顯示名稱:已批准
- 數據類型:是/否
按一下完成。
按一下儲存資料表
移至 GitHub 存放庫動作索引標籤,選擇執行工作流程,然後選取執行工作流程按鈕。
5-10 秒後,工作流程將開始,您可以點選正在執行的工作流程以監視其進度。
工作流程完成後,選擇代碼然後選擇分支,前往新分支。
選取展開參與所建立的分支,然後按一下打開提取要求。
新增標題 (選用),然後按一下建立提取要求。
在內容更新後,按一下已變更檔案索引標籤。
請注意,解決方案的變更以綠色強調顯示,方便與主分支中的同一檔案相比,檔案的此部分已新增。
回到交談索引標籤。選取提取要求,然後選取先前建立的提取要求。
在提取要求頁面上,選取壓縮及合併,將更新後的解決方案檔案合併至您的主要分支,可以選擇刪除現在合併到主要分支中的文件。
請按照測試發佈到生產的工作流程部分中的步驟建立一個新版本,並驗證將已更新的解決方案部署到您的生產環境中。
恭喜,您已經使用 GitHub 操作成功設定了範例 CI/CD 工作流程!