利用Github Actions进行云编译lede固件

更新日志

关于编译过程中找不到luci-app-ssr-plus相关问题,解决方法:点我

重新fork了P3的仓库,需要只用新仓库才可以进行编译,更改默认网关IP需要修改 diy-part2.sh 而不是 原先的 diy.sh 。其他均无需变动。

我想说的

碍于国内的网络环境,本地编译出错概率极高,我本地编译出错好几次,于是便转向了 Github 云编译(这应该也算一种曲线救国hhhh)。由于 Github 本身就处在国外,编译出错的几率大大降低。不过 Github Actions 有免费额度,超出需要额外收费。

https://github.com/features/actions

需要准备的

  1. 脑子
  2. 耐心
  3. GitHub账号

已知情况

  1. 当一个仓库进行编译工作之后,该仓库无法进行第二个编译工作,也就是SSH列表无法展开。

过程

不过利用 Github Actions 进行云编译有多种方法,我就举两例。区别就是,一种需要更改 openwrt-ci.yml 文件达到自定义编译,另一种则是需要在编译开始过程中通过SSH连接 Github Actions 的服务器手动选择配置LuCI,就跟本地编译差不多。

目录

方法一:不需要SSH

方法二:需要SSH

下载编译好的包

过程

两种方法均在有GitHub账号前提下进行操作,如果没有,请自行注册一个。

方法一

首先打开大雕的仓库。

https://github.com/coolsnowwolf/lede

然后点击右上角的 Fork 。看到 Forking 等待Fork结束。

Fork结束。

随即打开 正确的编写示例。这个链接可以在该项目找到 KFERMercer

打开 正确的编写示例之后 全选,复制。然后打开刚刚 Fork 的大雕的项目,有一个 Actions ,点击,出现如下情况,无视警告,点 I understand my workflows, go ahead and run them 进行激活 Actions

然后找到该项目的这个文件。

lede/.github/workflows/openwrt-ci.yml

然后点 Edit this file

把刚刚复制的内容粘贴进来,更改代码第15行,第30行。把 CI-demo 改成 默认分支master(没有骚操作就改这个)

完成之后点击右上角的 Start commitCommit changes ,触发编译。

然后重新回到 Actions 界面,就会看到一个编译进程。

编译时间较长,一般2-3小时不等,但是编译成功率比较高。

方法二

打开,并 Fork 这个项目。

https://github.com/jcjyxjs/Actions-OpenWrt

首先,你需要编辑固件的 IP地址 建议你改一下,不改的话也没事。打开并编辑下面这个文件。

Actions-OpenWrt/diy-part2.sh

最后一行中,有一个 192.168.2.100 就是编译好固件的后台地址。你可以按需更改。

#!/bin/bash
#============================================================
# https://github.com/P3TERX/Actions-OpenWrt
# File name: diy-part2.sh
# Description: OpenWrt DIY script part 2 (After Update feeds)
# Lisence: MIT
# Author: P3TERX
# Blog: https://p3terx.com
#============================================================

# Modify default IP
#sed -i 's/192.168.1.1/192.168.2.100/g' package/base-files/files/bin/config_generate

改完IP地址之后。点击下方的 Commit changes

然后打开你项目的 Actions 。无视警告,点 I understand my workflows, go ahead and run them 进行激活 Actions

完成之后,点击右上角的 Star 触发编译。

然后请不要关闭页面,等待编译到 SSH connection to Actions 之后,会给你一个SSH地址,和一个浏览器的https地址的一个网页端(建议用网页)

浏览器配置SSH,打开链接之后会黑屏,按 Ctrl+C 解除封印,然后terminal输入。

cd openwrt && make menuconfig

手动选择需要编译哪些软件,就跟本地编译一样。

操作方法:

  1. 选择:Y
  2. 取消选择:Space
  3. 最下方的5个选项:键盘上下左右,选择用回车

软路由的话,第一个 x86 ,第二个 x64 其他什么都不用改,最重要的还是 LuCIApplications 选择你要保留哪些插件功能。

这里有一个对照表,对照LuCI中的名称对应哪些软件。

https://www.right.com.cn/forum/thread-344825-1-1.html

全部更改完成之后,在最下方选择 < Save > 进行保存。

不要更改名字,直接下一步下一步。最后 < Exit > 退出。退回到这个界面之后,按 Ctrl+D 退出终端。

------------------------------------
 ____ __________ _____ ____  __  __
|  _ \___ /_   _| ____|  _ \ \ \/ /
| |_) ||_ \ | | |  _| | |_) | \  /
|  __/___) || | | |___|  _ <  /  \
|_|  |____/ |_| |_____|_| \_\/_/\_\

Brought to you by P3TERX
GitHub: https://github.com/P3TERX
Blog: https://p3terx.com (chinese)
------------------------------------

# runner @ fv-az117 in ~/work/Actions-OpenWrt/Actions-OpenWrt [10:07:06]
$ cd openwrt && make menuconfig
fatal: Invalid revision range 97a4ffcc125611dd5f307d54570373832a73e62d..HEAD
fatal: Invalid revision range 97a4ffcc125611dd5f307d54570373832a73e62d..65cdb1918bf8ab2e880acf952c46b92d139df97d
fatal: Invalid revision range 97a4ffcc125611dd5f307d54570373832a73e62d..HEAD
fatal: Invalid revision range 97a4ffcc125611dd5f307d54570373832a73e62d..65cdb1918bf8ab2e880acf952c46b92d139df97d


*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.

# runner @ fv-az117 in ~/work/Actions-OpenWrt/Actions-OpenWrt/openwrt [10:11:00]
$

然后 Actions 会继续进行下一步,直到编译完成。

编译时间较长,一般2-3小时不等,但是编译成功率比较高。

其他

下载编译好的包

Actions 编译的这个任务中有下载地址。

最后

看完了全文为什么不评论一下呢?xd