-
Notifications
You must be signed in to change notification settings - Fork 19.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
使用github actions cache缓存工具链, 加速你的云编译项目,让你做更快的男人 #7796
base: master
Are you sure you want to change the base?
Conversation
😢 with 加了 | |
跟楼上一样的报错 |
https://github.com/smallprogram/OpenWrtAction/blob/main/.github/workflows/build-openwrt_X64.yml |
@smallprogram 使用你的这个出现这个错误,如何修复。 Run df -hT $PWD |
尴尬,又是和楼上一样。 |
也许可以写个触发,这样大版本更新的时候可以重新缓存保险一点? |
@jarod360 我在你的repositories里转了一圈也没找着,不行你fork我的,改config文件夹里的x64.config文件,改成你自己的,然后跑Action编译把。你这个报错之前都已经解决了。 |
@smallprogram fork后可以通过。 |
支持。 |
有 fetch-depth: 0就行 |
才看懂,谢谢指示 |
疑问:如果有缓存的话,会不会导致源码更新却没同步到action呢? |
使用p3terx大佬编译脚本的要改一下 并且应该放置到你clone openwrt源码之后 |
@klever1988 大佬按您说的改了,出现这个报错。Error: ENOENT: no such file or directory, chdir '/home/runner/work/Redmi_AX6/Redmi_AX6' -> '/openwrt' |
prefix: '/workdir/openwrt' |
@klever1988 改了prefix: '/workdir/openwrt' |
不会的,只是缓存了工具链的编译目录和二进制文件而已,kernel和package每次都会重新编译 |
这个对使用P3TERX/Actions-OpenWrt脚本在线编译的用户是有效的 |
@klever1988 大佬你好,我使用的P3TERX/Actions-OpenWrt编译,在clone openwrt源码代码段之后加入了 请问还需要在actions/checkout段尾部加入fetch-depth: 0吗? |
不要用test分支了,可以直接用main,klever1988/cachewrtbuild@main |
缓存必须要actions过程全通过了才有效,只能在第1次通过了以后再重新开始就能用缓存了。 解开多线程编译才是最有效的加速。 |
make -j |
就是先创建一个空的zstd的img文件通过loop方式挂载成目录,然后编译完成后,把这个img文件split后分段缓存住,下次编译就下载缓存,相当于再次编译 |
失效了吗? |
还有效 |
没失效,我第一次编译5个半小时,后面最多一个半小时 |
还是用下面这段?还是要修改?谢谢
|
请问大佬,缓存机制仍然有效吗,
|
63c106f
to
6606bb3
Compare
037eb44
to
6da4057
Compare
6269d0f
to
9f65b6f
Compare
hello @stupidloud may i ask why sometimes or intermittently the CI fails with the following error? weird that it compiles the toolchain even if it's already skipped, I'm using the code you have in this PR GH Actions Log
Please see details here: https://github.com/vincejv/openwrt/actions/runs/12037780045/ |
a9f949f
to
007d406
Compare
壁画不多直接上效果,最短25分钟完成
简单原理就是,
github给actions提供了5gb的高速缓存空间,
使用这个空间缓存工具链的编译进度,
可以节省掉不必要的40多分钟耗时。
食用方法:(参考pr)
在你的openwrt-ci.yml actions/checkout段尾部加入
(因为工具使用了tools和toolchain的commit id决定是否更新缓存,所以需要全量拉取代码)
随后添加工具调用,即可
第一次编译不会有变化,因为你的仓库还没有缓存,随后的编译作业就会从你仓库拉去第一次编译生成的缓存,跳过无意义的工具链编译时间。
可用参数和默认值:
建议在make menuconfig或者
开启ccache获得进一步的加速时间。
使用P3TERX/Actions-OpenWrt编译的筒子们,因为你们yml的checkout段并不是检出openwrt源代码,而是检出你们的编译脚本。所以应该把uses段放在真正的clone openwrt源码代码段之后,并且用prefix参数声明openwrt源码路径,比如