Drupal Update and Deploy Workflow 用于在需要更新 Drupal 依赖并将变更部署到 Acquia 环境时使用,也可用于运行完整周期:更新包 → 推送代码 → 部署 → 触发流水线。
使用前提:必须加载以下技能集:drupal-maintenance、acli、pipelines-cli。
工作流
步骤 1 — 应用依赖更新 询问用户:“您需要先应用依赖更新,还是更新已经完成?” 如果需要更新 → 根据用例遵循 Security Updates 或 Dependency Updates,然后返回此处。 如果更新已应用 → 继续步骤 2。
步骤 2 — 获取应用和环境 在询问用户部署位置之前,始终先运行这些命令。这确保使用正确的应用和环境 ID。
列出可用应用并记录 UUID
acli api:applications:list
输出显示应用名称和 UUID。询问用户:“您想部署到哪个应用?”并确认 UUID。
列出所选应用的环境
acli api:environments:list <app-uuid>
输出显示环境标签(dev、stage、prod、CDEs)、ID 以及当前部署的分支。询问用户:“您想部署到哪个环境?”
步骤 3 — 提交代码变更 推送前,检查是否有未提交的变更:
git status
如果有未提交的变更,询问用户:“您想在部署前提交这些变更吗?” 如果是 — 询问提交信息,然后提交:
git add -A git commit -m "<user-provided message>"
如果否 — 警告用户未提交的变更将不会包含在部署中,并确认他们是否要继续。
步骤 4 — 推送代码到 Acquia Cloud 将已提交的代码推送到所选环境:
acli push:code
遵循 Pull & Push 获取完整选项(选择环境、处理冲突)。
步骤 5 — 在环境上切换代码 推送后,使用步骤 2 中的环境 ID 将环境切换到更新后的分支:
acli api:environments:switchCode <environment-id> --branch=<branch-name>
遵循 Environment Management 获取部署选项。
步骤 6 — 触发流水线构建(可选) 询问用户:“您想为已部署的分支触发流水线构建吗?” 如果是 → 遵循 Pipeline Operations 启动构建并流式传输日志:
pipelines start --application-id=<app-id> --vcs-path=<branch> --tail
如果否 → 工作流完成。
步骤 7 — 运行数据库更新 代码在环境上生效后(以及任何流水线完成后),通过 Drush 运行数据库更新并重建缓存:
SSH 进入环境
acli ssh <environment-id>
应用待处理的数据库更新
drush updb --yes
重建缓存
drush cr
如果使用流水线:Drush 命令可能已包含在流水线定义中。询问用户:“您的流水线是否运行 drush updb 和 drush cr?” 如果是 → 跳过此步骤。 如果否 → 运行上述命令。
验证 Drush 能否访问站点且数据库架构是最新的:
drush status
预期输出包括 Drupal bootstrap: Successful 和 Drupal 版本。如果 Drush 无法引导,请勿继续 — 在标记部署完成前检查错误。
步骤 8 — 验证部署 流水线完成后(或如果跳过流水线),确认环境正在运行预期的代码:
acli api:environments:list <app-uuid>
检查目标环境的 vcs 字段以确认分支匹配。
快速参考
步骤 | 工具 | 技能 更新包 | composer | drupal-maintenance-security-updates 或 drupal-maintenance-dependency-updates 获取应用 + 环境 | acli | acli-application-management, acli-environment-management 提交代码变更 | git | — 推送代码 | acli | acli-pull-push 部署到环境 | acli | acli-environment-management 触发流水线 | pipelines-cli | pipelines-cli-pipeline-operations 运行数据库更新 | drush | drush updb, drush cr