点击自己仓库页面上的 Star 开始编译,为了防止被滥用,这个功能默认未开启。
编辑 workflow 文件(.github/workflows/build-openwrt.yml
)取消注释下面两行,后续点击自己仓库上的 star 即可开始编译。
# watch:
# types: [started]
TIPS: 字段
started
并不是“开始了”的意思,而是“已经点击 Star”。 吐槽: 官方并没有提供一个开始按钮,通过搜索找到过很多奇怪的一键触发方式,但都是通过 Webhook 来实现的。通过点击 Star 来触发,这样就相当于把 Star 当成开始按钮。这个started
有种一句双关的意思。
可以在 Actions 页面进行查看编译进度。
通过 tmate 连接到 GitHub Actions 虚拟服务器环境,可直接进行 make menuconfig
操作生成编译配置,或者任意的客制化操作。也就是说,你不需要再自己搭建编译环境了。这可能改变之前所有使用 GitHub Actions 的编译 OpenWrt 方式。
- 编辑 workflow 文件(
.github/workflows/build-openwrt.yml
),修改SSH_ACTIONS
环境变量的值为true
:
SSH_ACTIONS: true
- 在触发工作流程后,在 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 连接命令粘贴到终端内执行,或者复制链接在浏览器中打开使用网页终端。
cd openwrt && make menuconfig
- 完成后按快捷键
Ctrl+D
或执行exit
命令退出,后续编译工作将自动进行。
TIPS: 默认连接30分钟后会断开并终止编译工作流程,防止资源浪费与封号风险。如果你想解除这个限制,可以根据提示操作,后果自负。
在 DIY 脚本中加入对指定软件包的远程仓库的克隆指令。就像下面这样:
git clone https://github.com/P3TERX/xxx package/xxx
这样做的好处是每一次编译都会拉取最新的源码。
TIPS: 生成
.config
文件时记得选中相应的软件。如果添加的软件包与 OpenWrt 中已有的软件包同名的情况,则需要把源码中的同名软件包删除,否则会优先编译 OpenWrt 中的软件包。这同样可以利用到的 DIY 脚本。
最后不要忘了添加更新 feeds 的命令
./scripts/feeds update -a
./scripts/feeds install -a
俗称 “files大法”,在仓库根目录下新建 files
目录,把文件放入即可。
编辑 workflow 文件(.github/workflows/build-openwrt.yml
)取消注释下面两行。
# schedule:
# - cron: 0 8 * * 5
例子是北京时间每周五下午 4 点钟开始编译。如需自定义则按照 cron 格式修改即可,Actions 虚拟环境中的时区是 UTC ,注意按照自己所在地时区进行转换。
仓库内有一个 diy.sh
文件,你可以把对源码修改的指令写到这个文件中,比如修改默认 IP、主机名、主题、添加 / 删除软件包等操作。但不仅限于这些操作,发挥你强大的想象力,可做出更强大的功能。
TIPS: 脚本工作目录在源码目录,内附一个修改默认 IP 的例子供参考使用。
打开 workflow 文件(.github/workflows/build-openwrt.yml
),你会看到有如下一些环境变量,可按照自己的需求对这些变量进行定义。
env:
REPO_URL: https://github.com/coolsnowwolf/lede
REPO_BRANCH: master
CONFIG_FILE: .config
DIY_SH: diy.sh
FREE_UP_DISK: false
SSH_ACTIONS: false
UPLOAD_BIN_DIR: false
UPLOAD_FIRMWARE: true
TZ: Asia/Shanghai
TIPS: 修改时需要注意:
(冒号)后面有空格。
环境变量 | 功能 |
---|---|
REPO_URL | 源码仓库地址 |
REPO_BRANCH | 源码分支 |
CONFIG_FILE | .config 文件名 |
DIY_SH | DIY 脚本文件名 |
FREE_UP_DISK | 释放磁盘空间。编译磁盘空间不足报错时使用。默认false |
SSH_ACTIONS | SSH 连接 Actions 功能。默认false |
UPLOAD_BIN_DIR | 上传 bin 目录。即包含所有 ipk 文件和固件的目录。默认false |
UPLOAD_FIRMWARE | 上传固件目录。默认true |
TZ | 时区设置 |
- Sign up for GitHub Actions
- Fork this GitHub repository
- Generate
.config
files using Lean's OpenWrt source code. - Push
.config
file to the GitHub repository, and the build starts automatically.Progress can be viewed on the Actions page. - When the build is complete, click the
Artifacts
button in the upper right corner of the Actions page to download the binaries.
- Microsoft
- Microsoft Azure
- GitHub
- GitHub Actions
- tmate
- mxschmitt/action-tmate
- csexton/debugger-action
- Cisco
- OpenWrt
- Lean's OpenWrt
- OpenWrt Buildroot – Installation on macOS
MIT © iotknowledges