fix(ci): 生产部署加门禁 - 仅 main 分支触发 build/deploy production #1649

Merged
auto-approve-bot merged 1 commits from fix/production-deploy-gate into develop 2026-09-03 16:21:32 +08:00
Owner

问题

ci-pipeline.yml 中 build-production 和 deploy-production 没有限制只在 main 分支运行,导致 develop 合并后也会自动构建生产镜像并部署到生产环境,完全绕过了人工确认环节。

修复

  1. build-production: 添加 github.ref_name == 'main' 限制,仅 main push 时构建生产镜像
  2. deploy-production: 恢复被删除的 if 条件,限制为 github.event_name == 'push' && github.ref_name == 'main'

影响

  • develop push → 只跑验证 + staging 部署,不再触发生产镜像构建和部署
  • main push → 正常触发生产部署流程(仍需通过 PR #1629 这类 develop→main PR)
## 问题 ci-pipeline.yml 中 build-production 和 deploy-production 没有限制只在 main 分支运行,导致 develop 合并后也会自动构建生产镜像并部署到生产环境,完全绕过了人工确认环节。 ## 修复 1. `build-production`: 添加 `github.ref_name == 'main'` 限制,仅 main push 时构建生产镜像 2. `deploy-production`: 恢复被删除的 if 条件,限制为 `github.event_name == 'push' && github.ref_name == 'main'` ## 影响 - develop push → 只跑验证 + staging 部署,不再触发生产镜像构建和部署 - main push → 正常触发生产部署流程(仍需通过 PR #1629 这类 develop→main PR)
xiaoxia added 1 commit 2026-09-03 16:13:06 +08:00
fix(ci): 生产部署加门禁 - 仅 main 分支触发 build/deploy production
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 2s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 27s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 27s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m15s
AI Code Review / AI Code Review (pull_request) Successful in 1m44s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 1m42s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m46s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 2m9s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m47s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 6m53s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 7m39s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Successful in 1s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 5m35s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 10s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 31s
6e253224b3

🚀 预览环境已部署

项目 详情
PR号 #1649
预览链接 https://pr-1649.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1649 | | 预览链接 | [https://pr-1649.preview.xiaoxiajianji.com](https://pr-1649.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
Collaborator

【阻塞级判定】

  • 是否存在阻塞级问题:否
  • 阻塞级问题数量:0 个

📊 审查概览

  • 整体评价:通过
  • 建议级问题数量:0 个

🔴 阻塞级问题(必须修复)

💡 改进建议(不阻塞合并)

良好实践

  1. 分支保护机制:在 CI 流水线中增加 github.ref_name == 'main' 判断,确保生产环境的构建和部署任务仅在主分支触发,有效防止了非主分支的误操作部署。
  2. 状态检查保留:在第一个变更中保留了 !failure() && !cancelled() 检查(虽然 needs 已包含依赖关系,但显式声明增加了逻辑的健壮性和可读性)。

格式检查通过 | 逻辑审查通过 | 性能良好


🤖 由 AI 代码审查机器人自动生成 | 2026-09-03 08:14:50 | 模型:

### 【阻塞级判定】 - 是否存在阻塞级问题:否 - 阻塞级问题数量:0 个 ### 📊 审查概览 - 整体评价:通过 - 建议级问题数量:0 个 ### 🔴 阻塞级问题(必须修复) 无 ### 💡 改进建议(不阻塞合并) 无 ### ✅ 良好实践 1. **分支保护机制**:在 CI 流水线中增加 `github.ref_name == 'main'` 判断,确保生产环境的构建和部署任务仅在主分支触发,有效防止了非主分支的误操作部署。 2. **状态检查保留**:在第一个变更中保留了 `!failure() && !cancelled()` 检查(虽然 `needs` 已包含依赖关系,但显式声明增加了逻辑的健壮性和可读性)。 --- ✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能良好 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-09-03 08:14:50 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
auto-approve-bot merged commit c6147fbb0c into develop 2026-09-03 16:21:32 +08:00
auto-approve-bot deleted branch fix/production-deploy-gate 2026-09-03 16:21:32 +08:00

🗑️ 预览环境已清理

PR #1649 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #1649 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.