Github_Action使用workflow自动编译lean_openwrt教程
首先感谢Lean大佬提供源码,
https://github.com/coolsnowwolf/ledegithub.com/coolsnowwolf/lede
再感谢一下KFERMercer大佬提供的自动编译脚本及教程。
https://github.com/KFERMercer/OpenWrt-CIgithub.com/KFERMercer/OpenWrt-CI
本教程面向于想自己编译Lean_Openwrt的全体同胞。
我从最基础的讲起,如果你已经有GitHub账号,请跳过第0个步骤。
0.创建一个GitHub账号**。
首先打开https://github.com/ ,按照下图进行输入:
输入验证码,然后点击蓝色的按钮【Next:Select a Plan】
然后点击【Choose Free】
然后按照下图随便选一些选项:
然后随便填点文字,点击【Complete setup】
然后网页会提示:Please verify your email address(请检查你的邮件地址)
打开邮箱,查收GitHub发来的邮件。
点击【Verify email address】
输入邮箱和密码,点击【Sign in】
1.进行默认配置的编译**
账号创建完成,需要同步Lean的源代码。
在网页上方的搜索框里面输入coolsnowwolf/lede
点击第一个结果
然后点击【Fork】按钮
出现如下的提示,意思是等待片刻:
然后点击【Action】选项卡
网页会提示“Workflows在fork的仓库中无法运行”,接下来点击绿色的按钮
【I understand my workflows, go ahead and run them】
然后点击进入Code选项卡:
点击.github/workflows
点击openwrt-ci.yml
点击编辑按钮进入编辑页面
第一次编辑此文档,即可触发GitHub Action的自动编译。
将左侧编辑栏的push、branches和- master前面的#删除,千万不要删掉空格。
然后点击右侧的【Start commit】,再点击【Commit changes】
此时点击Action选项卡,即可看到已经自动开始编译。
黄色为正在编译,绿色为编译完成,红色为编译失败。
点击openwrt-ci,即可看到编译过程。
编译完成之后这里会显示成下图这样,按下图指示即可下载编译好的固件。
2.使用自定义配置进行编译**
首先我们打开Code选项卡,找到.github/workflows/openwrt-ci-yml这个文件,点击编辑:
注意事项:
①需要DIY哪个功能,就将cat、CONFIG、EOF前面的#号和空格删掉。
②去掉#号之后,cat、CONFIG、以及EOF要和上面的#号对齐
③编辑之后,需要点击【Start commit】和【Commit changes】提交修改。
④新人尽量每次修改只改5行以内代码,并在提交代码时写好修改记录。
⑤可以添加代码库中有,但是openwrt-ci.yml中没有的插件,如
CONFIG_PACKAGE_luci-app-uhttpd=y
⑥如果一个luci-app需要多个依赖,只需要填写该luci-app即可,
其余依赖包会在编译时自动勾选。
⑦如果需要修改固件大小,可以添加如下代码:
# 设置固件大小:
cat >> .config <<EOF
CONFIG_TARGET_KERNEL_PARTSIZE=30
CONFIG_TARGET_ROOTFS_PARTSIZE=400
EOF
其中:30代表固件中内核分区大小,400代表固件中ROOTFS分区大小
⑧修改完代码之后,需要检查每组代码是否以cat » .config «EOF开头,并以EOF结尾。
3.使用涡轮赠雕法进行自动编译**
介绍如何在源码中增加lean仓库里面没有的代码。
此教程待定。