Closed sbc100 closed 1 week ago
Funny I just pushed a branch with an experiment doing almost this (https://github.com/emscripten-core/emscripten/tree/mac64) I think we should also have the arm64 mac bot do what the intel mac bot is currently doing: namely using the prebuilt libraries from the Linux builder rather than rebuilding them. Since arm64 bot time is 2x as expensive, and skipping building libraries makes the tests run 3x faster.
(I was running a test with just swapping them, but I updated it to just remove the Intel one: https://github.com/emscripten-core/emscripten/pull/22112)
Funny I just pushed a branch with an experiment doing almost this (https://github.com/emscripten-core/emscripten/tree/mac64) I think we should also have the arm64 mac bot do what the intel mac bot is currently doing: namely using the prebuilt libraries from the Linux builder rather than rebuilding them. Since arm64 bot time is 2x as expensive, and skipping building libraries makes the tests run 3x faster.
I kind of like that we can get results from the macOS and windows runners early, without having to wait for the linux builder. Since both of these builders only run a tiny subset of tests (--crossplatform-only
) I think it makes some sense to just build the libraries on demand on these builders.
If the early runs actually provide some value, then I'm fine leaving them in. Is there value to having it on both platforms, even though they are the same tests? Or would there be value in just adding a quick "sanity-check" runner on Linux to go along with all the rest? That could maybe be even faster than using the mac and windows builders for the purpose, and would be cheaper to boot.
If the early runs actually provide some value, then I'm fine leaving them in. Is there value to having it on both platforms, even though they are the same tests? Or would there be value in just adding a quick "sanity-check" runner on Linux to go along with all the rest? That could maybe be even faster than using the mac and windows builders for the purpose, and would be cheaper to boot.
Basically the cross platform tests are good smoketest and they are also the ones that can differ between platforms. The most important time is when I'm iterating on a cross platform test I suppose so maybe we can have some kind of easy way to remove the dependency when we want to iterate fast using CI as the tester. (Perhaps a line that can be uncommented or even a tag I can put in the commit message?).
CI_FAST_INITIAL_FEEDBACK=1
? .. maybe too long of a name?
The idea seems good. You could even add more tests than just the crossplatform ones in that configuration if you wanted.
CI_FASTBUILD
maybe? Or even just CI_FAST_FEEDBACK
is fine.
Are you serious that they are forcing folks to upgrade to something that is 2x the price? That seems pretty bad. If arm64 is the new commodity hardware why it it still more expensive? If its not yet the new commodity hardware then they should really keep x86_64 around. Kind lame.
The idea seems good. You could even add more tests than just the crossplatform ones in that configuration if you wanted.
CI_FASTBUILD
maybe? Or even justCI_FAST_FEEDBACK
is fine.
Sounds good to me. I'd also be ok with adding that later (i.e. just making it the default for now like it already is for mac arm64).
Actually since mac-arm64 already doesn't share assets why not just remove x86_64 now (i.e. my PR) since its strictly cost saving? We can then introduce asset sharing for arm64 later for more savings?
Yeah if we're not going to go directly to my PR then that seems fine.
Sorry, I didn't mean to stop of your toes. I'm happy to see this happen in either order honestly.
Yeah, it's not a big deal either way. we might as well just get the x86 config out so we won't be affected by the brownout tomorrow.
We have to remove this since circleci is removing support for macOS x86_64 on the 20th:
https://discuss.circleci.com/t/macos-intel-support-deprecation-in-january-2024/48718