使用 GitHub Action 自动打包发包到 AUR 仓库

GitHub Action 是一种强大的自动化工具,可以帮助开发者自动化构建、测试和部署流程。对于想要将软件发布到 AUR(Arch User Repository)的用户来说,自动化这一过程可以大大提高效率。本文将介绍如何使用 GitHub Action 自动打包并发布软件到 AUR 仓库。

项目介绍

项目名为 aur-auto,由用户 xifan2333 维护。这个项目旨在通过 GitHub Action 自动化检测上游软件的新版本、重新构建并推送到 AUR 仓库。项目地址为:aur-auto GitHub 仓库

项目结构与模块组织

  • GitHub Actions 工作流:位于 .github/workflows/ 目录下,包括 monitor-upstream.yml 用于定时检测上游新版本,以及 build-and-publish.yml 负责构建和发布。
  • 通用脚本:集中在 scripts/ 目录,其中 update-package.sh 负责编排逻辑,共享函数放在 scripts/lib/
  • 软件包维护:每个软件包在 pkgs/<包名>/ 下维护自己的 PKGBUILD.SRCINFO 以及对应的 upstream.sh

构建与测试命令

  • 环境设置:执行 source scripts/env.sh(若存在)。
  • 更新软件包scripts/update-package.sh <包名> 检测上游版本并刷新 PKGBUILD.SRCINFO
  • 本地构建makepkg --syncdeps --cleanbuild 在本地执行可复现构建。
  • 静态质量检查namcap PKGBUILDnamcap *.pkg.tar.zst
  • 官方验证extra-x86_64-build 使用官方 clean chroot 验证。

代码风格与命名

  • Shell 脚本:使用 Bash,开头加上 set -euo pipefail,两个空格缩进。
  • Python 脚本:遵循 blackisort 格式,公共函数添加类型注解。
  • 目录与文件命名:全小写加短横线;Python 模块使用 snake_case。

测试规范

  • 构建前检查:运行 makepkg --syncdeps --cleanbuild,并确保 namcap 无严重问题。
  • 回归测试:修复缺陷时增加回归测试,自动化脚本可加入 bats/shunit2 测试。
  • CI 环境:在干净 chroot 中构建,上传构建产物与日志。

提交与合并规范

  • 提交信息:遵循 Conventional Commits,如 feat:fix:ci:,标题中注明上游版本号。
  • PR 要求:同时更新 PKGBUILD.SRCINFO,附上 CI 日志,关联上游发布或问题链接。
  • 评审请求:确保 GitHub Actions 全部通过后再请求评审。

结语

使用 GitHub Action 自动打包发包到 AUR 仓库,可以大大简化发布流程,提高工作效率。通过遵循上述规范和步骤,开发者可以轻松实现自动化发布,让更多人受益于他们的软件贡献。

更多详情请参考:aur-auto GitHub 仓库

标签: none

评论已关闭