chore(ci): 端口与PG配置常量集中管理,清理硬编码 #811
Reference in New Issue
Block a user
Delete Branch "ci/port-env-cleanup"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
变更内容
新增
scripts/ci/ci_env.sh— CI共享常量文件,集中管理端口/用户/密码/DB名等配置修改
scripts/ci/validate_migration.sh— source ci_env.sh,移除SHARED_PG_PORT/USER/PASSWORD硬编码scripts/ci/run_validate.sh— 同上scripts/ci/run_integration_tests.sh— 同上.gitea/workflows/ci-pipeline.yml— workflow级env变量统一管理,两处DATABASE_URL从硬编码改为变量引用清理清单
SHARED_PG_PORT="5433"→${CI_SHARED_PG_PORT}SHARED_PG_USER="postgres"→${CI_SHARED_PG_USER}SHARED_PG_PASSWORD="ci_pg_2026!"→${CI_SHARED_PG_PASSWORD}host.docker.internal:5432硬编码 →${{ env.CI_PG_HOST }}:${{ env.CI_PG_PORT }}好处
代码审查结果 - PR #811
⚠️ 问题(2个需要修改)
scripts/ci/run_integration_tests.sh 第228行:临时容器使用了错误的数据库凭据
else分支(启动临时 PostgreSQL 容器)中,DATABASE_URL使用了${CI_SHARED_PG_USER}和${CI_SHARED_PG_PASSWORD}。CI_SHARED_PG_PASSWORD是用于连接“常驻共享 PG 实例”的密码(ci_pg_2026!)。新启动的postgres:16临时容器默认并未设置此密码(除非docker run命令中未显示的 diff 部分传递了-e POSTGRES_PASSWORD,否则默认为空或 trust)。这将导致在CI_USE_SHARED_PG=false时,数据库连接认证失败,CI 任务崩溃。scripts/ci/run_validate.sh 第463行:临时容器使用了错误的数据库凭据
else分支中构建DATABASE_URL时使用了共享实例的密码变量${CI_SHARED_PG_PASSWORD}。.gitea/workflows/ci-pipeline.yml 第33行:敏感信息硬编码
ci_env.sh中硬编码了数据库密码ci_pg_2026!。💡 建议(1个可选)
ci_env.sh仅定义了CI_SHARED_PG_*变量,但在脚本中被误用于临时容器。建议增加CI_LOCAL_PG_USER和CI_LOCAL_PG_PASSWORD(默认为postgres),并在脚本的else分支中使用这些独立变量,以明确区分“共享实例”和“临时实例”的配置,避免逻辑混淆。✅ 格式检查通过 | ❌ 逻辑审查需修改 | ⚠️ 建议关注性能
🤖 由 AI 代码审查机器人自动生成 | 2026-07-24 03:18:22 | 模型:
🗑️ 预览环境已清理
PR #811 已关闭或合并,对应的预览环境已被清理。