Skip to content

feat: 完善上游同步和发布系统#2

Merged
peter5842 merged 2 commits intomainfrom
feat/improve-sync-and-release
Mar 20, 2026
Merged

feat: 完善上游同步和发布系统#2
peter5842 merged 2 commits intomainfrom
feat/improve-sync-and-release

Conversation

@peter5842
Copy link
Owner

问题

  1. Docker latest 被低版本覆盖(v0.1.100 覆盖 v0.1.104)
  2. 同步所有上游 tag 导致旧版本重新发布
  3. GHCR manifest 创建超时(55+ 分钟)
  4. 多个 release workflow 并发执行产生竞态条件

解决方案

1. 智能版本过滤

  • 只同步比 fork 当前版本新的 tag
  • 避免旧版本重新发布

2. 顺序发布

  • 按版本号升序依次推送 tag
  • 每次推送后等待 release workflow 完成
  • 避免并发竞态条件

3. 全局并发控制

  • release workflow 使用全局并发组
  • 确保同一时间只有一个 release 运行

4. 容错处理

  • GoReleaser 添加 30 分钟超时
  • GHCR 失败不影响 DockerHub 和 GitHub Release
  • ensure-latest 始终执行,即使 release 失败

5. 禁用 GHCR

  • 移除 GHCR 配置,避免超时问题
  • 只保留 DockerHub 镜像

修改文件

  • .github/workflows/release.yml
  • .github/workflows/main-post-merge.yml
  • .goreleaser.yaml

验证

已手动触发 v0.1.104 release 修正 Docker latest

peter5842 and others added 2 commits March 20, 2026 22:26
Prevents failure when VERSION file already matches the release tag.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- 智能版本过滤:只同步比 fork 当前版本新的 tag
- 顺序发布:按版本号升序依次发布,避免并发竞态
- 全局并发控制:确保同一时间只有一个 release 运行
- 容错处理:GHCR 超时不影响 DockerHub 和 GitHub Release
- 禁用 GHCR:避免 manifest 创建超时问题
- ensure-latest 始终执行:即使 release 失败也修正 latest tag

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@peter5842 peter5842 enabled auto-merge March 20, 2026 16:24
@peter5842 peter5842 merged commit 1f46f1a into main Mar 20, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant