SuperAPI AI 工具集

deploy-pipeline

部署与运维

查看项目

更新于 10-15 12:34

技能介绍

用途

deploy-pipeline 用于为 Power Pages 解决方案触发一次 Power Platform Pipeline 部署运行。它读取已有的流水线配置,选择目标阶段,校验解决方案包,然后将其部署到目标环境。

主要能力

  • 从 docs/alm/last-pipeline.json 读取现有流水线配置。
  • 选择目标阶段(如 Staging、Production)。
  • 校验解决方案包。
  • 可选地配置部署设置。
  • 将解决方案部署到目标环境并监控部署过程。
  • 写入部署记录。
  • 支持多解决方案模式:schemaVersion 为 3 时按 deploymentOrder[] 顺序对同一阶段逐个解决方案串行部署;schemaVersion 为 2(旧版)时回退到遍历多个 deploymentpipelines 记录的行为。

使用方式

前置条件:

  • 先运行 /power-pages:setup-pipeline 创建流水线配置。
  • 源(开发)环境必须已配置 Power Platform Pipelines 主机环境。该配置在 Power Platform Admin Center(Environments → 选择环境 → Pipelines)中设置,或通过租户级 DefaultCustomPipelinesHostEnvForTenant 设置完成。缺少该配置时 pac pipeline deploy 会失败。
  • docs/alm/last-pipeline.json 存在(由 setup-pipeline 创建)。
  • .solution-manifest.json 存在。
  • Azure CLI 已登录(az account show 成功)。
  • PAC CLI 已登录(pac env who 成功)。

技能执行的主要阶段:

  • Phase 0 — ALM 计划门禁:当用户表达 ALM 意图(promote / ship / deploy / move to staging / push to prod / release this version)时,应先运行编排器 /power-pages:plan-alm。若本技能作为活跃的 plan-alm 编排的一部分被调用,则跳过 Phase 0。门禁通过 check-alm-plan.js 判断计划是否存在、是否过期,并据此提示用户运行 plan-alm、继续或取消。
  • Phase 1 — 校验前置条件:解析项目配置的环境 URL,断言 PAC 实际连接的环境与之匹配,读取项目上下文与解决方案清单,定位 docs/alm/last-pipeline.json,进行清单版本检查,获取主机环境令牌。
  • Phase 1.5 — 基于当前 Pipelines 部署文档进行核对:通过 microsoft_docs_search 与 microsoft_docs_fetch 获取 Microsoft Learn 关于阶段运行生命周期、校验结果、审批门禁工作流与 deploymentsettingsjson 覆盖的说明,与参考文件比对并提示差异。该步骤限时约 30 秒,离线时记录一行说明后继续。
  • Phase 2 — 选择目标阶段:若用户以参数传入阶段名或环境标签则直接匹配;否则通过 AskUserQuestion 询问部署到哪个环境。
  • 后续阶段包括:创建阶段运行并校验包(Phase 3.6 在多解决方案模式下并行校验)、获取部署说明、配置部署设置、每次迭代触发最终确认门禁、部署并监控、写入部署记录。

部署循环为串行设计:当 DEPLOYMENT_ORDER 有 N 个条目时,按顺序一次部署一个解决方案,首次失败即停止。原因包括目标环境的 Dataverse 导入锁、拆分策略中的跨拆分依赖、每次迭代的确认门禁,以及清晰的失败处理。校验阶段(Phase 3.6)是并行的,因为 ValidatePackageAsync 不占用导入锁;部署阶段则有意保持串行。

适用场景

  • 将 Power Pages 解决方案从开发环境提升到 Staging 或 Production 等目标阶段。
  • 在已配置 Power Platform Pipelines 主机环境的项目中执行 ALM 部署。
  • 多解决方案项目按 deploymentOrder 顺序部署。

限制

  • 必须先运行 /power-pages:setup-pipeline 创建流水线配置。
  • 源环境必须已配置 Power Platform Pipelines 主机环境,否则 pac pipeline deploy 会失败。
  • 需要 docs/alm/last-pipeline.json、.solution-manifest.json 存在,且 Azure CLI 与 PAC CLI 已登录。
  • 直接调用本技能会绕过编排器的预计划完整性检查、按阶段的环境变量解析、激活步骤与校验运行。
  • 部署阶段为串行,不应通过 Promise.all / Promise.allSettled / await Promise.race 并行化。
  • 关于收费、价格、平台支持范围等更多信息,资料中暂未提供。