Skip to content

iotknowledges/Actions-OpenWrt

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Actions-OpenWrt

LICENSE GitHub Stars GitHub Forks

Method

一键编译

点击自己仓库页面上的 Star 开始编译,为了防止被滥用,这个功能默认未开启。

编辑 work­flow 文件(.github/workflows/build-openwrt.yml)取消注释下面两行,后续点击自己仓库上的 star 即可开始编译。

#  watch:
#    types: [started]

TIPS: 字段started并不是“开始了”的意思,而是“已经点击 Star”。 吐槽: 官方并没有提供一个开始按钮,通过搜索找到过很多奇怪的一键触发方式,但都是通过 Web­hook 来实现的。通过点击 Star 来触发,这样就相当于把 Star 当成开始按钮。这个started有种一句双关的意思。

可以在 Actions 页面进行查看编译进度。

云 menuconfig(SSH 连接到 Actions)

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

  • 编辑 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文件时记得选中相应的软件。如果添加的软件包与 Open­Wrt 中已有的软件包同名的情况,则需要把源码中的同名软件包删除,否则会优先编译 Open­Wrt 中的软件包。这同样可以利用到的 DIY 脚本。

最后不要忘了添加更新 feeds 的命令

./scripts/feeds update -a
./scripts/feeds install -a

Custom files(自定义文件)

俗称 “files大法”,在仓库根目录下新建 files 目录,把文件放入即可。

定时编译

编辑 work­flow 文件(.github/workflows/build-openwrt.yml)取消注释下面两行。

#  schedule:
#    - cron: 0 8 * * 5

例子是北京时间每周五下午 4 点钟开始编译。如需自定义则按照 cron 格式修改即可,Ac­tions 虚拟环境中的时区是 UTC ,注意按照自己所在地时区进行转换。

DIY 脚本

仓库内有一个 diy.sh 文件,你可以把对源码修改的指令写到这个文件中,比如修改默认 IP、主机名、主题、添加 / 删除软件包等操作。但不仅限于这些操作,发挥你强大的想象力,可做出更强大的功能。

TIPS: 脚本工作目录在源码目录,内附一个修改默认 IP 的例子供参考使用。

自定义环境变量与功能

打开 work­flow 文件(.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_SHDIY 脚本文件名
FREE_UP_DISK释放磁盘空间。编译磁盘空间不足报错时使用。默认false
SSH_ACTIONSSSH 连接 Actions 功能。默认false
UPLOAD_BIN_DIR上传 bin 目录。即包含所有 ipk 文件和固件的目录。默认false
UPLOAD_FIRMWARE上传固件目录。默认true
TZ时区设置

了解更多

Usage

  • 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.

Acknowledgments

License

MIT © iotknowledges

About

使用 GitHub Actions 编译 OpenWrt

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%