babashka / process

Clojure library for shelling out / spawning sub-processes
Eclipse Public License 1.0
220 stars 29 forks source link

ci chore: address CircleCI & GitHub Actions macOS change #153

Closed lread closed 4 months ago

lread commented 4 months ago

GitHub Actions now maps macos-latest to silicon hardware (was formerly intel hardware).

Babashaka/process is currently tested on JDK8 across all OSes, but JDK8 is not available on macOS silicon hardware.

Options:

  1. Drop JDK8 testing across all OSes
  2. Drop JDK8 testing on macOS only
  3. Explicitly choose macOS intel hardware as our runner https://github.com/actions/runner-images?tab=readme-ov-file#available-images

On other projects I've chosen option 2, but option 1 seems reasonable as well. What would you like for babashka/process?

I'm happy to follow up with a PR.

lread commented 4 months ago

Oh, it looks like macOS Intel hardware is also being phased out at CircleCI. https://discuss.circleci.com/t/macos-intel-support-deprecation-in-january-2024/48718

borkdude commented 4 months ago

yeah we could just drop that one

lread commented 4 months ago

Summary from chat with @borkdude

lread commented 4 months ago

I am working on this in my fork but have not yet found a YAML incantation that works for CircleCI.

borkdude commented 4 months ago

What exactly do you mean?

lread commented 4 months ago

Yes, a bit brief, was I!

I have not yet found a combination of xcode and m1 resource_class that does not return an error like this from CicleCI:

Resource class macos for macos.m1.medium.gen1, image xcode:14.3 is not available for your project, or is not a valid resource class. This message will often appear if the pricing plan for this project does not support macos use.

I see that you had a similar (but different) issue a while back.

And others are also confused in more recent days, circle ci discuss, clojurians slack

I wonder if things will just work after June 29th when Apple silicon hardware will be the only Apple hardware available at CircleCI:

UPDATE: The sunsetting of Intel resources is now June 28, 2024. After that date, we will only support Apple silicon resources. Starting June 29, 2024 we will only offer Apple silicon-based macOS resources.

borkdude commented 4 months ago

Let's just use Github Actions silicon for this then

lread commented 4 months ago

An alternative: I can drop JDK8 on macOS on CircleCI and come back to see the state of macOS silicon on CircleCI on June 29th. We don't currently specify a macOS resource_class; the default might just magically change to silicon and everything might work.

borkdude commented 4 months ago

OK. I'll have to find this out for bb itself anyway, so we can follow that here.

lread commented 4 months ago

@borkdude Is it June 29th. I pushed an empty commit on my bb process fork to test CircleCI macOS behaviour. Glad to report that it seems to be automagically switching to macOS m1:

image

And Setup JDK step output, some aarch64 evidence:

Installing graalvm_community 22 for macos aarch64

The rollout might be a bit rough, as my macOS jobs are queueing and running one at a time and CircleCI cache saving seems to be taking eons. But hopefully things will smooth out.