5 Commits
Author SHA1 Message Date
sun ec82e895c3 chore(ci): 删除 ci.yml workflow
该 workflow 没有实际价值:

- 仓库按策略不提供测试源码(*_test.go 被 .gitignore 屏蔽),因此其中的
  go test 步骤在干净克隆上只是空转(打印 no test files 后通过),它连
  "测试是否存在"都不会告诉你,自然守不住行为回归。
- 剩下的 go build / go vet 收益也很有限 —— 真正会用到编译产物的 docker.yml
  在发版打 tag 时本就会完整构建一次。

删除后仓库只保留 docker.yml(打 tag 时构建并推送镜像),不再有多余的自动化。

同步清理对它的引用:
- CHANGELOG 的"新增 CI 校验"条目(改述为"没有自动化质量门")
- .gitignore 里测试策略注释中指向 ci.yml 的那句
- docs/UPSTREAM_ADAPTER_GUIDE.md 第 7 节(原表述"CI 跑不到你的测试"已不准确,
  改为"没有任何自动化会跑你的测试")
2026-10-04 16:26:32 +08:00
sun ad342ec8f1 ci: 新增 build/vet/test 质量门
CI / build-and-test (push) Canceled after 0s
此前仓库唯一的 workflow 只在打 tag 时构建 Docker 镜像,不做任何编译或测试校验,加上测试源码不入库,导致 go test 全绿从来没有被自动化校验过。

新增 ci.yml:push / PR 到 develop、main 时跑 go build ./... / go vet ./... / go test ./... -count=1,再单跑一遍集成测试并输出明细。版本以 go-version-file 跟随 go.mod;-count=1 禁用测试缓存。
2026-10-03 16:18:54 +08:00
sun 21e1fd1fbb ci(docker): 修 workflow 非法表达式, secrets 改经 job env 透传
Docker Publish / build-and-push (push) Canceled after 0s
GitHub Actions 拒绝加载本 workflow, 报:
  Invalid workflow file: .github/workflows/docker.yml#L1
  (Line: 49, Col: 13): Unrecognized named-value: 'secrets'.
  Located at position 40 within expression:
  github.event_name != 'pull_request' && secrets.DOCKERHUB_USERNAME != ''

原因: secrets 上下文不允许在 step 的 if: 表达式里引用(GitHub 沙箱限制)。
secrets 只在 with: / env: / run: 等位置可用, if: 里必须走 env 中转。

修复:
  - 新增 job 级 env: DOCKERHUB_USERNAME / DOCKERHUB_TOKEN (值来自 secrets)
  - DockerHub login step: if 改 env.DOCKERHUB_USERNAME != ''
  - DockerHub login step: username/password 改读 env.*
  - metadata-action images: DockerHub 那行改 env.DOCKERHUB_USERNAME,
    enable 判断同样改 env 上下文

副作用: 无。secret 未配置时行为不变(跳过 login + 不渲染 DockerHub image)。
已用 js-yaml 校验 YAML 结构合法, 并扫描确认全部 step 的 if: 不含 secrets 引用。
2026-09-28 23:30:57 +08:00
sun 9c10a0e49f ci(docker): 合并为单一 GHCR+DockerHub 双推送 workflow,加 GHA 缓存
原 .github/workflows/docker.yml:
  - 触发: v* tag + 手动
  - 仅推 GHCR
  - 无 build 缓存
  - buildx action v5

新版本:
  - 触发: v*.*.* tag (限定 semver, 避免 vtest 误触发) + 手动按钮
  - 双 registry 推送: GHCR (默认) + DockerHub (blueink05/ttshub,需 secrets)
  - GHA buildx cache (cache-from + cache-to, mode=max): 首次 ~3-5 min, 后续 30-60s
  - buildx action v6
  - multi-arch (amd64+arm64, 不变)
  - tag 策略: semver + major.minor + tag->latest + short sha
  - 安全网: secrets.DOCKERHUB_USERNAME 空时自动跳过 DockerHub login + image name 渲染,
    避免生成 'docker.io//ttshub' 这种非法 image 名
  - 不验 PR 编译(合到 main 不重跑, 只在打 tag 时构建)
  - workflow_dispatch 推镜像: push 表达式保留 '!= pull_request' 兼容未来扩展

需要 GitHub repo 配置的 secrets:
  - DOCKERHUB_USERNAME = blueink05
  - DOCKERHUB_TOKEN    = (hub.docker.com/settings/security 拿 access token)
没加之前,DockerHub login 步骤被 actions 自动跳过,只推 GHCR 一份。

Dockerfile / docker-compose.yml / .dockerignore 不动(Dockerfile 1.26-alpine
base image 已确认存在,tags list 拉到 tip-20260920)。
2026-09-28 21:36:30 +08:00
sun cdc9a7c94b ci: 添加 GitHub Actions Docker 发布 workflow
为 Gitea→GitHub 镜像 + GitHub 镜像仓库场景准备 Docker 镜像
自动构建和发布流程。

触发条件:
  - push tag v*  (release 时打 tag 自动触发)
  - workflow_dispatch  (手动触发,可在 GitHub UI 测试)

构建:
  - 多平台:linux/amd64 + linux/arm64
  - 通过 QEMU + Buildx 跨架构构建
  - 推送到 ghcr.io/<github-user>/volcano-engine-tts-ui
  - 双标签:语义版本 + 短 commit hash
  - OCI labels 包含 version 和 revision

与之前 version 包配合:
  workflow 用 git describe --tags --always --dirty 算 VERSION
  (commit hash 类似),通过 --build-arg 传给 Dockerfile,
  Dockerfile 用 -ldflags 注入到 version.Version / version.Commit
  两个变量。最终 /health 端点返回构建时注入的真实版本信息。

前置条件(用户需自行完成):
  1. GitHub 建镜像仓库
  2. Gitea 配置 Push Mirror 到 GitHub(开启 Sync Tags)
  3. 仓库设为 Public(否则 GHCR 镜像默认 private)
2026-08-27 10:43:19 +08:00