Github Actions 是 Microsoft 收购 GitHub 后推出的 CI/CD 服务,它提供了性能配置非常不错的虚拟机服务器(E5 2vCPU/7G RAM),基于它可以进行构建、测试、打包、部署项目。对于公开仓库可免费无时间限制的使用,且单次使用时间长达 6 个小时,这对于编译 OpenWrt 来说是非常充足的。不过 GitHub Actions 有一定的使用门槛。
准备工作
1.准备一个GitHub账号
推荐使用谷歌浏览器注册或者其他带翻译的浏览器都可以,免得你们看不懂。
打开https://github.com 注册一个账号
![](http://wp-chengdu.oss-cn-chengdu.aliyuncs.com/202208/630c25af260b5.png)
我们点击注册
![](http://wp-chengdu.oss-cn-chengdu.aliyuncs.com/202208/630c25af52e3f.png)
这里我推荐谷歌邮箱 QQ邮箱也是可以的
![](http://wp-chengdu.oss-cn-chengdu.aliyuncs.com/202208/630c25af65f3c.png)
如果没有亮就代表你的邮箱被占用或者你输入的有错误
![](http://wp-chengdu.oss-cn-chengdu.aliyuncs.com/202208/630c25af7a8ea.png)
按照我图中的来点击按钮
![](http://wp-chengdu.oss-cn-chengdu.aliyuncs.com/202208/630c25af9c936.png)
下面安装我图中的来选
![](http://wp-chengdu.oss-cn-chengdu.aliyuncs.com/202208/630c25afad472.png)
![](http://wp-chengdu.oss-cn-chengdu.aliyuncs.com/202208/630c25afca82b.png)
![](http://wp-chengdu.oss-cn-chengdu.aliyuncs.com/202208/630c25b002ebe.png)
经过一段炫酷的动画,我们来到了下面的界面
![](http://wp-chengdu.oss-cn-chengdu.aliyuncs.com/202208/630c25b027d88.png)
2.克隆仓库
打开项目地址https://github.com/ligehhh/openwrt页面。点击页面中的Fork 使用这个模版按钮。
![](http://wp-chengdu.oss-cn-chengdu.aliyuncs.com/202208/630c25b0465e6.png)
填写仓库名称,然后点击Create fork(从模版创建储存库)按钮。
经过几秒钟的等待,页面会跳转到新建的仓库,内容和我的项目是相同的。
![](http://wp-chengdu.oss-cn-chengdu.aliyuncs.com/202208/630c25b0634bb.png)
首先你必须要熟悉整个 OpenWrt 的编译过程,这会让你非常容易的理解如何使用 GitHub Actions 进行编译,即使你没有成功过。因为实际上本地编译近 90% 失败的原因是因为网络问题导致的,GitHub Actions 服务器由 Microsoft Azure 提供,拥有万兆带宽,可以使编译成功率大大提升。
方案默认引用 Lean 的源码,他的源码非常的优秀。有其它需求可自行修改 workflow 文件。
3.固件编译
我们先来看一下这个工程库的基本分布
![](http://wp-chengdu.oss-cn-chengdu.aliyuncs.com/202208/630c25b08df30.png)
下面我们来重点看一下自定义脚本部分
我们打开diy-part1.sh文件
![](http://wp-chengdu.oss-cn-chengdu.aliyuncs.com/202208/630c25b0b4826.png)
这个脚本可以添加拉取一些第三方插件库或者单独的插件
下面看一下diy-part2.sh文件
![](http://wp-chengdu.oss-cn-chengdu.aliyuncs.com/202208/630c25b0cd25a.png)
这个里面我写了很清楚你们可以不做修改或者把不需要的删掉
像修改主机名什么的你们不需要的话可以删掉那一段,你们自己发挥哈,这里自己琢磨一下。
1.上传配置文件法
![](http://wp-chengdu.oss-cn-chengdu.aliyuncs.com/202208/630c25b1043c8.png)
![](http://wp-chengdu.oss-cn-chengdu.aliyuncs.com/202208/630c25b118ff3.png)
这里提到的配置文件就是你本地编译环境生成的.config
文件
![](http://wp-chengdu.oss-cn-chengdu.aliyuncs.com/202208/630c25b12a49d.png)
![](http://wp-chengdu.oss-cn-chengdu.aliyuncs.com/202208/630c25b1510e7.png)
下面修改一下我原来的工程文件
![](http://wp-chengdu.oss-cn-chengdu.aliyuncs.com/202208/630c25b1693cd.png)
![](http://wp-chengdu.oss-cn-chengdu.aliyuncs.com/202208/630c25b187a03.png)
这里两个随便一个都可以,因为这两个都是一样的。只是我在更新的两个固件你们改随便一个都可以,剩下的一个可以删除,反正你们用不到。
![](http://wp-chengdu.oss-cn-chengdu.aliyuncs.com/202208/630c25b19c971.png)
![](http://wp-chengdu.oss-cn-chengdu.aliyuncs.com/202208/630c25b1b98ce.png)
我们往下面翻
![](http://wp-chengdu.oss-cn-chengdu.aliyuncs.com/202208/630c25b200bbb.png)
下面开始云编译固件
![](http://wp-chengdu.oss-cn-chengdu.aliyuncs.com/202208/630c25b23576c.png)
这是同意一下他们的协议
![](http://wp-chengdu.oss-cn-chengdu.aliyuncs.com/202208/630c25b24ce83.png)
然后刷新网页就可以看到我们的编译工程了
![](http://wp-chengdu.oss-cn-chengdu.aliyuncs.com/202208/630c25b26eb06.png)
接下来就是等待工程出包了
接下来就是等待工程出包了