使用 GitHub Actions 云编译 OpenWrt

原文链接 https://p3terx.com/archives/build-openwrt-with-github-actions.html

项目地址 https://github.com/P3TERX/Actions-OpenWrt

自定义 feeds 配置文件

把 feeds.conf.default 文件放入仓库根目录即可,它会覆盖 Open­Wrt 源码目录下的相关文件。

#src-git helloworld https://github.com/fw876/helloworld

去掉注释符“#”解锁特殊package

src-git helloworld https://github.com/fw876/helloworld

自定义源码

默认引用的是 Lean 的源码,如果你有编译其它源码的需求可以进行替换。

编辑 work­flow 文件(.github/workflows/build-openwrt.yml),修改下面的相关环境变量字段。

REPO_URL: https://github.com/coolsnowwolf/lede
REPO_BRANCH: master

比如修改为 Open­Wrt 官方源码 19.07 分支

REPO_URL: https://github.com/openwrt/openwrt
REPO_BRANCH: openwrt-19.07

SSH 连接到 Actions

通过 tmate 连接到 GitHub Ac­tions 虚拟服务器环境,可直接进行 make menuconfig 操作生成编译配置,或者任意的客制化操作。也就是说,你不需要再自己搭建编译环境了。这可能改变之前所有使用 GitHub Ac­tions 的编译 Open­Wrt 方式。

点击查看
在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 是荷兰的一款临时文件传输分享服务网盘,前面提到的奶牛快传实际上师从自它,二者的网站都非常相似。We­Trans­fer 使用的是 Ama­zon S3 存储并通过 Ama­zon Cloud­Front CDN 全球加速,它在中国大陆的下载体验完全不输奶牛快传,甚至某些情况下要更好。

点击查看
编辑 workflow 文件(.github/workflows/build-openwrt.yml),将环境变量UPLOAD_WERANSFER的值修改为true:

UPLOAD_WERANSFER: true

编译完成后你可以在相关的 workflow 页面或者Upload firmware to WeTransfer步骤的日志中找到下载链接。

原文链接:
https://p3terx.com/archives/build-openwrt-with-github-actions.html 这是主分支! 该存储库将继续使用术语“ master ”。 它永远不会改变。 我拒绝切换到“主要”。 R2S基于原生OpenWRT的固件编译脚本(按原样,没有担保!!!) 请勿用于商业用途! 同时也包含了x86_64版本 发布地址: (可能会翻车,风险自担,需要登录GitHub账号后才能下载,不提供任何形式的技术支持) 建议对照确认版本之间的变化。 注意事项: 登陆IP: 192.168.1.1 ,密码:无。 R2S版OpenWrt内置升级可用。 R2S版build 66(2020年8月1日)及以后的固件,继续交换LAN WAN网口,即和原厂接口定义相反(LAN口是远离电源接口的那一个RJ45接口)。 遇到上不了网的,请自行排查自己的IPv6连接情况,或替换IPv6(同时放置WAN和LAN的IPv6)(已关闭IPv6的dns解析,手动可以在DHCP / DNS里的高级设置中调整 建议首先阅读P3Terx大佬的编译教程后再使用本项目: 在此之上,本项目还添加了以下特性: 提供基于Lean大/官方OpenWrt快照/ Project-OpenWrt三种原始代码的示例文件模板; 添加了一些第三方优秀的OpenWrt附加项目(添加了一些额外的可在DIY脚本文件中查看); 支持一键编译所有kmod并集成进进固件,在从软件源安装ipk时,所有komd扩展到本地获取(对某些不被OpenWrt官方支持的设备很有用),从此以后komd冲突问题。根据不同平台智能修改软件源,无需进行额外设置; 支持固件编译完成后生成package-server,方便在Windows下建立本地软件源(双击即用),对不方便集成所有kmod进阶固件的小ROM设备来说很有用; 对于官方的Op 编译 Open­Wrt 的过程就像是复读机,除了选择系统组件外,几乎每次编译都是复制粘贴相同的命令。而理解每一条命令的作用、什么时候该去执行,这样才能更好的去解决编译中遇到的问题,更顺利的编译出固件。 本地编译使用了不同的操作系统,不同的版本,不同的网络环境,甚至不同国度的VPS - .-,还是会有这样或那样的问题,其实就是网络的问题,现在有了Github Actions,一切变得简单了,我之前也出过有关Github Actions的教程,可以一起学习下~ 基于 P3TERX 的脚本进行构建辅助 基于 大雕的LEDE 为源码,作为鬼群的lean粉强烈推荐 搭建编译环境,生成.config文件(推荐,虽然Actions可以使用SSH connection进行生成,但并不好用) 利用GitHub手动编译自己的OpenWrt固件,优点:快,稳定,大概2到4个小时,当然你也可以用其他机器,我曾经用谷歌的机器,编译了19个小时。 一、你需要具备的东西,自行准备。 GayHub账号 步骤1&2 步骤3&4 详细教程:https://p3terx.com/archives/build-openwrt-with-github-actions.html 别问步骤 1 和 3,谁问谁是那个。 三、需要注意的: 修改Actions-OpenWrt 上传文件或文件夹到 WeTransfer upload-wetransfer 依赖于和 。 您可以使用pip install requests requests-toolbelt安装这些要求 您可以一次将一个或多个文件发送给一个或多个联系人。 上传目录时,您可以使用-R标志来激活递归列表。 [-m MESSAGE] [-R] files [files ...]``` [root@yl-web ~]# ssh root@10.1.101.35 ssh_exchange_identification: read: Connection reset by peer [root@yl-web ~]# ping 10.1.101.35 PING 10.1.101.... gitHub Actions可以做持续集成,可以部署静态网站。也可以作为临时服务器使用。 mxschmitt/action-tmate (opens new window) 通过tmate连接,默认15分钟自动断开,但是可通过touch /tmp/keepalive命令解除。 连接成功之后,大概几分钟不进行操作,将会失去控制 name: Ubuntu on: [push] jobs: Ubuntu: runs-on: ubuntu-latest 前言:某天登录ssh主机报错,scp传输数据也报错,找了很多方法,比如检查本地的openssl-server包是否安装等 [root@Centos7 ~/.ssh]#scp id_rsa.pub 192.168.146.129 [root@Centos7 ~/.ssh]#scp id_rsa.pub root@192.168.146.129:/data ssh: connect to h...