emscripten-core / emscripten

Emscripten: An LLVM-to-WebAssembly Compiler
Other
25.35k stars 3.25k forks source link

[ci] Remove macOS x86_64 testing #22111

Closed sbc100 closed 1 week ago

sbc100 commented 1 week ago

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

dschuff commented 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.

dschuff commented 1 week ago

(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)

sbc100 commented 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 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.

dschuff commented 1 week ago

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.

sbc100 commented 1 week ago

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?).

sbc100 commented 1 week ago

CI_FAST_INITIAL_FEEDBACK=1 ? .. maybe too long of a name?

dschuff commented 1 week ago

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.

sbc100 commented 1 week ago

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.

sbc100 commented 1 week ago

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.

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).

sbc100 commented 1 week ago

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?

dschuff commented 1 week ago

Yeah if we're not going to go directly to my PR then that seems fine.

sbc100 commented 1 week ago

Sorry, I didn't mean to stop of your toes. I'm happy to see this happen in either order honestly.

dschuff commented 1 week ago

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.