项目地址:
https://github.com/esirplayground/AutoBuild-OpenWrt
https://github.com/P3TERX/Actions-OpenWrt
- 前言
Github Actions 是 Microsoft 收购 GitHub 后推出的 CI/CD 服务,它提供了性能配置非常不错的虚拟服务器环境(E5 2vCPU/7G RAM),基于它可以进行构建、测试、打包、部署项目。对于公开仓库可免费无时间限制的使用,且单次使用时间长达 6 个小时,这对于编译 OpenWrt 来说是非常充足的。不过 GitHub Actions 有一定的使用门槛,首先要了解如何编写 workflow 文件。不过不用担心,博主已经编写好了相关的 workflow 文件模版,只需要按照教程的步骤来操作即可。
- 方案特点
- 免费
- 一键快速编译
- 定时自动编译
- 客制化编译
- 并发编译(可同时进行20个编译任务)
- 无需搭建编译环境(在线
make menuconfig
生成配置文件) - 无需消耗自己的计算机与服务器的计算资源(性感E5在线编译)
- 无需担心磁盘空间不足(近60G磁盘空间)
- 无需使用清理文件(内核更新不怕 boom )
- 编译速度快(编译时间1-2小时)
- 编译成功率提升200%(万兆自由网络环境)
- 全新环境(杜绝编译环境不干净导致编译失败)
本解决方案是一个开放平台,任何人都可以基于此打造自己专属的编译方案。
- 准备工作
1)GitHub 账号
2)搭建编译环境,生成.config
文件。(可选)
TIPS: 关于编译环境的搭建,推荐去看我之前写的相关文章,Windows 10 可以使用 WSL ,macOS、Linux 可以使用 Docker 。
- 基础使用
1)首先你必须要熟悉整个 OpenWrt 的编译过程,这会让你非常容易的理解如何使用 GitHub Actions 进行编译,即使你没有成功过。GitHub Actions 服务器由 Microsoft Azure 提供,拥有万兆带宽,可以使编译成功率大大提升。
2)在自己搭建编译环境中使用 Lean’s OpenWrt 源码生成.config
文件。(或使用直接 SSH 连接到 Actions 进行操作,后面有说明。)
3)进入 P3TERX/Actions-OpenWrt 项目页面,点击页面中的 Use this template (使用这个模版)按钮。
4)填写仓库名称,然后点击Create repository from template
(从模版创建储存库)按钮。
5)经过几秒钟的等待,页面会跳转到新建的仓库,内容和我的项目是相同的。然后点击Create new file
(创建新文件)按钮。
6)文件名填写为.config
,把生成的.config
文件的内容复制粘贴到下面的文本框中。
7)翻到页面最下方,点击Commit new file
(提交新文件)按钮。
8)在 Actions 页面选择Build OpenWrt
,然后点击Run Workflow
按钮,即可开始编译。(如果需要 SSH 连接则把SSH connection to Actions
的值改为true
。其它详情参见进阶使用相关章节)
9)在等待编译完成的过程中,你可以进入这个页面点击右上角的star
,这是对博主最大的支持,而且还可以加快编译速度
10)最后经过一两个小时的等待,不出意外你就可以在 Actions 页面看到已经打包好的固件目录压缩包。
TIPS: 方案默认引用 Lean 的源码,因为他的 README 影响了我开始学习编译,也就有了这个项目,而且他的源码非常的优秀。有其它需求可自行修改 workflow 文件,方法后面的进阶使用中有说明。
参考资料:
- https://p3terx.com/archives/build-openwrt-with-github-actions.html
- https://p3terx.com/archives/github-actions-started-tutorial.html