配置 ALM 加速器管道

管道是 ALM 加速器的引擎。 它们可以自动化 Power Platform 的 ALM 流程。 它们是使用 Azure Pipelines(一项 Azure DevOps 服务)构建的,存储在 Azure DevOps 项目中。

四个主要管道用于自动化 ALM 流程:

  • Import
  • Export
  • Delete
  • 生成/部署

这些管道是为与 ALM 加速器画布应用一起使用而设计的。 您不需要使用此应用,但我们建议您使用。 此应用为调用管道提供了一个简单的接口,并提供了一种配置管道的方法,无需了解基础参数

常见 ALM 加速器管道场景

ALM 加速器管道和应用具有允许您快速开始使用 Power Platform 的 ALM 的默认配置, 管道可以覆盖很多不同的 ALM 场景,以满足组织的要求。 以下各节描述了一些常见场景,以及如何通过 ALM 加速器应用中的管道配置、部署配置文件和步骤或直接通过管道来覆盖这些场景。

在一个项目中安装管道,在另一个项目中安装源代码

在 ALM 加速器应用和部署配置文件中,可以指定管道项目和源项目。 设置向导中的一个选项允许您指定单独的管道项目和存储库。 如果您希望根据用户、公司结构或其他因素对解决方案的存储进行细分,这些选项会非常有用。 在大多数情况下,管道 YAML 文件存储在管道项目中,导出、导入和删除管道在解决方案受源代码管理的项目中创建。

在没有 ALM 加速器的情况下运行管道

ALM 加速器画布应用为运行管道提供了一个简单的按钮层。 但是,您不需要通过应用来运行它们。 如果您想要使用独立于应用的管道,可以直接从命令行运行它们。 您还可以构建自己的应用。 使用 ALM 加速器解决方案中包含的 Azure DevOps API 的自定义连接器,使用 Power Automate 或其他 Power Platform 技术调用管道。

不论哪种情况,如果您想要独立使用管道,关键是要了解传递给它们的参数。

管道参数

import-unmanaged-to-dev-environment 的参数:使用导入解决方案管道将非托管解决方案从源代码管理导入开发环境。

下表介绍了导入管道的参数。

参数 示例 说明
集成 我的 Azure DevOps 项目 要将解决方案导入到的项目的名称
存储库 我的 Azure DevOps 存储库 要从其导入解决方案的存储库的名称
SolutionName MySolutionName 要导入的解决方案的名称
Email me@example.com 导入解决方案的用户的电子邮件地址
UserName 姓氏、名字 导入解决方案的用户的用户名
分公司 main 构建解决方案并从其导入的分支
ServiceConnectionName MyServiceConnection 用于导入的服务连接的名称
ServiceConnectionUrl example.crm.dynamics.com 导入的制作者环境的 URL
EnvironmentName MyDevEnvironment 用于查找部署管道中的部署设置;返回解决方案源中配置目录下的文件夹名称

delete-unmanaged-solution-and-components 的参数:使用删除解决方案管道从开发环境中删除非托管解决方案及其所有组件。

下表介绍了删除管道的参数。

参数 示例 说明
SolutionName MySolutionName 要删除的解决方案的名称
ServiceConnectionName MyServiceConnection 用于要删除的解决方案的服务连接的名称
ServiceConnectionUrl example.crm.dynamics.com 要删除的解决方案的制作者环境的 URL

export-solution-to-git 的参数:使用导出解决方案管道将解决方案导出到 Git 存储库。

下表介绍了导出管道的参数。

参数 示例 说明
集成 我的 Azure DevOps 项目 要将解决方案源代码导出到的项目的名称
存储库 我的 Azure DevOps 存储库 要将解决方案源代码导出到的存储库的名称
SolutionName MySolutionName 要导出解决方案的名称
Email me@example.com 导出解决方案的用户的电子邮件地址
UserName 姓氏、名字 导出解决方案的用户的用户名
CommitMessage 修复 #1234 Bug 要在存储库中提交时存储的更改的说明
分公司 main 要从其创建分支的源分支或要提交到的现有分支
BranchToCreate feature-1234 要根据 Branch 参数创建的新分支的唯一名称(如有必要)
ServiceConnectionName MyServiceConnection 用于解决方案导出的服务连接的名称
ServiceConnectionUrl example.crm.dynamics.com 要导出的非托管解决方案所在的制作者环境的 URL
数据​ [部署设置 JSON] 包含用于导出和配置部署管道的部署设置的 JSON 字符串
PortalSiteName MyPortalSite 与要导出的解决方案关联的 Power Pages 网站的名称

