d615a60bbdffbbf141f43368f75cc2913b4dbaec
37 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
67a1ed6430 |
feat(#1894): 清理文案库多余字段 / 废弃标题库 API / 旧定价档位清理 (#1968)
CI/CD Pipeline / Check if frontend-only change (push) Has been skipped
CI/CD Pipeline / Check push changed paths (push) Successful in 2s
CI/CD Pipeline / PR Build API Image (push) Has been skipped
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (push) Successful in 2s
CI/CD Pipeline / PR Build Web Image (push) Has been skipped
CI/CD Pipeline / PR Build Worker Image (push) Has been skipped
CI/CD Pipeline / Frontend Lint (push) Has been skipped
CI/CD Pipeline / Build Staging Web Image (push) Has been skipped
CI/CD Pipeline / Build Staging API Image (push) Successful in 37s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 38s
CI/CD Pipeline / Retag skipped Staging API Image (push) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (push) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web Image (push) Successful in 20s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 43s
CI/CD Pipeline / Validate - Python (mypy + alembic) (push) Successful in 3m3s
CI/CD Pipeline / Integration Tests (push) Successful in 3m7s
CI/CD Pipeline / Staging E2E Tests (push) Successful in 1m40s
CI/CD Pipeline / Validate - Style (push) Successful in 3m52s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 4m17s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 3m6s
CI/CD Pipeline / Validate - Security (push) Successful in 7m14s
CI/CD Pipeline / Unit Tests (push) Successful in 9m33s
CI/CD Pipeline / Build Production API Image (push) Has been skipped
CI/CD Pipeline / Build Production Web Image (push) Has been skipped
CI/CD Pipeline / Build Production Worker Image (push) Has been skipped
CI/CD Pipeline / CI Gate (push) Has been skipped
CI/CD Pipeline / Deploy Production (push) Has been skipped
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 35m54s
CI/CD Pipeline / Canary Release to Production (push) Has been skipped
Co-authored-by: xiaoxia <dev@xiaoxiajianji.com> Co-committed-by: xiaoxia <dev@xiaoxiajianji.com> |
||
|
|
29ca51da9c |
fix(web): 烤入所有 nginx 配置,按 APP_ENV 运行时切换,彻底解决 staging/prod 配置错乱 (#1853)
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (push) Successful in 1s
CI/CD Pipeline / Check push changed paths (push) Successful in 18s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 14s
CI/CD Pipeline / Build Staging API Image (push) Successful in 1m0s
CI/CD Pipeline / Integration Tests (push) Successful in 1m32s
CI/CD Pipeline / Validate - Python (mypy + alembic) (push) Successful in 1m40s
CI/CD Pipeline / Validate - Style (push) Successful in 2m15s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 2m16s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 4m44s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Failing after 2m12s
CI/CD Pipeline / Validate - Security (push) Successful in 5m30s
CI/CD Pipeline / Unit Tests (push) Successful in 7m44s
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / Build Production Worker Image (push) Failing after 126h13m58s
CI/CD Pipeline / Retag skipped Staging Worker Image (push) Failing after 126h19m7s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 126h21m46s
CI/CD Pipeline / PR Build Web Image (push) Failing after 126h21m33s
CI/CD Pipeline / PR Build API Image (push) Failing after 126h21m34s
CI/CD Pipeline / Retag skipped Staging Web Image (push) Failing after 126h18m54s
CI/CD Pipeline / Retag skipped Staging API Image (push) Failing after 126h18m54s
CI/CD Pipeline / CI Gate (push) Failing after 126h13m45s
CI/CD Pipeline / Build Production API Image (push) Failing after 126h13m45s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 126h21m35s
CI/CD Pipeline / Deploy Production (push) Failing after 126h13m42s
CI/CD Pipeline / Canary Release to Production (push) Failing after 126h13m42s
CI/CD Pipeline / Build Production Web Image (push) Failing after 126h13m45s
CI/CD Pipeline / Staging API Integration Tests (push) Failing after 126h16m37s
CI/CD Pipeline / Staging E2E Tests (push) Failing after 126h16m37s
CI/CD Pipeline / Frontend Lint (push) Failing after 126h21m29s
CI/CD Pipeline / ACR Image Cleanup (push) Failing after 126h51m43s
Co-authored-by: xiaoxia <dev@xiaoxiajianji.com> Co-committed-by: xiaoxia <dev@xiaoxiajianji.com> |
||
|
|
54defa4429 |
fix: Worker health check 扫描全部 /proc 进程修复 unhealthy 误判
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m1s
AI Code Review / AI Code Review (pull_request) Successful in 6m36s
PR Automation / Auto Approve on CI Green (pull_request) Failing after 13m19s
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 1s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 15s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 16s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 11s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 30s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m16s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 1m58s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 2m53s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 6m33s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 12m20s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Successful in 6s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 164h14m54s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 164h14m54s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 164h14m55s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 164h14m54s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 164h14m57s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 164h15m0s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 164h2m30s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 164h14m57s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 164h2m35s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 164h14m48s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 164h2m36s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Failing after 164h27m44s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 164h14m48s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 164h37m21s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 164h49m35s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 164h49m41s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 164h49m43s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 164h37m16s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 164h49m34s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 164h49m41s
问题:Worker 容器内无 pgrep/ps 工具,旧 health check 使用 'grep -q celery /proc/1/cmdline' 检查 PID 1 的 cmdline, 但 PID 1 是 entrypoint-worker.sh(bash 脚本),不含 celery 关键字, 导致 health check 永远返回 unhealthy。 同时部署脚本中 sh -c 嵌套引号导致 $pid 变量被外层 shell 提前展开为空。 修复:改用 grep -lq celery /proc/[0-9]*/cmdline 扫描所有进程 cmdline, 找到任意 celery 进程即判定 healthy。无需变量、无嵌套 shell、无 pgrep 依赖。 影响文件: - infra/docker/compose.yml - infra/docker/deploy-staging-registry.sh - infra/docker/deploy-production-registry.sh |
||
|
|
e4ac398397 |
fix: Worker 健康检查彻底修复 - 移除不可用的 pgrep 和 PID1 检查
根因:#1714 队列隔离后 entrypoint 启动两个 celery worker 子进程, PID 1 变为 bash。旧健康检查依赖 pgrep(容器内不存在)或 /proc/1/cmdline(PID 1 是 bash 不是 celery),永远返回失败。 此前靠 cron 脚本 fix-worker-healthcheck.sh 每 30 分钟擦屁股。 修复:统一改为扫描 /proc/[0-9]*/cmdline 查找 celery 进程, 覆盖所有部署/回滚/CI 脚本(10 处替换)。已移除 cron 补丁。 |
||
|
|
df99305dd6 |
feat(worker): celery 队列隔离 + 孤儿任务消息作废 (#1714)
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 1s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 29s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 29s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 49s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 1m39s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m44s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 2m19s
AI Code Review / AI Code Review (pull_request) Failing after 2m52s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m54s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 4m11s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 6m23s
CI/CD Pipeline / CI Gate (pull_request) Failing after 1s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 3m39s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 260h6m22s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 260h6m25s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 260h6m25s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 260h12m32s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 260h12m33s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 260h12m43s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 260h12m33s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 260h12m43s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 260h12m43s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 260h12m48s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 260h12m49s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 260h12m51s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 260h12m49s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 260h12m57s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 260h40m56s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 260h40m59s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 260h47m12s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 260h47m22s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 260h47m24s
问题:素材转码与视频生成共用 celery 默认队列、worker 单进程消费, 20+ 转码积压会把用户生成任务堵 40 分钟以上;孤儿清理把任务标 failed 后 Redis 队列消息未作废,消息被重投导致 failed→running 非法转换, worker 打印 ERROR 后继续产出半成品。 队列隔离: - 新增 packages/shared/celery_queues.py:generation/transcode/celery 三队列与 task_routes(generate_video→generation;ingest_asset/ classify_asset/duplication→transcode),apply_queue_settings() - worker 入口改双进程:generation worker 独占队列并内嵌 beat (prefetch=1, GENERATION_CONCURRENCY 默认 2),transcode worker 消费 transcode,celery(并发=总-2,最小 1),任一退出则整体终止 - compose/部署脚本/ps1 同步新增 GENERATION_CONCURRENCY 与健康检查 消息作废: - 新增 packages/shared/celery_orphan_guard.py:终态守卫 ensure_task_claimable、Redis 队列消息物理清理(JSON 信封解析, 按业务 id + celery headers.id 双匹配,未命中 rpush 保序)、 revoke_and_purge(control.revoke + 物理清队列双保险) - 入队点(生成/上传/分片/重试)send_task 后持久化 celery_task_id 到 generation_tasks/ingest_jobs(新列,067 迁移,失败仅 warning) - generate_video/ingest_asset 执行前校验 DB 状态:终态直接 discarded 不进业务逻辑;mark_processing 返回 False(非法转换)安全中止 - 孤儿/超时清理标 failed 时同时 revoke + 清队列消息 - pending 超时阈值 15→45 分钟,与 running 孤儿(20min)区分 测试:新增 22 个单测(路由表/真实 Redis 消息清理/终态守卫/ 非法转换中止/标 failed 后消息不重投/入队持久化),全量 14301 passed;067 迁移隔离 DDL 验证 upgrade/downgrade 通过。 |
||
|
|
0e2dd60a8d |
fix(infra): web 容器运行时覆盖 nginx 配置,防止环境错配 (#1645)
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (push) Successful in 2s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 3s
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 4s
CI/CD Pipeline / Check push changed paths (push) Successful in 8s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 28s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 22s
CI/CD Pipeline / Build Staging API Image (push) Successful in 21s
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 32s
AI Code Review / AI Code Review (pull_request) Failing after 1m39s
CI/CD Pipeline / Retag skipped Staging Web Image (push) Successful in 19s
CI/CD Pipeline / Integration Tests (push) Successful in 2m12s
CI/CD Pipeline / Validate - Python (mypy + alembic) (push) Successful in 2m16s
CI/CD Pipeline / Validate - Style (push) Successful in 2m43s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 3m5s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 2m53s
CI/CD Pipeline / CI Gate (pull_request) Successful in 3s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 1m25s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m20s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 1m30s
CI/CD Pipeline / Validate - Security (push) Has been cancelled
CI/CD Pipeline / Unit Tests (push) Has been cancelled
CI/CD Pipeline / Frontend Unit Tests (push) Has been cancelled
CI/CD Pipeline / Staging E2E Tests (push) Has been cancelled
CI/CD Pipeline / Staging API Integration Tests (push) Has been cancelled
CI/CD Pipeline / Build Production API Image (push) Has been cancelled
CI/CD Pipeline / Build Production Web Image (push) Has been cancelled
CI/CD Pipeline / Build Production Worker Image (push) Has been cancelled
CI/CD Pipeline / Deploy Production (push) Has been cancelled
CI/CD Pipeline / Production Browser E2E (push) Has been cancelled
CI/CD Pipeline / Canary Release to Production (push) Has been cancelled
CI/CD Pipeline / CI Gate (push) Has been cancelled
CI/CD Pipeline / Retag skipped Staging Worker Image (push) Failing after 311h50m9s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 311h50m11s
CI/CD Pipeline / Retag skipped Staging API Image (push) Failing after 311h50m10s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 311h50m19s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 311h50m20s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 311h50m26s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 311h50m27s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 311h50m28s
CI/CD Pipeline / Build Staging Web Image (push) Failing after 311h50m48s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 311h50m29s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 311h51m20s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 311h50m30s
CI/CD Pipeline / Integration Tests (pull_request) Failing after 311h51m22s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 311h50m31s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 311h51m22s
CI/CD Pipeline / Validate - Security (pull_request) Failing after 311h51m24s
CI/CD Pipeline / Validate - Style (pull_request) Failing after 311h51m24s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 311h51m25s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 311h51m25s
CI/CD Pipeline / Frontend Lint (push) Failing after 311h51m25s
CI/CD Pipeline / PR Build Web Image (push) Failing after 311h51m31s
CI/CD Pipeline / PR Build API Image (push) Failing after 311h51m31s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Failing after 311h51m32s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 311h51m33s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 311h51m34s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 312h24m38s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 312h24m48s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 312h25m43s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Failing after 312h25m45s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 312h25m46s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 312h25m53s
Co-authored-by: xiaoxia <dev@xiaoxiajianji.com> Co-committed-by: xiaoxia <dev@xiaoxiajianji.com> |
||
|
|
7eecabaf3d |
feat(deploy): 添加环境配置模板 + 修复 compose 路径 bug
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1s
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 1s
CI/CD Pipeline / Validate - Style (pull_request) Failing after 2s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m51s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 3m45s
AI Code Review / AI Code Review (pull_request) Failing after 4m30s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 4m57s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 5m6s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 5m34s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 5m46s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 6m50s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 9m5s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 17m48s
CI/CD Pipeline / CI Gate (pull_request) Failing after 2s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 4m22s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 5m37s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 335h41m0s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 335h41m1s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 335h41m2s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 335h41m2s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 335h58m43s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 335h58m44s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 335h58m47s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 335h58m45s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 335h58m47s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 335h58m48s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 335h58m50s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 335h58m49s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 335h58m51s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 335h58m55s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 335h58m51s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 336h15m21s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 336h15m22s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 336h33m3s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 336h33m9s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 336h33m12s
- 新增 deploy/configs/.env.staging — Staging 环境配置模板(含 MinIO) - 新增 deploy/configs/.env.production — Production 环境配置模板(无 MinIO) - 新增 deploy/configs/nginx-staging.conf — Staging Nginx 配置 - 新增 deploy/configs/nginx-production.conf — Production Nginx 配置 - 修复 infra/docker/compose.yml: GENERATED_FILES_HOST_DIR 去掉默认值, 改为 ?: 语法强制要求显式设置,防止 Production 静默指向 staging 目录 - 更新 .gitignore: 为 deploy/configs/ 下的模板文件添加例外 |
||
|
|
cd8f162b17 |
fix: CI 部署脚本增加 graceful shutdown,避免杀死正在处理的任务 (#1333)
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 1m6s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 1m21s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 2m35s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 2m54s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 4m32s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 5m8s
CI/CD Pipeline / Integration Tests (push) Successful in 1m47s
CI/CD Pipeline / Unit Tests (push) Failing after 7m53s
CI/CD Pipeline / Build Staging API Image (push) Successful in 12m15s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 48s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 37s
CI/CD Pipeline / Staging E2E Tests (push) Failing after 1m2s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 2m48s
CI/CD Pipeline / Canary Release to Production (push) Failing after 889h8m16s
CI/CD Pipeline / Deploy Production (push) Failing after 889h16m14s
CI/CD Pipeline / CI Gate (push) Failing after 889h16m15s
CI/CD Pipeline / Build Production Web Image (push) Failing after 889h16m15s
CI/CD Pipeline / Build Production API Image (push) Failing after 889h16m16s
CI/CD Pipeline / PR Build Web Image (push) Failing after 889h24m8s
CI/CD Pipeline / PR Build API Image (push) Failing after 889h24m9s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 889h24m12s
CI/CD Pipeline / Production Browser E2E (push) Failing after 889h49m39s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 889h49m41s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 889h57m33s
CI/CD Pipeline / Frontend Lint (push) Failing after 889h57m36s
|
||
|
|
248fd5408c |
feat: 预览数量 preview_count 上限校验 + Worker 并发提升至 4 (#1292)
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 1m4s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 1m6s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 1m53s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 2m55s
AI Code Review / AI Code Review (pull_request) Successful in 51s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 4m32s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 54s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m1s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m16s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m31s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m55s
CI/CD Pipeline / Integration Tests (push) Successful in 2m24s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 4m6s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 4m4s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 7m58s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 3m38s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 3m36s
CI/CD Pipeline / Unit Tests (push) Successful in 9m9s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m8s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 7m40s
CI/CD Pipeline / CI Gate (pull_request) Successful in 7s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 24s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 27s
CI/CD Pipeline / Build Staging API Image (push) Successful in 16m54s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Failing after 1m59s
CI/CD Pipeline / Canary Release to Production (push) Failing after 939h51m51s
CI/CD Pipeline / Staging API Integration Tests (push) Failing after 939h51m53s
CI/CD Pipeline / Staging E2E Tests (push) Failing after 939h51m53s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 940h0m2s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 940h0m3s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 940h0m4s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 940h0m5s
CI/CD Pipeline / Production Browser E2E (push) Failing after 940h3m7s
CI/CD Pipeline / Deploy Production (push) Failing after 940h3m8s
CI/CD Pipeline / CI Gate (push) Failing after 940h3m9s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 940h3m10s
CI/CD Pipeline / Build Production Web Image (push) Failing after 940h3m10s
CI/CD Pipeline / Build Production API Image (push) Failing after 940h3m11s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 940h7m24s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 940h7m26s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 940h7m46s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 940h7m48s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 940h8m43s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 940h7m28s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 940h8m43s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 940h12m19s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 940h8m43s
CI/CD Pipeline / PR Build Web Image (push) Failing after 940h12m19s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 940h12m23s
CI/CD Pipeline / PR Build API Image (push) Failing after 940h12m21s
CI/CD Pipeline / ACR Image Cleanup (push) Failing after 940h25m15s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 940h33m26s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 940h33m27s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 940h41m5s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 940h41m15s
CI/CD Pipeline / Frontend Lint (push) Failing after 940h45m44s
|
||
|
|
a5f1d9685d |
refactor(phase3): Docker 网络隔离 staging/production 环境
Deploy / Deploy Staging (push) Failing after 141h44m9s
CI/CD Pipeline / Frontend Lint (push) Failing after 141h44m18s
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 141h44m18s
Deploy / Staging E2E Tests (push) Failing after 1800h19m46s
Deploy / Deploy Production (push) Failing after 1800h19m50s
Deploy / Build Production Runtime Images (push) Failing after 1800h19m52s
Deploy / Production Browser E2E (push) Failing after 1800h51m14s
- compose.yml: 网络名根据 ENV 变量区分 (xiaoxia-net-staging/xiaoxia-net-production) - infra-production.yml: 使用 xiaoxia-net-production 网络 - infra.yml: 使用 xiaoxia-net-staging 网络 - 新增 nginx-staging.conf (proxy_pass -> xiaoxia-api-staging:8000) - 新增 nginx-production.conf (proxy_pass -> xiaoxia-api-production:8000) - nginx.conf 更新为 production 默认配置 - web-artifact.Dockerfile: 添加 ARG NGINX_CONF 支持构建时选择 nginx 配置 - deploy-staging.sh: 添加 ENV=staging、网络创建、nginx 配置选择 - deploy-production.sh: 添加 ENV=production、网络创建 - deploy.yml: CI 构建传入 NGINX_CONF 参数、远程部署脚本添加网络创建 - deploy.yml: 冒烟测试添加网络隔离验证 |
||
|
|
ae20d5137a |
fix(infra): 修复 worker healthcheck YAML 语法 & APP_VERSION 添加默认值
Tests / lint (pull_request) Failing after 145h39m28s
Tests / test (pull_request) Failing after 145h39m28s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 145h39m53s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 145h39m59s
Deploy / Deploy Staging (push) Failing after 145h40m35s
CI/CD Pipeline / Frontend Lint (push) Failing after 145h41m1s
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 145h41m9s
Deploy / Production Browser E2E (push) Failing after 1804h16m12s
Deploy / Build Production Runtime Images (push) Failing after 1804h16m16s
Deploy / Deploy Production (push) Failing after 1804h47m39s
- Worker healthcheck: 原 python3 单引号嵌套导致 YAML 解析错误,改用 grep -q celery /proc/1/cmdline - APP_VERSION: 添加 :-unknown 默认值,防止变量缺失时健康检查端点崩溃 |
||
|
|
7fc72f5888 |
fix(worker): 修复 healthcheck,容器无 pgrep 改用 Python 检查进程
Deploy / Deploy Staging (push) Failing after 156h46m23s
CI/CD Pipeline / Frontend Lint (push) Failing after 156h47m53s
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 156h48m0s
Deploy / Production Browser E2E (push) Failing after 1815h9m12s
Deploy / Build Production Runtime Images (push) Failing after 1815h9m18s
Deploy / Deploy Production (push) Failing after 1815h40m39s
|
||
|
|
f243a723c4 |
fix(worker): 修复 healthcheck 配置,改用进程检查替代 celery inspect ping
Tests / lint (pull_request) Failing after 157h17m12s
Tests / test (pull_request) Failing after 157h17m12s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 157h17m56s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 157h18m1s
Deploy / Deploy Staging (push) Failing after 157h31m33s
CI/CD Pipeline / Frontend Lint (push) Failing after 157h32m13s
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 157h32m20s
Deploy / Production Browser E2E (push) Failing after 1816h4m14s
Deploy / Build Production Runtime Images (push) Failing after 1816h4m18s
Deploy / Deploy Production (push) Failing after 1816h35m40s
- 修正 celery app 路径错误(app.celery_app → worker_app.celery_app) - celery inspect ping 依赖 broker 连接,容器内不可靠 - 改用 pgrep -f 'celery.*worker' 进程检查,更稳定 - 调整 start_period 为 30s(与 API 容器保持一致风格) |
||
|
|
e9b6fbcf2c |
Merge remote-tracking branch 'origin/main' into develop
Deploy / Deploy Staging (push) Failing after 161h20m13s
Tests / lint (pull_request) Failing after 161h20m13s
Tests / test (pull_request) Failing after 161h20m13s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 161h20m48s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 161h20m53s
CI/CD Pipeline / Frontend Lint (push) Failing after 161h21m27s
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 161h21m34s
Deploy / Production Browser E2E (push) Failing after 1819h50m9s
Deploy / Build Production Runtime Images (push) Failing after 1819h50m13s
Deploy / Deploy Production (push) Failing after 1820h21m34s
# Conflicts: # infra/docker/api.Dockerfile |
||
|
|
c9f95ed5a6 |
fix: 添加容器日志轮转配置和 Worker 健康检查
CI/CD Pipeline / Validate Code Quality And Tests (push) Has been cancelled
CI/CD Pipeline / Frontend Lint (push) Has been cancelled
Deploy / Deploy Staging (push) Has been cancelled
Deploy / Build Production Runtime Images (push) Has been cancelled
Deploy / Deploy Production (push) Has been cancelled
Deploy / Production Browser E2E (push) Has been cancelled
|
||
|
|
7d1d086c94 |
Merge develop → main: 端口绑定安全修复 + CI workflow同步
Auto Merge PRs / auto-merge (push) Failing after 31s
Deploy / Deploy Staging (push) Failing after 205h21m26s
CI/CD Pipeline / Frontend Lint (push) Failing after 205h24m40s
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 205h24m48s
Deploy / Production Browser E2E (push) Failing after 1863h44m10s
Deploy / Deploy Production (push) Failing after 1863h50m45s
Deploy / Build Production Runtime Images (push) Failing after 1863h53m54s
|
||
|
|
4b8605c679 | security: 端口绑定限制为 127.0.0.1 (API/Web) | ||
|
|
18873e9db9 |
fix: 修复 APP_VERSION 环境变量读取 - 从 env_file 中读取而非使用默认值
Auto Merge PRs / auto-merge (push) Failing after 35s
|
||
|
|
d3fce20921 | fix(compose): remove conflicting mem_limit, consolidate to deploy.resources.limits | ||
|
|
3292a5d655 | fix: 持久化 api/worker 容器内存限制,改用 mem_limit: 2g 替代 deploy.resources.limits.memory | ||
|
|
ec96feee22 |
fix(deploy): Worker 容器内存限制从 4G 降至 2G
- Worker 实际内存使用仅 ~156MiB,4G 限制远超需求 - 业务服务器总内存仅 1.7Gi,过高限制影响其他容器 - 2G 限制已足够应对视频处理峰值需求 |
||
|
|
a5c5da50c6 |
fix: 修复 jwt_service.py 错误的 settings 导入路径导致登录 401
- packages.config.settings 模块不存在,改为 from app.config import settings - 此 bug 导致 JWT token 生成时 ModuleNotFoundError,被 except 捕获后返回通用 401 |
||
|
|
78e1af1054 |
feat: 标准化部署流程和文档化
- 添加 docs/deployment.md 完整部署文档,包含: - 环境要求 - 首次部署流程 - 版本更新流程 - 回滚流程 - 常见问题排查 - 环境变量说明 - 添加标准化部署脚本: - scripts/deploy_production.sh: 生产环境部署脚本 - scripts/deploy_staging.sh: 预发布环境部署脚本 - scripts/rollback.sh: 回滚脚本(支持交互式和命令行模式) - 完善 infra/docker/compose.yml: - 添加详细注释说明 - 添加资源限制建议(注释) - 记录 web volume 挂载的注意事项(避免 403 问题) - 添加 .github/workflows/release.yml: - 完整的发布流程 - 构建所有三个镜像(api、worker、web) - 自动部署到生产环境 - E2E 测试和 GitHub Release 创建 |
||
|
|
816d98175a | fix(ops): expose release version and limit worker concurrency | ||
|
|
1cf43fa6a0 | fix(deploy): isolate production web api proxy | ||
|
|
1939878dec | fix(deploy): require prebuilt web artifact for production | ||
|
|
6d68c28860 | chore(release): validate production env readiness | ||
|
|
e61dfc27f6 | refactor(deploy): freeze canonical docker entrypoint | ||
|
|
c93e064f3b | fix(deploy): bind generated files to host path | ||
|
|
bcfad4ad6a | fix(deploy): expose generated video files | ||
|
|
1e3a52fa17 | fix(worker): persist generated mp4 without oss | ||
|
|
d31c62d4e2 | fix(deploy): align deployment with split infrastructure | ||
|
|
94dd60108c |
refactor: 彻底迁移到阿里云 OSS 并重构基础设施
- 删除 MinIO 依赖,改用阿里云 OSS (oss2) - 重写存储服务 storage.py(完全兼容原接口) - 更新配置:config.py 改为 OSS_* 配置项 - 重构 Docker Compose:分离基础设施(infra.yml)和应用(compose.yml) - 添加健康检查和自动重启配置 - 创建标准化部署脚本(init-server.sh + deploy.sh) - 统一 Nginx 配置(主域名 api.xiaoxiajianji.com) - 修复 Web Dockerfile 端口映射(80 not 3000) 服务器清理完成: - 删除旧云控制台、监控系统、桌面版代码 - 删除 2.6GB 旧安装包 - 清理 Docker 缓存 2.5GB - 磁盘使用率从 48% 降至 26% |
||
|
|
9fe0614d43 | feat: add deployment configs, systemd service, and tracker init scripts | ||
|
|
f69e649c7f | chore: wire real host-based gitea deploy | ||
|
|
4475677763 | chore: wire deployment to environment-based configuration | ||
|
|
b5a62ee9a3 |
feat: initial SaaS scaffold
- domain: User, Workspace, Project, AssetLibrary, Asset, IngestJob - ports: repository interfaces - application: use cases - adapters: in-memory - API: FastAPI 5 routes - worker: Celery ingest_asset - tests: 4 passing |