-
Notifications
You must be signed in to change notification settings - Fork 1
ci: build speed improvements #76
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
Conversation
|
Build artifacts for this PR are available: You can download these artifacts from the "Artifacts" section of the workflow run. |
|
Build artifacts for this PR are available: You can download these artifacts from the "Artifacts" section of the workflow run. |
Code Coverage Report
|
📊 Code Coverage Summary
|
|
Build artifacts for this PR are available: You can download these artifacts from the "Artifacts" section of the workflow run. |
📊 Code Coverage Summary
|
|
Build artifacts for this PR are available: You can download these artifacts from the "Artifacts" section of the workflow run. |
📊 Code Coverage Summary
|
📊 Code Coverage Summary
|
|
Build artifacts for this PR are available: You can download these artifacts from the "Artifacts" section of the workflow run. |
📊 Code Coverage Summary
|
📊 Code Coverage Summary
|
|
Build artifacts for this PR are available: You can download these artifacts from the "Artifacts" section of the workflow run. |
📊 Code Coverage Summary
|
we dont even want to keep it rollin
📊 Code Coverage Summary
|
📊 Code Coverage Summary
|
📊 Code Coverage Summary
|
📊 Code Coverage Summary
|
|
Build artifacts for this PR are available: You can download these artifacts from the "Artifacts" section of the workflow run. |
📊 Code Coverage Summary
|
|
Build artifacts for this PR are available: You can download these artifacts from the "Artifacts" section of the workflow run. |
📊 Code Coverage Summary
|
also add timestampst outputs
|
Build artifacts for this PR are available: You can download these artifacts from the "Artifacts" section of the workflow run. |
📊 Code Coverage Summary
|
|
Build artifacts for this PR are available: You can download these artifacts from the "Artifacts" section of the workflow run. |
📊 Code Coverage Summary
|
|
Build artifacts for this PR are available: You can download these artifacts from the "Artifacts" section of the workflow run. |
|
fast follow fixes
|
📊 Code Coverage Summary
|
f321828 to
d168acd
Compare
|
Build artifacts for this PR are available: You can download these artifacts from the "Artifacts" section of the workflow run. |
📊 Code Coverage Summary
|
1 similar comment
📊 Code Coverage Summary
|
we dont need them anymore and some bad outputs in them can break the test reporter all we need are the apks
|
Build artifacts for this PR are available: You can download these artifacts from the "Artifacts" section of the workflow run. |
📊 Code Coverage Summary
|
BOTTOM LINE: Cut the build time in half!
about 15 mins down from 30.
main features?
scripts/ccachify_native_modules.shyou have to update theandroid/CMakeLists.txtfile in EVERY SINGLE INDIVIDUALnode_modulesfolderstarted off trying to figure out how to keep
externalNativeBuildDebugfrom rebuilding on every buildBoy was that a can of worms.
It turns out this is effectively impossible because of the build fingerprinting that is done as a part of the build being the native modules.
I tried everything.
Zips
Tars
Rsync
The only thing that works is
rsync -abecause it does byte for byte copies. But there's no archive format that will work. They're ever so slight differences which you can check between doing a tar with the options to not do anything any compression and rsync -ajust
diff -r untared_dir rsync _aand you'll see ever so slight differences between the.cxxandandroid/app/build/intermediatesfolders.So it just can't be done. Unless you have some place that you can like Mount a disc for bite storage. Which might work but it's probably overkill.
0 so I ended up going with
ccachenow the builds still happen over and over again but they are still just as fast as if they didn't only off by a couple seconds.And I almost forgot I was only looking in our project's main Android folder for setting up doing anything related to native modules. The first first archive thing I was describing earlier and then earlier ccache as well.
Well, it turns out any react native modules that you depend on that get auto linked are going to have their own Android folders inside of the node modules folder.
You have to add the ccache calls to the files in there and that's the script in this PR.
again
https://reactnative.dev/docs/build-speed
TODO: figured out all the shit we need to caches is in the node_modules android/.cxx folders
+
+# I feel like the bigggest idiot for not figuring taht out faster