使用 Github Action 更新用于 rpm 打包的 spec 文件

💡 原文中文,约2000字,阅读约需5分钟。
📝

内容提要

本文介绍了使用Github Action自动更新软件包的方法,通过更新spec文件实现版本控制。

🎯

关键要点

  • 本文介绍了使用Github Action自动更新软件包的方法。

  • 通过更新spec文件实现版本控制,使用rpmdev-bumpspec命令更新%changelog。

  • rpmdev-bumpspec需要在rpm系发行版或装有rpm依赖包的环境下执行。

  • 使用netoarmando/rpmdev-bumpspec-action通过Fedora的docker实现rpmdev-bumpspec的效果。

  • 首先使用actions/checkout获取仓库内的文件。

  • 通过shell命令获取当前spec文件的版本号并存入$GITHUB_ENV。

  • 通过Github API获取目标软件的最新版本号并存入$GITHUB_ENV。

  • 当spec版本号与最新版本号不一致时,运行rpmdev-bumpspec命令。

  • 保存更改并推入仓库,若版本不一致时进行提交。

  • 可选步骤:通过curl触发copr的webhook进行构建。

  • 最终的yml文件可以参考文中提供的示例。

延伸问答

如何使用Github Action自动更新spec文件?

可以通过使用netoarmando/rpmdev-bumpspec-action在Fedora的docker环境中执行rpmdev-bumpspec命令来自动更新spec文件。

rpmdev-bumpspec命令需要在什么环境下执行?

rpmdev-bumpspec命令需要在rpm系发行版或装有rpm依赖包的环境下执行。

如何获取当前spec文件的版本号?

可以通过shell命令grep和awk获取当前spec文件的版本号,并将其存入$GITHUB_ENV。

如何通过Github API获取最新版本号?

可以使用curl命令调用Github API,获取目标软件的最新版本号,并将其存入$GITHUB_ENV。

如果spec版本号与最新版本号不一致,应该怎么做?

当spec版本号与最新版本号不一致时,运行rpmdev-bumpspec命令,并保存更改推入仓库。

如何触发copr的webhook进行构建?

可以通过curl命令触发copr的webhook,前提是spec版本号与最新版本号不一致。

🏷️

标签

➡️

继续阅读