使用 GitHub Action 自动打包发包到 AUR 仓库
使用 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 PKGBUILD、namcap *.pkg.tar.zst。 - 官方验证:
extra-x86_64-build使用官方 clean chroot 验证。
代码风格与命名
- Shell 脚本:使用 Bash,开头加上
set -euo pipefail,两个空格缩进。 - Python 脚本:遵循
black和isort格式,公共函数添加类型注解。 - 目录与文件命名:全小写加短横线;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 仓库。
评论已关闭