3 Commits
Author SHA1 Message Date
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