This skill guides the final stage of the n8n workflow lifecycle — environment promotion through three phases (DEV testing, TEST promotion, PRODUCTION deployment), each with prerequisite checks, execution steps, and post-deployment verification. It should be invoked when promoting workflows between environments or executing rollback in MJ System. Triggers on "n8n晋升", "workflow部署", "环境迁移", "promote workflow", "n8n测试验证", "DEV测试", "TEST晋升", "PROD部署", "工作流上线", "n8n rollback", "回滚工作流", "n8n环境晋级", "部署验证".
本技能是 n8n 工作流生命周期的最后一环。它引导环境晋升流程的三个阶段:DEV 测试 → TEST 晋升 → PRODUCTION 部署。每个阶段包含前置检查、执行步骤和部署后验证。
工作流生命周期:/mj-n8n-plan → /mj-n8n-author (或 /mj-n8n-template) → /mj-n8n-config → /mj-n8n-doc → /mj-n8n-render → /mj-n8n-promote
在开始晋升流程前,请确认:
n8n/workflows/{dev,test,production}/)/mj-n8n-render 完成渲染和验证(占位符无残留、JSON 合法)_config/{env}.yaml 中的 trigger 配置已确认若渲染未完成,请先使用 /mj-n8n-render 完成渲染流程。
首先确定当前晋升阶段,询问用户:
| 阶段 | 说明 | 入口条件 |
|---|
| DEV 环境测试 | 新工作流首次在 DEV 中测试 | 渲染文件就绪 |
| TEST 环境晋升 | 将已验证的工作流晋升到 TEST | DEV 测试全部通过 |
| PROD 生产部署 | 从 TEST 晋升到 PRODUCTION | TEST 验证全部通过 |
docker compose up -d
访问 n8n UI:http://localhost:5678
逐项检查以下内容:
environment: "dev")env:dev, trigger:*, domain:*)根据工作流触发类型选择对应测试方式:
| 触发类型 | 测试方式 |
|---|---|
| Schedule / Interval | 在 n8n UI 中点击 "Execute Workflow" 手动触发 |
| DBTrigger | 在数据库中 INSERT 测试数据触发 |
| Webhook | 发送 HTTP 请求到 webhook URL |
| Manual | 直接点击 "Execute Workflow" |
DBTrigger 测试示例:
-- 根据工作流监听的表和 schema 插入测试数据
INSERT INTO ops_ods.ods_data_quality_validator (raw_payload, created_at)
VALUES ('{"test": true}'::jsonb, NOW());
Webhook 测试示例:
curl -X POST http://localhost:5678/webhook/{path} \
-H "Content-Type: application/json" \
-d '{"test": true}'
所有条件必须满足后才能晋升到 TEST:
_config/test.yaml 中的 trigger 配置正确uv run python scripts/render_n8n_workflows.py test
uv run python scripts/render_n8n_workflows.py --verify test
Postgres-MJ-DataWarehouse 凭据docker compose -f docker-compose.yml -f docker-compose.test.yml up -d
production.yaml 配置已确认(特别是 Webhook URL 不是占位符)uv run python scripts/render_n8n_workflows.py production
uv run python scripts/render_n8n_workflows.py --verify production
Postgres-MJ-DataWarehouse 已绑定docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d
以下任一条件触发回滚:
Postgres-MJ-DataWarehouse 凭据已绑定执行失败?
├── 单次失败 → 观察下一次
├── 2 次失败 → 检查日志,准备回滚
└── 3+ 次失败 → 立即回滚
执行超时?
├── < 2x 正常值 → 监控
├── 2-3x 正常值 → 告警 + 准备回滚
└── > 3x 正常值 → 立即回滚
数据错误?
└── 任何数据错误 → 立即回滚
| # | 触发条件 | 行为 |
|---|---|---|
| H1 | 晋升前置条件未全部满足 | 展示未满足条件列表,询问用户是否仍要继续 |
| H2 | production.yaml 中 Webhook URL 仍为占位符 | 硬性阻断:"生产环境 Webhook URL 仍为占位符,必须替换为真实密钥后才能继续" |
| H3 | 用户请求回滚 | 确认回滚范围(单个工作流 vs 全部),引导执行回滚步骤 |
| H4 | 部署后验证未通过 | 评估严重性,若为关键问题则建议立即回滚 |
每个阶段完成后输出以下摘要:
{Stage}验证完成 / 晋升条件检查完成
通过项: N / 总项: M
[如有未通过项列表]
建议:{next action}
示例:
DEV 环境测试验证完成
通过项: 8 / 总项: 8
建议:所有验证通过,可以准备 TEST 环境晋升。使用 /mj-n8n-promote 选择 "TEST 环境晋升" 阶段。
TEST → PROD 晋升条件检查完成
通过项: 5 / 总项: 6
未通过:
- [ ] 文档完整(README.md + CHANGELOG.md)— CHANGELOG.md 尚未更新
建议:请先更新 CHANGELOG.md,然后重新检查晋升条件。
-> promotion-checklist.md — 精简晋升检查清单(快速参考,基于 n8n/_templates/TEMPLATE_WORKFLOW_PROMOTION_CHECKLIST.md 的简化版)n8n/_templates/TEMPLATE_WORKFLOW_PROMOTION_CHECKLIST.md — 完整晋升检查清单模板(权威版本)docs/infrastructure/n8n/ — n8n 基础设施文档n8n/workflows/_config/*.yaml — 环境配置文件scripts/render_n8n_workflows.py — 渲染脚本docker-compose.yml / docker-compose.test.yml / docker-compose.prod.yml — Docker 环境配置