调整分支策略: 仅 master 部署, 取消 dev-* 自动发布
分支规则 (写入 readme): - master 主分支, 唯一部署出口, push 即发布生产 - dev-* 开发集成分支, 只跑 CI 校验, 不部署; 上线先合到 master - tmp-* 临时分支, 针对单个问题, 合到 dev-* 后删除 - android-* 仅触发 APK 外壳构建, 构建前须与 master 同步 CI 变更: - .gitea/workflows/docker-build.yml 触发分支收窄为 master 此前 dev-* 与 master 共用同一套生产环境, 推送开发分支即直接发布, 容易把半成品带上线, 现取消该触发 - 同步修正工作流内相关注释 (迁移时机, 版本校验范围) 文档变更: - readme 新增「分支规则」章节: 职责表/流程图/CI 触发范围/变更说明 - readme 原「分支与 CI/CD」章节与新规则冲突, 已按新策略重写 (dev-* 不再触发部署; 数据库迁移只在 master 发布时应用) - 明确团队约定的 main 主分支在本仓库落地为 master
This commit is contained in:
@@ -1,17 +1,22 @@
|
||||
name: Docker Build and Push
|
||||
|
||||
# main / master / dev-* 分支 push 触发, 其他分支不触发
|
||||
# 仅主分支 (master) push 触发部署; 其他分支一律不触发 (见 readme「分支规则」)
|
||||
# 每次提交: 构建前端 + 生成 OTA 升级包 (签名) → 打进 Docker 镜像 → 自动升级数据库 → 部署
|
||||
# OTA 随镜像发布: 容器内 OTA_PACKAGE_DIR=/app/ota-package 指向打包的 ota-package/
|
||||
#
|
||||
# dev-* (如 dev-0.1 / dev-0.2) 与 main/master 部署到同一套环境 (容器 iboard, 宿主 3001),
|
||||
# 即开发分支推送 = 直接发布: 数据库共用同一个库, migrate deploy 在启新容器前执行 (幂等).
|
||||
# 分支策略 (2026-10 调整):
|
||||
# - master = 主分支, 唯一部署出口, push 即发布生产 (容器 iboard, 宿主 3001)
|
||||
# - dev-* = 开发集成分支, 只做 CI 校验 (构建/版本一致性), **不再自动部署**;
|
||||
# 要上线必须先合并到 master 再推 master
|
||||
# - tmp-* = 单个问题的临时分支, 合到 dev-* 后删除
|
||||
# - android-*= 只用于触发 APK 外壳构建, 不部署; 改动前须与 master 同步
|
||||
#
|
||||
# 历史: 之前 dev-* 与 master 共用同一套生产环境 (推送即发布), 容易把半成品带上线,
|
||||
# 现已取消 dev-* 的 push 触发。
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- master
|
||||
- 'dev-*'
|
||||
|
||||
jobs:
|
||||
build-image:
|
||||
@@ -39,6 +44,7 @@ jobs:
|
||||
# (tauri.conf.json 的 version 就是 APK 的 versionName)
|
||||
# 2) 防止 OTA 版本号与分支错位: OTA 包的 version 直接取自 package.json,
|
||||
# dev-0.2 分支上必须是 0.2.x, 否则线上 OTA 会报成上一个版本的号
|
||||
# (master 分支跳过分支前缀校验, 但四处一致性照样强制)
|
||||
env:
|
||||
GITHUB_REF_NAME: ${{ github.ref_name }}
|
||||
run: node scripts/ci/check-version.mjs
|
||||
@@ -75,7 +81,7 @@ jobs:
|
||||
run: docker images
|
||||
|
||||
- name: Apply DB migrations
|
||||
# 数据库自动升级: 按 prisma/migrations/ 下的迁移顺序应用 (dev-* 与 main/master 共库)
|
||||
# 数据库自动升级: 按 prisma/migrations/ 下的迁移顺序应用 (生产库由 master 部署时统一升级)
|
||||
# migrate deploy 幂等, 无新迁移时为 no-op
|
||||
# 位置关键: 在 "Remove old container" 之前 —— 建表/改表成功后才切换流量,
|
||||
# 迁移失败则整个 workflow 中断, 不会用新镜像顶掉仍在运行的旧容器
|
||||
|
||||
Reference in New Issue
Block a user