使用 GitHub Actions 云编译OpenWrt

前言

  GitHub Actions 是 GitHub 的持续集成服务,于2018年10月推出。可以自动化和定制化项目的 Workflow,它的功能非常强大,每一个 action 都用来执行一种操作,比如抓取代码、运行测试、登录远程服务器,发布到第三方服务等等。将这些 actions 组合起来,就是一个持续集成的过程。当然,这些 actions 都共享在 GitHub 的代码仓库中,我们可以直接引用。

  Github Actions 提供了整套服务器环境,服务器规格为:

  • 2-core CPU
  • 7 GB RAM 内存
  • 84 GB SSD 硬盘空间

  什么是 Github Actions,官网的介绍是:

With GitHub Actions you can automate your workflow from idea to production.

  所以我们完全可以用它来编译 Open­Wrt固件

项目地址

  有以下三个项目地址:

  P3TERX

  ccbcfan

  coolsnowwolf/lede

  以下教程以ccbcfan为模板,其他两个教程基本一样。

准备工作

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

一.拉取仓库

拉取OpenWrt仓库的Fork按钮位置

二.配置编译的源码跟机型

  选择要编译的源码跟机型,在.github/workflows文件夹里面的build-openwrt.yml文件修改。

build-openwrt.yml文件配置界面

1.可供选择型号

OpenWrt可供编译的型号列表

2.各型号目录文件介绍

各机型目录文件结构说明

  build-对应机型的 diy、pacthes、files 文件夹说明:

  • diy文件夹里面可以按源码对应路径放入文件替换源码文件,说白了diy文件夹里面就是源码的根目录,你可以按源码路径替换所有的源码文件。
  • pacthes补丁文件夹,修改固件源码,然后提取修改差异部分来达到修改源码文件的需求。
  • files文件夹,是用来存放你编译好固件然后安装好固件后设置好的文件。

3.GitHub Action编译工作文件

GitHub Action编译工作文件内容

4.编译型号修改

编译目标型号修改位置

三.启动编译

  打开Action页面

仓库Action页面入口

  启动workflow工作流程

启动workflow工作流程按钮

  至此固件编译工作开始,等待2~3个小时即可完成。