用于 Microsoft Power Platform 开发的可用 GitHub Actions
以下部分介绍了 GitHub Actions Microsoft Power Platform 。 此外,还展示了示例 GitHub 工作流。 有关 GitHub Actions 以及如何下载它们的详细信息,请转到适用于 Microsoft Power Platform 的 GitHub Actions。
配置要用于 GitHub Actions 和 Microsoft Power Platform 的凭据
许多操作都要求您连接到 Microsoft Dataverse 环境。 您可以将服务主体或用户凭据添加为 GitHub 存储库中的密钥,然后在工作流中使用它们。
有关如何在 GitHub 中设置密钥的详细信息,请参阅加密密钥
有关如何为 Microsoft Power Platform 设置服务主体身份验证的详细信息,请参阅 DevOps 生成工具
配置后,可以通过操作脚本调用服务主体。
GitHub Action 脚本内定义为环境变量的参数:
- 应用程序 ID,如:
WF_APPLICATION_ID:<your application id>
- 租户 ID,如:
WF_TENANT_ID:<your tenant id>
客户端密码必须作为 GitHub 密码添加和存储,并使用如下参数从工作流内引用:client secret: ${{secrets.CLIENT_SECRET_GITHUB_ACTIONS}}
帮助程序任务
下面介绍可用的帮助程序任务。
操作-安装
当 GitHub 操作工作流强制在运行程序的上下文中安装 Power Platform CLI,并且发生超时错误时,您必须使用版本 1 (@v1) 和一个附加操作 (actions-install
),如下所示。
重要提示
- 使用版本 1 (@v1) 可能会导致现有 GitHub 操作的更新,从而导致当前工作流被更新。
- 您必须在 Power Platform 的任何其他 GitHub 操作之前,将安装 Power Platform Tools 任务作为第一个任务添加到您的工作流中。
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 操作找到 GitHub 操作的其他示例。
whoAmI
通过连接到服务并发送 WhoAmI
[SDK/Web API] 请求来验证服务连接。 要提前加入 GitHub 工作流,以便在处理开始前验证连接,此任务可能非常有用。
参数 | 描述 |
---|---|
environment-url | 您连接到的环境的 URL。 |
user-name | 您用于连接的帐户的用户名。 |
password-secret | user-name 的密码。 GitHub 密码在设置中密码下定义。 密码在定义并保存后不可检索。 |
app-id | 用于进行身份验证的应用程序 ID。 在使用服务主体凭据进行身份验证时,需要此参数。 |
client-secret | 用于对 GitHub 管道进行身份验证的客户端密码。 在使用服务主体凭据进行身份验证时,需要此参数。 |
tenant-id | 使用 app-id 和 client-secret 进行身份验证时的租户 ID。 |
解决方案任务
这些任务根据解决方案执行操作,包括以下内容。
import-solution
将解决方案导入到目标环境。
参数 | 描述 |
---|---|
environment-url | (必需)要向其导入解决方案的目标环境的 URL(例如,https://YourOrg.crm.dynamics.com )。 |
user-name | (必需)如果您使用用户名/密码身份验证,为用于连接的帐户的用户名。 |
password-secret | (必需)如果您使用用户名/密码身份验证,为用于连接的帐户的密码。 |
solution-file | (必需)要导入的解决方案文件的路径和名称。 |
app-id | 用于进行身份验证的应用程序 ID。 在使用服务主体凭据进行身份验证时,需要此参数。 |
client-secret | 用于对 GitHub 管道进行身份验证的客户端密码。 在使用服务主体凭据进行身份验证时,需要此参数。 |
tenant-id | 使用 app-id 和 client-secret 进行身份验证时的租户 ID。 |
export-solution
从源环境中导出解决方案。
参数 | 描述 |
---|---|
environment-url | (必需)要从其导出解决方案的环境的 URL(例如,https://YourOrg.crm.dynamics.com )。 |
user-name | (必需)如果您使用用户名/密码身份验证,为用于连接的帐户的用户名。 |
password-secret | (必需)如果您使用的是用户名/密码身份验证,为 user-name 的密码。 GitHub 密码在设置中密码下定义。 密码在定义并保存后不可检索。 |
app-id | 用于进行身份验证的应用程序 ID。 在使用服务主体凭据进行身份验证时,需要此参数。 |
client-secret | 用于对 GitHub 管道进行身份验证的客户端密码。 在使用服务主体凭据进行身份验证时,需要此参数。 |
tenant-id | 使用 app-id 和 client-secret 进行身份验证时的租户 ID。 |
solution-name | (必需)要导出解决方案的名称。 请始终使用解决方案的名称,而不是显示名称。 |
solution-output-file | (必需)要将源环境导出到的 solution.zip 文件的路径和名称。 |
managed | (必需)设置为 true 将导出为托管解决方案;默认 (false) 导出为非托管解决方案。 |
unpack-solution
获取一个压缩的解决方案文件,然后将其分解为多个 XML 文件,以便源代码管理系统可以更轻松地读取和管理这些文件。
参数 | 描述 |
---|---|
solution-file | (必需)要解包的 solution.zip 文件的路径和文件名。 |
solution-folder | (必需)要将解决方案解包到的路径和目标文件夹。 |
solution-type | (必需)您要解包的解决方案的类型。 选项包括非托管(建议)、托管和两者。 |
pack-solution
将源代码控制中表示的解决方案打包到 solution.zip 文件中,该文件可以导入到另一个环境中。
参数 | 描述 |
---|---|
solution-file | (必需)将解决方案打包到的 solution.zip 文件的路径和文件名(例如,out/CI/ALMLab.zip)。 |
solution-folder | (必需)要打包的解决方案的路径和源文件夹。 |
solution-type | (可选)要打包的解决方案的类型。 选项包括非托管(建议)、托管和两者。 |
publish-solution
发布解决方案自定义项。
参数 | 描述 |
---|---|
environment-url | (必需)要向其发布解决方案的环境的 URL(例如,https://YourOrg.crm.dynamics.com )。 |
user-name | (必需)如果您使用用户名/密码身份验证,为用于连接的帐户的用户名。 |
password-secret | (必需)如果您使用用户名/密码身份验证,为用于连接的帐户的密码。 |
solution-file | (必需)要导入的解决方案文件的路径和名称。 |
app-id | 用于进行身份验证的应用程序 ID。 在使用服务主体凭据进行身份验证时,需要此参数。 |
client-secret | 用于对 GitHub 管道进行身份验证的客户端密码。 在使用服务主体凭据进行身份验证时,需要此参数。 |
tenant-id | 使用 app-id 和 client-secret 进行身份验证时的租户 ID。 |
clone-solution
克隆给定环境的解决方案。
参数 | 描述 |
---|---|
environment-url | (必需)要从其克隆解决方案的环境的 URL(例如,https://YourOrg.crm.dynamics.com )。 |
user-name | (必需)如果您使用用户名/密码身份验证,为用于连接的帐户的用户名。 |
password-secret | (必需)如果您使用用户名/密码身份验证,为用于连接的帐户的密码。 |
solution-file | (必需)要导入的解决方案文件的路径和名称。 |
app-id | 用于进行身份验证的应用程序 ID。 在使用服务主体凭据进行身份验证时,需要此参数。 |
client-secret | 用于对 GitHub 管道进行身份验证的客户端密码。 在使用服务主体凭据进行身份验证时,需要此参数。 |
tenant-id | 使用 app-id 和 client-secret 进行身份验证时的租户 ID。 |
solution-name | (必需)需要克隆的 solution.zip 文件的路径和名称(例如,out/CI/ALMLab.zip)。 |
solution-version | 要克隆的解决方案版本。 |
target-folder | 用于放置提取的解决方案的目标文件夹。 (例如,Git 存储库\target-solution-folder)。 |
Working-directory | 克隆解决方案所需的工作中项目的临时文件夹。 默认值: root of the repository |
check-solution
检查解决方案文件以检测不一致。
参数 | 描述 |
---|---|
environment-url | (必需)要从其克隆解决方案的环境的 URL(例如,https://YourOrg.crm.dynamics.com )。 |
user-name | (必需)如果您使用用户名/密码身份验证,为用于连接的帐户的用户名。 |
password-secret | (必需)如果您使用用户名/密码身份验证,为用于连接的帐户的密码。 |
app-id | 用于进行身份验证的应用程序 ID。 在使用服务主体凭据进行身份验证时,需要此参数。 |
client-secret | 用于对 GitHub 管道进行身份验证的客户端密码。 在使用服务主体凭据进行身份验证时,需要此参数。 |
tenant-id | 使用 app-id 和 client-secret 进行身份验证时的租户 ID。 |
path | (必需)要检查的解决方案文件的路径和名称。 |
geo | 要使用的 Microsoft Power Platform 检查器服务的地理位置。 默认值为“美国”。 |
rule-level-override | 其中包含规则的 JSON 数组的文件的路径及其级别。 接受的值为:Critical、High、Low 和 Informational。 示例:[{"Id":"meta-remove-dup-reg","OverrideLevel":"Medium"},{"Id":"il-avoid-specialized-update-ops","OverrideLevel":"Medium"}] |
checker-logs-artifact-name | 将为其上载 Microsoft Power Platform 检查器日志的项目文件夹的名称。 默认值为“CheckSolutionLogs”。 |
upgrade-solution
提供升级解决方案功能。
参数 | 描述 |
---|---|
environment-url | (必需)要从其克隆解决方案的环境的 URL(例如,https://YourOrg.crm.dynamics.com )。 |
user-name | (必需)如果您使用用户名/密码身份验证,为用于连接的帐户的用户名。 |
password-secret | (必需)如果您使用用户名/密码身份验证,为用于连接的帐户的密码。 |
solution-file | (必需)要导入的解决方案文件的路径和名称。 |
app-id | 用于进行身份验证的应用程序 ID。 在使用服务主体凭据进行身份验证时,需要此参数。 |
client-secret | 用于对 GitHub 管道进行身份验证的客户端密码。 在使用服务主体凭据进行身份验证时,需要此参数。 |
tenant-id | 使用 app-id 和 client-secret 进行身份验证时的租户 ID。 |
solution-name | (必需)要升级的解决方案的名称。 |
async | 异步升级解决方案。 |
max-async-wait-time | 异步等待的最大时间(以分钟为单位)。 默认值为 60 分钟。 |
打包任务
这些任务对包执行操作,其中包含以下内容。
deploy-package
提供通过包部署包 dll 或 zip 文件的功能。
备注
只有 Windows 上才支持此操作。
参数 | 说明 |
---|---|
environment-url | (必需)要从其克隆解决方案的环境的 URL(例如,https://YourOrg.crm.dynamics.com )。 |
user-name | (必需)如果您使用用户名/密码身份验证,为用于连接的帐户的用户名。 |
password-secret | (必需)如果您使用用户名/密码身份验证,为用于连接的帐户的密码。 |
app-id | 用于进行身份验证的应用程序 ID。 在使用服务主体凭据进行身份验证时,需要此参数。 |
client-secret | 用于对 GitHub 管道进行身份验证的客户端密码。 在使用服务主体凭据进行身份验证时,需要此参数。 |
tenant-id | 使用 app-id 和 client-secret 进行身份验证时的租户 ID。 |
package | (必需)包 dll 或具有包的 zip 文件的路径。 |
门户任务
这些任务对 Power Pages 执行以下操作。
upload-paportal
将数据上载到 Power Pages。
参数 | 说明 |
---|---|
environment-url | (必需)要向其导入解决方案的环境的 URL(例如,https://YourOrg.crm.dynamics.com )。 |
app-id | 用于进行身份验证的应用程序 ID。 在使用服务主体凭据进行身份验证时,需要此参数。 |
client-secret | 用于对 GitHub 管道进行身份验证的客户端密码。 在使用服务主体凭据进行身份验证时,需要此参数。 |
tenant-id | 使用 app-id 和 client-secret 进行身份验证时的租户 ID。 |
upload-path | 将存储网站内容的路径(别名:-p)。 |
deployment-profile | 上载门户数据,其中包含通过 deployment-profiles/[profile-name].deployment.yaml 文件中的配置文件变量定义的环境详细信息。 |
模型版本 | 指示要上传的站点数据是使用标准 (1 ) 还是增强型数据模型 (2 )。 默认值为 '1'。 |
了解有关 Power Pages 的 Microsoft Power Platform CLI 支持的更多信息。
目录任务(预览版)
这些任务根据 Power Platform 中的目录执行操作,并包括以下内容。
备注
当前,Power Platform 的目录任务为预览版本。
安装
将 catalog 项安装到目标环境。
参数 | 说明 |
---|---|
catalog-item-id | (必需)要安装在目标环境中的目录项。 |
target-url | (必需)目录项安装到的目标环境 URL(例如 "https://YourOrg.crm.dynamics.com")。 |
设置 | (必需)要执行的安装框架的运行时程序包设置。 字符串格式必须为 key=value|key=value 。 |
target-version | 要安装的目标版本。 如果留空,则会选择已发布版本。 |
poll-status | 轮询以检查请求的状态。 |
submit
列出当前 Dataverse 环境(组织)中所有已发布的目录项。
参数 | 说明 |
---|---|
path | (必需)目录提交文档的路径。 |
package-zip | 要对 zip 文件打包的路径。 |
solution-zip | 解决方案 zip 文件的路径。 |
poll-status | 轮询以检查请求的状态。 |
状态
获取 catalog 安装/提交请求的状态。
参数 | 说明 |
---|---|
tracking-id | (必需)请求跟踪 ID。 |
类型 | (必需)请求类型(值:安装、提交) |
GitHub 工作流创作
若要了解有关使用 GitHub 操作编写 GitHub 工作流的详细信息,请完成适用于 Microsoft Power Platform 的 GitHub Actions 实验室。
详细信息:关于 GitHub Actions