使用 GitHub Actions 云编译 OpenWrt
本文最后更新于 345 天前,其中的信息可能已经有所发展或是发生改变。

前言

Github Ac­tions 是 Mi­crosoft 收购 GitHub 后推出的 CI/​CD 服务,它提供了性能配置非常不错的虚拟服务器环境(E5 2vCPU/​7G RAM),基于它可以进行构建、测试、打包、部署项目。对于公开仓库可免费无时间限制的使用,且单次使用时间长达 6 个小时,这对于编译 Open­Wrt 来说是非常充足的。不过 GitHub Ac­tions 有一定的使用门槛,首先要了解如何编写 workflow 文件。不过不用担心,博主已经编写好了相关的 work­flow 文件模版,只需要按照教程的步骤来操作即可。

方案特点

  • 免费
  • 一键快速编译
  • 定时自动编译
  • 客制化编译
  • 并发编译(可同时进行20个编译任务)
  • 无需搭建编译环境(在线make menuconfig生成配置文件)
  • 无需消耗自己的计算机与服务器的计算资源(性感E5在线编译)
  • 无需担心磁盘空间不足(近60G磁盘空间)
  • 无需使用清理文件(内核更新不怕 boom )
  • 编译速度快(编译时间1-2小时)
  • 编译成功率提升200%(万兆自由网络环境)
  • 全新环境(杜绝编译环境不干净导致编译失败)

本解决方案是一个开放平台,任何人都可以基于此打造自己专属的编译方案。

项目地址

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

支持项目请随手点个 star,让更多的人发现、使用并受益。

准备工作

  • GitHub 账号
  • 搭建编译环境,生成.config文件。(可选)

TIPS: 关于编译环境的搭建,推荐去看我之前写的相关文章,Win­dows 10 可以使用 WSL ,ma­cOS、Linux 可以使用 Docker 。

基础使用

进入 P3TERX/Actions-OpenWrt 项目页面,点击页面中的 Use this template (使用这个模版)按钮。

填写仓库名称,然后点击Create repository from template(从模版创建储存库)按钮。

经过几秒钟的等待,页面会跳转到新建的仓库,内容和我的项目是相同的。

创建feeds文件

如上一步创建一个新文件,不同的配置使用不同feeds文件。默认文件名feeds.conf.default,默认文件内容

src-git packages https://github.com/coolsnowwolf/packages
src-git luci https://github.com/coolsnowwolf/luci
src-git routing https://git.openwrt.org/feed/routing.git
src-git telephony https://git.openwrt.org/feed/telephony.git
src-git freifunk https://github.com/freifunk/openwrt-packages.git
#src-git video https://github.com/openwrt/video.git
#src-git targets https://github.com/openwrt/targets.git
#src-git management https://github.com/openwrt-management/packages.git
#src-git oldpackages http://git.openwrt.org/packages.git
#src-link custom /usr/src/openwrt/custom-feed
#src-git helloworld https://github.com/fw876/helloworld

修改

点击 .github/workflows 进入工作目录,点击 build-openwrt.yml ,将文件名修改为k2p.yml,然后修改如下内容

#第11行 
name: Build OpenWrt #区分yml
#第24行至36行
env:
  REPO_URL: https://github.com/coolsnowwolf/lede
  REPO_BRANCH: master
  FEEDS_CONF: feeds.conf.default
  CONFIG_FILE: .config
  DIY_P1_SH: diy-part1.sh
  DIY_P2_SH: diy-part2.sh
  UPLOAD_BIN_DIR: false
  UPLOAD_FIRMWARE: true
  UPLOAD_COWTRANSFER: false
  UPLOAD_WETRANSFER: false
  UPLOAD_RELEASE: false
  TZ: Asia/Shanghai

TIPS: 修改时需要注意:(冒号)后面有空格。

环境变量功能
REPO_URL源码仓库地址
REPO_BRANCH源码分支
FEEDS_CONF自定义feeds.conf.default文件名
CONFIG_FILE自定义.config文件名
DIY_P1_SH自定义diy-part1.sh文件名
DIY_P2_SH自定义diy-part2.sh文件名
UPLOAD_BIN_DIR上传 bin 目录。即包含所有 ipk 文件和固件的目录。默认false
UPLOAD_FIRMWARE上传固件目录。默认true
UPLOAD_COWTRANSFER上传固件到奶牛快传。默认false
UPLOAD_WERANSFER上传固件到 WeTransfer 。默认false
UPLOAD_RELEASE上传固件到 releases 。默认false
TZ时区设置

创建配置文件

点击Add fileCreate new file(创建新文件)按钮。

文件名填写为.config,把生成的.config 文件的内容复制粘贴到下面的文本框中。

我要同时编译不同的路由器固件,所以给配置文件分别命名。翻到最下面,可以填写说明,然后点击 Commit new file 提交新文件。

配置文件创建或修改好会自动开始编译。

更多进阶玩法查看参考链接:使用 GitHub Actions 云编译 OpenWrt

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