設定 ALM Accelerator 管線
管線是 ALM Accelerator 的引擎。 它們自動化了 Power Platform 的 ALM 程序。 它們是使用 Azure Pipelines (一種 Azure DevOps 服務) 組建,並儲存在 Azure DevOps 專案中。
四個主要管線用於自動化 ALM 程序:
- Import
- Export
- 删除
- 建置/部署
這些管線設計用於與 ALM Accelerator 畫布應用程式一起使用。 您不需要使用該應用程式,但我們推薦您使用。 該應用提供了用於叫用管線的簡單介面,以及無需瞭解基礎參數即可設定管線的方法。
常見 ALM Accelerator 管線場景
ALM Accelerator 管線和應用程式都有預設設定,可讓您快速開始使用 Power Platform 的 ALM。 管線可以涵蓋許多不同的 ALM 場景,以滿足組織的要求。 以下幾節會介紹一些常見場景,以及如何透過 ALM Accelerator 應用程式中的管線設定、部署設定檔和步驟或直接透過管線來涵蓋這些場景。
在一個專案中安裝管線,在另一個專案中安裝原始程式碼
在 ALM Accelerator 應用程式和部署設定檔中,您可以指定管線專案和來源專案。 安裝精靈中的選項可讓您指定單獨的管線專案和存放庫。 如果要根據使用者、公司結構或其他因素對解決方案的儲存體進行細分,則這些選項非常有用。 在大多數情況下,管線 YAML 檔案儲存在管線專案中,匯出、匯入和刪除管線是在解決方案受原始檔控制的專案中建立。
在沒有 ALM Accelerator 的情況下執行管線
ALM Accelerator 畫布應用程式提供了一個用於執行管線的簡單按鈕層。 但是,您不需要該應用程式來執行它們。 如果您想使用獨立於應用程式的管線,請直接從命令列執行它們。 您也可以組建自己的應用程式。 使用 ALM Accelerator 解決方案中包含的 Azure DevOps API 的自訂連接器,以使用 Power Automate 或其他 Power Platform 技術叫用管線。
無論哪種情況,如果要獨立使用管線,關鍵是要了解傳遞給它們的參數。
管線參數
import-unmanaged-to-dev-environment 的參數: 使用導入解決方案管道將非託管解決方案從原始程式碼控制導入到開發環境。
下表描述了匯入管線的參數。
參數 | 範例 | 描述: |
---|---|---|
專案 | 我的 Azure DevOps 專案 | 要匯入解決方案之專案的名稱 |
存放庫 | 我的 Azure DevOps 存放庫 | 要從中匯入解決方案之存放庫的名稱 |
SolutionName | MySolutionName | 要匯入之解決方案的名稱 |
me@example.com | 匯入解決方案之使用者的電子郵件地址 | |
UserName | 姓氏,名字 | 匯入解決方案之使用者的使用者名稱 |
分行 | main | 組建解決方案並從中匯入的分支 |
ServiceConnectionName | MyServiceConnection | 用於匯入之服務連接的名稱 |
ServiceConnectionUrl | example.crm.dynamics.com | 用於匯入製作者環境的 URL |
EnvironmentName | MyDevEnvironment | 用於尋找部署管線中的部署設定;傳回解決方案來源中設定目錄下的資料夾名稱 |
delete-unmanaged-solution-and-components 的參數: 使用 delete solution 管道從開發環境中刪除非託管解決方案及其所有元件。
下表描述了刪除管線的參數。
參數 | 範例 | 描述: |
---|---|---|
SolutionName | MySolutionName | 要刪除之解決方案的名稱 |
ServiceConnectionName | MyServiceConnection | 要刪除解決方案之服務連接的名稱 |
ServiceConnectionUrl | example.crm.dynamics.com | 要刪除解決方案之製作者環境的 URL |
export-solution-to-git 的參數: 使用導出解決方案管道將解決方案導出到 Git 儲存庫。
下表描述了匯出管線的參數。
參數 | 範例 | 描述: |
---|---|---|
專案 | 我的 Azure DevOps 專案 | 要將解決方案原始程式碼匯出到之專案的名稱 |
存放庫 | 我的 Azure DevOps 存放庫 | 要將解決方案原始程式碼匯出到之存放庫的名稱 |
SolutionName | MySolutionName | 要匯出解決方案的名稱 |
me@example.com | 匯出解決方案之使用者的電子郵件地址 | |
UserName | 姓氏,名字 | 匯出解決方案之使用者的使用者名稱 |
CommitMessage | 修正 #1234 錯誤 | 要儲存在存放庫認可中的變更描述 |
分行 | main | 要從中建立分支的來源分支,或要認可到的現有分支 |
BranchToCreate | feature-1234 | 如有必要,根據 Branch 參數所建立新分支的唯一名稱 |
ServiceConnectionName | MyServiceConnection | 用於匯出解決方案之服務連接的名稱 |
ServiceConnectionUrl | example.crm.dynamics.com | 要匯出的未受管理解決方案所在之製作者環境的 URL |
資料 | [部署設定 JSON] | JSON 字串,包含用於匯出和設定部署管線的部署設定 |
PortalSiteName | MyPortalSite | 與要匯出的解決方案相關聯的 Power Pages 網站名稱 |
使用 ALM Accelerator 管線匯出或部署解決方案時,自訂解決方案的版本設定
根據預設,匯出和部署的解決方案使用部署管線 YAML 檔案中指定的名稱進行版本設定。 但是,ALM Accelerator 管線可讓您在匯出或部署解決方案時,自訂解決方案的版本設定。 以下幾節會說明您可以使用的方法。
匯出版本設定
請使用管線匯出的版本號碼,做為所有部署環境中的版本號碼。 在匯出管線中建立一個名為 UseSolutionVersionFromDataverse 的變數,或者在 ALM Accelerator 的變數庫中建立一個全域變數。 為其指定值 True。 該變數可確保解決方案中匯出的版本號碼保留在下游環境中,並在提交解決方案來源時反映在原始檔控制中。
自訂版本設定邏輯
使用 ALM Accelerator 勾點來設定解決方案的版本。 將自訂邏輯新增至 build-solution-pack-pre-hook.yml
範本,以直接操縱 Solution.xml
或使用其他工具 (如 pac 解決方案版本 )。
自訂 bring-your-own-templates 版本設定
使用自己的範本來產生部署管線的能力,可讓您在初始解決方案匯出期間有足夠的靈活性。 例如,建立 build-deploy-validation/test/prod-SampleSolution.yml
複本,並將組建名稱從預設值變更為根據設定執行或組建編號 的版本設定策略:
build:
- name: 1.0.$(Date:yyyyMMdd)$(Rev:.r)
...
範本就緒後,在部署設定檔中更新部署步驟以指向它們。
自訂管線中的部署步驟數以及目標環境的名稱
與使用範本的自訂版本設定類似,使用自己的範本來產生部署管線的能力在解決方案的初始匯出期間提供了更大的靈活性。 指定範本所在的專案,以及要用來產生部署管線的範本路徑。 專案和路徑的設定位於 ALM Accelerator 管理應用程式「部署設定檔」和「部署步驟」資料表中。
範本的路徑相對於匯出管線位置的根目錄。 例如,預設驗證環境部署管線範本的路徑為 /Pipelines/build-deploy-validation-SampleSolution.yml
。 若要在與匯出管線相同的專案中使用範本,請將路徑指定為 /Pipelines/build-deploy-validation-MyCustomTemplate.yml
。
下表說明了範本中用於產生部署管道時,取代特定解決方案值的預留位置。
預留位置 | 描述: |
---|---|
SampleSolutionName | 要部屬解決方案的名稱 |
RepositoryContainingTheBuildTemplates | 包含用於部署管線之組建範本的存放庫 |
BranchContainingTheBuildTemplates | 包含用於部署管線之組建範本的分支 |
alm-accelerator-variable-group | 組建範本用於部署管線的全域變數群組 |
建議您複製 build-deploy-validation/test/prod-SampleSolution.yml
管線範本以開始使用您自己的自訂範本。
在管線中執行自訂步驟,而無需修改預設範本
ALM Accelerator 管線範本具有多個擴充點 (或勾點),您可以使用它來自訂管線,同時在升級案例中將合併衝突降至最低。 瞭解有關 ALM 加速器挂鉤的更多資訊。
打開或關閉管線中的特定動作
管線會使用變數來確定是否應該執行工作,或者要執行幾個工作。 下表說明您可以為單一管線設定的變數,或是透過 alm-accelerator-variable-group 設定所有管線的變數。
注意
若要在匯出時針對特定解決方案設定這些變數,請根據匯出管線範本建立特定的匯出管線。 將其命名為 export-solution-to-git-{SolutionName}
。 ALM Accelerator 應用程式會將此匯出管線用於解決方案,而不是 general-purpose export-solution-to-git 管線。
變數 | 預設值 | 管線 | 描述: |
---|---|---|---|
GenerateDeploymentSettings | 確判為真 | Export | 如果設為 False,則不會產生部署設定,也不會將其儲存在原始檔控制中。 |
UseDeploymentSettingsPlaceholders | 確判為真 | Export | 如果為 False,則部署設定不會使用預留位置,且部署設定的所有值都會儲存在 deploymentSettings.json 和 customDeploymentSettings.json 檔案中。重要說明:敏感資訊可能以純文本形式保存在部署設置中。 任何有權存取原始檔控制的使用者都可以讀取這些值。 若要為此變數設定值,請務必小心。 |
DisableFlows | 誤判為真 | Export | 如果設為 True,則在認可之前,所有流程都會在解壓縮的原始程式碼中關閉。 |
UseSolutionVersionFromDataverse | 誤判為真 | Export | 如果設為 True,則解決方案中匯出的版本號碼會保留在下游環境中。 認可解決方案來源後,版本號碼會反映在原始檔控制中。 |
DoNotExportCurrentEnvironmentVariableValues | 誤判為真 | Export | 如果設為 True,則會從解壓縮後的解決方案來原始程式碼移除目前環境的變數值。 |
PublishCustomizationsBeforeExport | 確判為真 | Export | 如果設為 False,則在匯出解決方案之前並不會發佈自訂內容。 如果您正在共用環境中工作,且只想要匯出最新發佈的自訂內容,此選項就非常有用。 |
CacheEnabled | 確判為真 | 匯出/部署 | 如果設為 False,則會停用 PowerShell 模組的緩存。 如果管線在管線執行之後執行快取目錄的清理,則此選項就非常有用。 |
ProcessCanvasApps | 確判為真 | 匯出/部署 | 如果設為 false,則畫布應用程式不會在匯出期間解壓縮,或在組建期間壓縮。 注意: 畫布解包和打包功能目前處於預覽版 階段。 目前不建議用於生產環境。 但是,除非您將此變數設定為 True,否則無法在原始檔控制中查看畫布原始程式碼。 |
DisableSolutionChecker | 誤判為真 | 部署 | 如果設為 true,則解決方案檢查程式不會在透過提取要求啟動的每個組建上執行。 |
SkipSolutionImport | 誤判為真 | 部署 | 如果為 True,則部署期間會略過解決方案匯入步驟。 但是,其他活動 (例如串流啟動和共用) 仍在執行。 |