Skip to content

feat: APT 源聚合 mcpc/oapi,新增手动 republish workflow - #91

Merged
lloydzhou merged 1 commit into
mainfrom
feature/apt-aggregate
Sep 11, 2026
Merged

feat: APT 源聚合 mcpc/oapi,新增手动 republish workflow#91
lloydzhou merged 1 commit into
mainfrom
feature/apt-aggregate

Conversation

@lloydzhou

Copy link
Copy Markdown
Owner

概述

APT 源(lloydzhou.github.io/bash-agent/debian)从单包(bash-agent)升级为聚合三仓库:bash-agent + mcpc + oapi。源地址不变,已配置的老机器零感知,apt install mcpc oapi 直接可用。

改动

文件 说明
scripts/apt/build-apt-repo.sh scripts/build-apt-repo.sh\} 迁移;deb 收集从 bash-agent__{amd64,arm64}.deb泛化为_{amd64,arm64}.deb`
scripts/apt/fetch-debs.sh 新增。从 lloydzhou/{bash-agent,mcpc,oapi} 最新 release 下载 deb(公开仓库匿名 API 即可,无需 PAT);支持显式传仓库列表;任一仓库缺 deb 资产即报错中止,防止发布缺包的源
.github/workflows/ci.yml release job 建源前先 fetch-debs.sh dist lloydzhou/mcpc lloydzhou/oapi(bash-agent 用本地刚构建的 deb,避免 latest API 延迟导致版本回退)
.github/workflows/apt-republish.yml 新增,仅 workflow_dispatch:聚合三仓库 → 全量重建源(GPG 签名沿用现有 secrets)→ 部署 Pages。mcpc/oapi 发新版后手动跑一次即刷新源内对应包

设计要点

  • 幂等全量重建:源每次从 dist 全量生成(pool 无历史版本),聚合 = 扩 glob + 下载,无增量合并复杂度
  • 双写路径一致:tag 发版(ci.yml)与手动 republish 走同一套脚本,源内永远三包齐全,不存在覆盖竞争
  • concurrency group: pages:与 release job 的 Pages 部署互斥排队
  • GPG secrets 无需复制:republish 在 bash-agent 仓库内运行,直接用现有 secrets

依赖

mcpc / oapi 侧需先合入各自 deb 打包 PR 并发 v0.1.1(deb 加入 release assets),否则 fetch-debs.sh 会按设计中止。

本地验证

  • fetch-debs.sh .apt-test lloydzhou/bash-agent:成功下载 4.3.7 双架构 deb
  • fetch-debs.sh 对无 deb 资产的 mcpc:正确报错退出(exit 1)
  • 泛化后 build-apt-repo.sh 用真实 bash-agent deb 干跑:Packages/Release/pool/cnf 结构与线上源一致

- scripts/build-apt-repo.sh → scripts/apt/build-apt-repo.sh,收集全部
  *_{amd64,arm64}.deb(不再限定 bash-agent_*)
- 新增 scripts/apt/fetch-debs.sh:从 lloydzhou/{bash-agent,mcpc,oapi}
  最新 release 下载 deb;任一仓库缺 deb 资产即中止,防止发布缺包的源
- ci.yml release job:建源前先 fetch mcpc/oapi deb(bash-agent 用本地
  刚构建产物,避免 latest API 延迟导致版本回退)
- 新增 .github/workflows/apt-republish.yml:仅 workflow_dispatch,聚合
  三仓库全量重建源并部署 Pages,mcpc/oapi 发版后手动跑一次即刷新
@lloydzhou
lloydzhou merged commit 9f69f75 into main Sep 11, 2026
40 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