使用 GitHub Actions 云编译 OpenWrt
使用 GitHub Actions 云编译 OpenWrt
原文链接 https://p3terx.com/archives/build-openwrt-with-github-actions.html
项目地址 https://github.com/P3TERX/Actions-OpenWrt
自定义 feeds 配置文件
把 feeds.conf.default 文件放入仓库根目录即可,它会覆盖 OpenWrt 源码目录下的相关文件。
#src-git helloworld https://github.com/fw876/helloworld
去掉注释符“#”解锁特殊package
src-git helloworld https://github.com/fw876/helloworld
自定义源码
默认引用的是 Lean 的源码,如果你有编译其它源码的需求可以进行替换。
编辑 workflow 文件(.github/workflows/build-openwrt.yml),修改下面的相关环境变量字段。
REPO_URL: https://github.com/coolsnowwolf/lede
REPO_BRANCH: master
比如修改为 OpenWrt 官方源码 19.07 分支
REPO_URL: https://github.com/openwrt/openwrt
REPO_BRANCH: openwrt-19.07
SSH 连接到 Actions
通过 tmate 连接到 GitHub Actions 虚拟服务器环境,可直接进行 make menuconfig 操作生成编译配置,或者任意的客制化操作。也就是说,你不需要再自己搭建编译环境了。这可能改变之前所有使用 GitHub Actions 的编译 OpenWrt 方式。
点击查看
在Run Workflow时把SSH connection to Actions的值改为true(或者也可以不修改,而是通过 webhook 方式发送带有ssh触发关键词的请求。)
在触发工作流程后,在 Actions 日志页面等待执行到SSH connection to Actions步骤,会出现类似下面的信息:
To connect to this session copy-n-paste the following into a terminal or browser:
ssh Y26QeagDtsPXp2mT6me5cnMRd@nyc1.tmate.io
https://tmate.io/t/Y26QeagDtsPXp2mT6me5cnMRd
- 复制 SSH 连接命令粘贴到终端内执行,或者复制链接在浏览器中打开使用网页终端。(网页终端可能会遇到黑屏的情况,按 Ctrl+C 即可)
- cd openwrt && make menuconfig
- 完成后按Ctrl+D组合键或执行exit命令退出,后续编译工作将自动进行。
TIPS: 固件目录下有个config.seed文件,如果你需要再次编译可以使用它。
你好! 这是你第一次
上传固件到 WeTransfer
WeTransfer 是荷兰的一款临时文件传输分享服务网盘,前面提到的奶牛快传实际上师从自它,二者的网站都非常相似。WeTransfer 使用的是 Amazon S3 存储并通过 Amazon CloudFront CDN 全球加速,它在中国大陆的下载体验完全不输奶牛快传,甚至某些情况下要更好。
点击查看
编辑 workflow 文件(.github/workflows/build-openwrt.yml),将环境变量UPLOAD_WERANSFER的值修改为true:
UPLOAD_WERANSFER: true
编译完成后你可以在相关的 workflow 页面或者Upload firmware to WeTransfer步骤的日志中找到下载链接。