Commit Graph

11 Commits

Author SHA1 Message Date
zhengchen.tao 6baf668696 build/deploy 合并为单 workflow 双 job,删除 deploy.yml
原 workflow_run 链触发会在 Actions 列表产生两条独立 run,UX 割裂。
合并后单 run + dependency graph 显式串联 build → deploy。

代价:失去"不 rebuild 只 redeploy"的 UI 单点触发,临时只想
重启容器需直接 ssh NAS 跑 docker compose up -d。

paths-ignore 同步移除已不存在的 deploy.yml 项。
2026-05-04 00:37:44 +08:00
zhengchen.tao 65d52571de build/deploy workflow 加 concurrency cancel-in-progress
并发组 = workflow name + ref。同分支连续 push 时:
- 新 run 入组发现已有 in-progress run → 立即取消旧的,新的开跑
- 最终只构建 + 部署最新代码,省 CI 时间
- 不同分支的 build/deploy 互不干扰(虽然当前只 custom 用)
- build 与 deploy 是两个独立 workflow name,互不影响(build 跑时
  deploy 不会被取消,反之亦然)

CLAUDE.md 同步加"并发取消策略"段说明该行为。
2026-05-02 21:18:39 +08:00
zhengchen.tao 4bdd2c7195 deploy.yml 移除 CUSTOM_DEPLOY_SCRIPTS 变量,部署脚本内联
原 vars.CUSTOM_DEPLOY_SCRIPTS 来自 deploy.yml 上游模板设计,本意是
"通用 hook,让一份 deploy.yml 复用到不同项目"。本仓库只有一个项目
一种部署场景,这层抽象纯属累赘:
- 改部署逻辑得去 Gitea UI 点 Variables,没法 PR review
- git log 看不到部署逻辑改动
- 脚本到底跑啥得对照 yml + Variable 两处

直接把 docker compose pull/up 内联进 deploy.yml,单一事实源在 git。

支持私有 / 公开两种 nas-infra:
- secrets.NAS_INFRA_TOKEN 设了 → 用 token clone(私有适用)
- 没设 → 裸 URL clone(公开适用)

CLAUDE.md 同步更新 deploy.yml 的描述。
2026-05-02 21:10:35 +08:00
zhengchen.tao 9da91ad54f deploy.yml 改自动触发:build 成功后 workflow_run 链式触发
- on.workflow_run: 监听 Build Docker Image 完成事件,分支限 custom
- if 条件:仅在 build 成功时跑 deploy(失败时跳过,避免部署半成品)
- workflow_dispatch 保留作为手动备选(重新部署当前镜像 / 应急脚本)
- 脚本生成改 > 覆盖(原 >> 会累积历史脚本)+ 加 set -e 失败即停
- 加 Deploy summary 步骤把触发链路信息写入 GITHUB_STEP_SUMMARY
  方便从 UI 看到本次 deploy 跟在哪次 build 后面