使用 ALM 加速器管道导出或部署解决方案时自定义解决方案的版本控制

默认情况下,导出和部署的解决方案使用部署管道 YAML 文件中指定的名称进行版本控制。 但是,ALM 加速器管道允许您在导出或部署解决方案时自定义解决方案的版本控制。 以下各节介绍了您可以使用的方法。

导出的版本控制

使用管道导出的版本号作为所有部署环境中的版本号。 在导出管道中创建名为 UseSolutionVersionFromDataverse 的变量,或在 ALM 加速器的变量库中创建全局变量。 为其中提供值 True。 此变量确保在解决方案中导出的版本号保留在下游环境中,并在提交解决方案源代码时反映在源代码管理中。

自定义版本控制逻辑

使用 ALM 加速器挂钩设置解决方案的版本。 将您的自定义逻辑添加到 build-solution-pack-pre-hook.yml 模板中,以直接或通过使用 pac 解决方案版本等其他工具来操作 Solution.xml

自定义的创建自己的模板版本控制

创建自己的模板生成部署管道的功能为解决方案的初始导出过程中的版本控制提供了灵活性。 例如,创建 build-deploy-validation/test/prod-SampleSolution.yml 的副本,将版本名称从默认更改为基于配置运行或版本号的版本控制策略:

build:
  - name: 1.0.$(Date:yyyyMMdd)$(Rev:.r)
    ...

模板就位后,在部署配置文件中更新部署步骤以指向模板。

自定义管道中的部署步骤数和目标环境的名称

使用模板的自定义版本控制类似,创建自己的模板生成部署管道的功能在解决方案的初始导出过程中提供了更多灵活性。 指定模板所在的项目以及用于生成部署管道的模板的路径。 项目和路径的设置位于 ALM 加速器管理应用的部署配置文件和部署步骤表中。

模板的路径与导出管道位置的根位置相关。 例如,默认验证环境部署管道模板的路径为 /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 加速器管道模板有几个扩展点或挂钩,您可以使用这些扩展点或挂钩来自定义管道,同时最大限度地减少升级场景中合并冲突带来的影响。 了解有关 ALM 加速器挂钩的更多信息

在管道中打开或关闭特定操作

管道使用变量来确定是否应该执行某个任务,或者应该执行几种可能性中的哪一个任务。 下表描述了可以为单个管道或通过 alm-accelerator-variable-group 为所有管道设置的变量。

备注

要在导出时为特定解决方案设置这些变量,请基于导出管道模板创建特定的导出管道。 将其命名为 export-solution-to-git-{SolutionName}。 ALM 加速器应用将此导出管道用于解决方案,而不是通用的 export-solution-to-git 管道。

变量 默认值 管道 说明
GenerateDeploymentSettings TRUE Export 如果为 false,部署设置不会生成,将存储在源代码管理中。
UseDeploymentSettingsPlaceholders TRUE Export 如果为 false,部署设置不使用占位符,部署设置的所有值都保存在 deploymentSettings.jsoncustomDeploymentSettings.json 文件中。
重要提示:敏感信息可能以纯文本形式保存在部署设置中。 任何有权访问源代码管理的用户都可以读取这些值。 请谨慎为此变量设置值。
DisableFlows 错误 Export 如果为 true,在提交之前,所有流都将在解包的源代码中关闭。
UseSolutionVersionFromDataverse 错误 Export 如果为 true,解决方案中导出的版本号将保留在下游环境中。 提交解决方案源时,版本号会反映在源代码管理中。
DoNotExportCurrentEnvironmentVariableValues 错误 Export 如果为 true,将从解包解决方案的源代码中删除当前环境的变量值。
PublishCustomizationsBeforeExport TRUE Export 如果为 false,在导出解决方案之前不会发布自定义项。 如果您在共享环境中工作,并且只想导出最新发布的自定义项,此选项会非常有用。
CacheEnabled TRUE 导出/部署 如果为 false,将禁用 PowerShell 模块的缓存。 如果管道在执行之后执行缓存目录的清理,此选项会非常有用。
ProcessCanvasApps TRUE 导出/部署 如果为 false,画布应用在导出过程中不会解包或在生成过程中不会打包。
注意画布解包和打包功能目前处于预览阶段。 目前不建议在生产环境中使用。 但是,除非将此变量设置为 True,否则无法在源代码管理中查看画布源代码。
DisableSolutionChecker 错误 部署 如果为 true,解决方案检查器不会在通过拉取请求启动的每个版本上运行。
SkipSolutionImport 错误 部署 如果为 true,部署过程中将跳过解决方案导入步骤。 但是,仍可以执行其他活动,例如流激活和共享。

后续步骤