Documentation

CI 自动推送版本与安装包

CI 自动推送版本与安装包

适用版本:产品管理插件 3.1.0;内容依据当前源码核对,更新日期:2026-10-10。

流程与准备

发布 Release → 构建并归档安装包 → 上传站点附件 → 推送版本记录 → 管理员审核上线。

授权中心需要已创建的授权单品 Key、版本推送令牌和附件存储配置。套餐父产品不能接收版本安装包。版本推送令牌与公开展示 API Token 独立,留空时推送接口关闭。

CI 配置

仓库 Variables 配置 AUTH_CENTER_URL,Secrets 配置 AUTH_CENTER_TOKEN。使用当前项目可复用工作流时,在已有构建 job 之后追加:

jobs:
  push-version:
    needs: build
    uses: liuyiwuqing/halo-plugin-product/.github/workflows/push-product-version.yml@main
    with:
      product-key: PluginExample
      auth-center-url: ${{ vars.AUTH_CENTER_URL }}
      package-file-pattern: '*.jar'
      upload-package: true
    secrets:
      AUTH_CENTER_TOKEN: ${{ secrets.AUTH_CENTER_TOKEN }}

替换实际产品 Key,build 指向已有构建和 Release 归档 job。主题使用 *.zip 并按需要设置描述文件路径;生产使用可固定已验证的工作流引用。

接口

以下接口使用请求头 X-Api-Token: <版本推送令牌>:

方法与路径后缀用途
GET product-version-info/push-verify?productKey=...产品绑定预检
POST product-version-info/upload-packagemultipart 上传安装包
POST product-version-info/pushJSON 推送版本

公共前缀为 /apis/public.product.muyin.site/v1alpha1/。上传字段包括 productKey、version、sha256、file,可提供 size 和 sourceUrl;版本推送至少包含 productKey、version,其余按业务提供变更说明、兼容范围及上传得到的附件引用。

幂等与发布

版本按产品 Key 与归一化版本号定位,v1.2.3 归一化后与 1.2.3 比较。新建默认 UNPUBLISHED;重复推送更新允许字段,保留现有状态和发布时间。上传相同摘要可复用附件;摘要改变时新建附件并由独立任务处理不再引用的旧文件。

验收与排障

先确认 Release 资产存在,再检查上传结果、SHA-256、站点真实可下载地址及未发布版本。私有仓库优先使用站点附件,避免无法匿名下载的 Release 地址。默认包大小上限为 200 MB,可在设置调整。推送成功后仍需管理员上线;不要在日志输出推送令牌。

相关文档

评论