CLAUDE.md 同步更新 workflow 清单 + 流程图:现在 push → build →
deploy 全自动 CD,仅需在 repo Variables 里配 CUSTOM_DEPLOY_SCRIPTS
脚本内容才能产生实际部署效果。
2026-05-02 21:07:09 +08:00
zhengchen.tao 32a49be913 build-image workflow 改自动触发 + 保留手动备选
- on.push.branches: [custom] —— 推送 custom 自动跑
- on.push.paths-ignore:屏蔽 *.md / .gitignore / LICENSE / screenshot/**
  避免 doc-only 改动浪费 ~10 min 构建
- on.workflow_dispatch 保留作为应急通道(重打旧 commit / 自定义 tag)
- checkout ref 兼容两种触发:${{ inputs.branch || github.ref_name }}
  - workflow_dispatch:用用户填的 branch(默认 custom)
  - push:fallback 到 github.ref_name(即触发分支,永远是 custom)
- Build summary 加"触发方式"行,便于区分本次是自动还是手动

预期:本提交本身就会触发自动构建(改了 .gitea/workflows/build-image.yml
不在 paths-ignore 内),相当于 self-test。
2026-05-02 20:41:22 +08:00
zhengchen.tao ebcc03d3d0 docs: ci 分支已删除,更新 CLAUDE.md 与 build summary 措辞
ci 分支于 2026-05-02 删除(默认分支已切到 custom,workflow 文件已
迁回 custom)。更新各处反映"两分支模型 main + custom"的最终状态:

- CLAUDE.md "三个分支" → "两个分支",ci 段改写为"已退役 + 历史
  说明",给后续 Claude 解释 git log 里 555ecc1a 这条迁移提交
- 同步历史里 2026-05-02(后续) 那条加上"随后删掉 ci 分支"的事实
- build-image.yml 的 Build summary 步骤移除"UI 顶部 commit 是 ci"
  的警示注释(workflow 已在 custom,runs 列表 commit 直接就是
  代码 commit,不再需要这条解释)
2026-05-02 20:34:38 +08:00
zhengchen.tao 0be04287c8 docs: CLAUDE.md 更新为 workflow 已迁到 custom 的事实
- 三分支表更新:custom 是 default branch + 持有 workflow,ci
  降级为过渡态历史分支
- 改写"为什么 workflow 在 custom 不在独立分支"段,记录设计决策
  演进的真实理由(runs 列表 UX 优于 meta/code 分离的设计美感)
- workflow 清单从 5 项缩到 3 项,记录 docker-release/snapshot
  已删的事实
- "给后续 Claude" 提示中"不要把工作流提交到 custom" 改为相反
  方向(直接在 custom 改 workflow)
- 同步历史补 555ecc1a (workflow 迁移) 与 75b4d78d (numpad fix)
2026-05-02 18:38:00 +08:00
zhengchen.tao 47b5641597 docs: CLAUDE.md 解释 ci/custom 不需保持一致 + UI commit 不等于构建 commit
补充三分支拓扑后的"FAQ 段":

- ci 与 custom 内容不重叠是设计,不是 bug
- Gitea Actions UI 顶部显示的 commit 是 workflow dispatch 触发
  位置(即 ci 的 HEAD),不是构建源代码 commit
- 真实构建的代码 commit 在镜像 tag / OCI revision label /
  workflow 末尾 Build summary 三处都能看到,看 summary 区即可

附两条可选替代方案(workflow 挪 custom / 加 push trigger 自动构建),
说明当前选择的中间路径理由。
2026-05-02 18:26:40 +08:00
zhengchen.tao 29c164439c docs: CLAUDE.md 加 ci 分支 workflow 清单 + 链 FORK.md
ci 分支 5 个 workflow(sync-upstream / build-image / deploy /
docker-snapshot / docker-release)全部列表化,含触发条件、职责、
当前状态。明确"日常只用 sync-upstream + build-image 两个,
其他三个要么按需配置要么后续清理"。

custom 分支说明里加链接指 FORK.md(feature 维度的清单),
顶部说明区域厘清"meta(CLAUDE.md)vs 改动清单(FORK.md)vs
通用决策框架(不入库)"三层关系。
2026-05-02 17:58:43 +08:00
zhengchen.tao c929e950e1 docs: CLAUDE.md 加 backend 测试踩坑 + 通用排查原则
CI 故障排查路径表加一行"测试/lint 失败 → 先看 Dockerfile ARG",
强调先对齐上游 CI 跳过开关(BUILD_PIPELINE / CHECK_3RD_API /
SKIP_TESTS)再考虑改测试代码。同步历史补 2026-05-02 第三层修复。
2026-05-02 16:07:58 +08:00
zhengchen.tao 6b8d9fcb13 docs: 加仓库级 CLAUDE.md(分支拓扑 + 同步流程 + CI 排查路径)
记录 fork 工作流(main 锚 tag / custom 改动 / ci 工作流),
2026-05-01 rebase 与 2026-05-02 build 修复历史,
以及给后续 Claude 会话的 CI 故障分流路径表。
2026-05-02 15:35:47 +08:00