You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用GitHub Action将构建的deb包部署为APT仓库格式的GitHub Pages

可行,实现方案如下

核心思路

通过GitHub Action完成deb包每日构建后,调用APT工具链生成仓库必需的元文件(Packages、Release等),再将完整的仓库目录推送到GitHub Pages对应的分支(通常为gh-pages),最终用户可通过配置APT源直接安装每日构建产物。

具体步骤

1. 规划仓库目录结构

在项目仓库中创建debs/目录,用于存放所有构建生成的deb包和APT仓库元文件。

2. 编写GitHub Action工作流

在.github/workflows/下创建build-deploy-apt.yml,示例内容如下:

name: Daily Deb Build & APT Repo Deploy

on:
  schedule:
    - cron: '0 0 * * *' # 每日UTC 0点自动触发构建
  workflow_dispatch: # 支持手动触发

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout source code
        uses: actions/checkout@v4

      # 替换为你的deb包构建逻辑,比如用dpkg-buildpackage、make等
      - name: Build deb package
        run: |
          mkdir -p debs
          # 示例:假设你的构建脚本生成deb到当前目录,复制到debs目录
          cp *.deb debs/ || echo "No deb files generated, check build steps"

      # 生成APT仓库元文件
      - name: Generate APT repo metadata
        run: |
          cd debs
          # 生成Packages索引并压缩
          dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
          # 生成Release文件
          apt-ftparchive release . > Release
          # 可选:用GPG签名Release文件(提升源可信度)
          gpg --batch --yes --passphrase "${{ secrets.GPG_PASSPHRASE }}" --armor --detach-sign Release

      # 部署到GitHub Pages
      - name: Deploy to gh-pages branch
        uses: peaceiris/actions-gh-pages@v4
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./debs
          publish_branch: gh-pages

3. 配置GPG签名(可选但强烈推荐)

  • 本地生成GPG密钥对:gpg --full-generate-key
  • 导出公钥:gpg --armor --export your-email@example.com > public.key,可将公钥放在仓库根目录供用户下载导入
  • 将GPG私钥(ASCII格式)和密钥密码分别添加到GitHub仓库的Secrets中,命名为GPG_PRIVATE_KEY和GPG_PASSPHRASE(若工作流中需要导入私钥,需添加gpg --import步骤)

4. 启用GitHub Pages

进入仓库Settings → Pages,设置源为gh-pages分支的根目录,保存后等待部署完成,获取Pages访问地址(例如https://your-username.github.io/your-repo/)

5. 客户端配置APT源

  • 创建源配置文件:sudo nano /etc/apt/sources.list.d/myrepo.list
  • 添加源地址:
    • 未启用GPG签名:deb [trusted=yes] https://your-username.github.io/your-repo/ ./
    • 已启用GPG签名:deb https://your-username.github.io/your-repo/ ./(需先导入公钥:sudo apt-key add public.key)
  • 更新源并安装包:
sudo apt update
sudo apt install your-package-name

注意事项

  • 若支持多架构,需按架构拆分目录(如debs/amd64/、debs/arm64/),并调整dpkg-scanpackages的参数适配多架构索引
  • GitHub Pages有带宽限制,若下载量较大,可搭配CDN或第三方存储服务
  • 定期清理旧deb包,避免仓库体积过大影响部署效率

内容的提问来源于stack exchange,提问作者Loreno Heer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 02:57:51