「捯饬记录」体验一下GitHub的自动编译

记录时间:2020 年 1 月 16 日

关键词:GitHub Action Padavan 自动编译 云编译 固件 K2

在之前搜索Padavan的编译教程时,发现了openwrt固件的在线自动编译,当时觉得很厉害。在捯饬完Padavan的固件编译之后,想找找看Padavan有没有类似的东西,直接在GitHub上搜索就找到了,地址:https://github.com/chongshengB/Padavan-build,感谢chongshengB。

简单的试用

由于打开页面时没有任何说明,于是直接fork了这个脚本,根据openwrt的自动编译教程以及这个编译脚本的内部注释,简单试用了一下一次就编译通过了,非常方便快捷,但是脚本默认编译的是K2P的固件没法测试。

简单说一下脚本的使用方法:

  1. fork这个脚本
  2. 打开Actions页面,点击绿色的 I understand my workflows, go ahead and run them
  3. 返回Code页面,打开.github/workflows,再打开build-padavan.yml文件,删除如下这几行中的#之后提交保存,编译就会开始自动运行,在Actions页面还能看到编译进度
  4. 编译完成后,再次打开Actions, 点击右上方的Artifacts就能看到下载的链接了
    1
    2
    3
    4
    5
    6
      #  branches: 
      #    - master
    #  schedule:
    #    - cron: 0 8 * * 5
     # watch:
     #   types: [started]

    尝试自动编译一个K2的固件

  5. 找到build-padavan.yml文件中第48行中的TNAME: K2P-5.0,修改为
    1
    TNAME: PSG1218
  6. 按脚本注释删除和添加配置项,关于配置项,可以查看配置文件
    1
    2
    3
    4
    5
    6
    #因不同型号配置功能不一样,所以先把配置项删除,如果你自己要添加其他的,也要写上删除这一条,切记!!!
    sed -i '/CONFIG_FIRMWARE_INCLUDE_MENTOHUST/d' .config #删除配置项MENTOHUST
    sed -i '/CONFIG_FIRMWARE_INCLUDE_SCUTCLIENT/d' .config #删除配置项SCUTCLIENT
    #以下选项是定义你需要的功能(y=集成,n=忽略),重新写入到.config文件
    echo "CONFIG_FIRMWARE_INCLUDE_MENTOHUST=n" >> .config #MENTOHUST
    echo "CONFIG_FIRMWARE_INCLUDE_SCUTCLIENT=n" >> .config #SCUTCLIENT
  7. 保存并重新上传该脚本,Actions就开始自动编译步骤了,编译完成后在Artifacts中下载编译完成的固件

    END

    其实自动编译过程就是将手动编译时的每个步骤写成了脚本,GitHub Actions会根据脚本来运行每条命令,非常方便。甚至可以利用Actions和GitHub page方便地搭建博客,总之使用方法多样,另外在这个Marketplace还能找到很多别人写好的Actions,实现很多有趣的功能。关于GitHub Actions 详细的内容可以参考一下官方文档