macOS Intel Support Deprecation in January 2024

Starting February 1, 2024 we will only offer Apple silicon-based macOS resources. As previously announced, we will be deprecating our Gen1 resources on 2 October 2023. We will also be deprecating our Dedicated Hosts at this time. In January 2024, we will deprecate our Gen2 resources, ending our support for all Intel-based macOS resources. Jobs still calling these resource classes after this will fail with an Invalid resource class error.

Which resources are being deprecated and when?

  • 2 October 2023
    • Gen1 (medium & large)
      • Xcode 14.2 is the last supported version for Gen1
    • Dedicated Hosts (macos.x86.metal.gen1)
      • Xcode 14.0.1 is the last supported version for Dedicated Hosts
  • 31 January 2024
    • Gen2 (macos.x86.medium.gen2)
      • Xcode 15.1 is the last supported version for Gen2

What resources should I use instead?

We’ve already heard from you that the M1 resources we launched earlier this year have provided a superior experience, with better efficiency and performance. Whether your support for apple silicon, x86_64 architecture, or both, building with M1 can cut your build times by up to half! In addition, Apple Silicon unlocks the ability to perform full end-to-end testing, thanks to GPU access, something that has not been possible with Intel VMs.

Current M1 resource class options

  • M1 Medium
    • resource class tag: macos.m1.medium.gen1
    • 4 vCPU
    • 6GB RAM
    • 150 credits / minute
  • M1 Large
    • resource class tag: macos.m1.large.gen1
    • 8 vCPU
    • 12GB RAM
    • 250 credits / minute

How to migrate to M1

  1. Update the resource class key in your configuration file from medium or macos.x86.medium.gen2 to macos.m1.medium.gen1
    A. Or, update the resource class key your configuration to macos.m1.large.gen1, to take advantage of more cores and greater memory
  2. Use our script here to help find and update your mac resource classes
    A. This script will scan the repos in your organization to determine if Gen1 or Gen2 mac resource classes are present and update them to either Gen2 or M1 based on the parameters you provide.
    B. You just need to stipulate whether you are updating just Gen1 or both Gen1 and Gen2 and what resource class you want to upgrade to

Timeline

  • September 2023
    • The default macOS resource class will be updated to Gen2 medium
  • 2 October 2023
    • Gen1 and Dedicated Hosts will no longer be available for use
    • Customers will need to update their config to a new resource class before this date to avoid build errors
  • December 2023
    • Free customers will get access to M1 medium (more details on exact timing will be provided later this fall)
    • The default macOS resource class will be updated to M1 medium
  • 31 January 2024
    • Gen2 will no longer be available to use
    • Customers will need to update their config to a new resource class before this date to avoid build errors

Brownouts

We will be conducting brownouts for the above resources on the following dates and times. Free customers will be exempt from all but the final brownout. If you’re interested in why we conduct brownouts, check out this blog post .

  • 13 September 2023
    • 01:00 UTC → 04:00 UTC
    • 09:00 UTC → 12:00 UTC
    • 14:00 UTC → 17:00 UTC
  • 26 September 2023
    • 02:00 UTC → 10:00 UTC
    • 14:00 UTC → 22:00 UTC
  • 15 November 2023
    • 02:00 UTC → 10:00 UTC
    • 14:00 UTC → 22:00 UTC
  • 23 January 2024
    • 00:00 UTC → 00:00 UTC (24 Hours)

During these times, all jobs calling Intel-based macOS resources will fail. Please update your configs as soon as possible to prevent any disruption to your pipelines.

Why are these resources being deprecated?

In November 2020, Apple released the first Macs with an ARM-based M1 chip and announced that the transition from Intel processors to their own silicon-based processors would take about two years. Now that we’re well past that two-year timeframe, we believe we can best serve our customers by focusing on delivering the latest Apple Silicon resources moving forward.

As always, please don’t hesitate to reach out to our amazing support team with any questions!

I need to produce binaries for Intel Mac (x64) with GraalVM native-image. I was able to do this by downloading native image for that architecture and just running it. macOS will invoke Rosetta2 automatically and a x64 binary will be produced. So I can migrate from a Intel resource to m1 resource thanks to Rosetta2.

2 Likes

Hello, i made change as you suggesting and my builds are not passing. Did i something wrong?
https://github.com/EmbeddedRPC/erpc/pull/376/files https://app.circleci.com/pipelines/github/EmbeddedRPC/erpc/409

@Hadatko It looks like you’re using Xcode 12.5.1, which is not available on our M1 resources. Here is a list of all supported images - Using the macOS execution environment - CircleCI. Please try updating your Xcode image and let us know if you still run into issues.

Hi @alexazl , Thank you for your input. I tried 14.3.1 but still failing.

@Hadatko I just noticed that you are on our Free plan. Sorry for the confusion! The M1 medium resource class will be available on the Free plan in December.

So how to process builds in time between 2.october to December?

You can use our Gen2 resources (macos.x86.medium.gen2) in the meantime. That resource class will still be available until January 31, 2024.

Thank you very much. That works well.

Is it possible to get an overview from circleci which projects are currently using a soon-to-be deprecated resource class?

EDIT: whoops, sorry, I see there’s a script.

Our customers will want an Intel version of our software way after January 2024 - what do you suggest?

You can still do this on M1. Apple has provided more details for doing so in their documentation - Building a Universal macOS Binary | Apple Developer Documentation.

Our product is Java based and we ship separate packages for Intel and Apple Silicon. I’ve not tried it, but there would be a fair bit of effort to get this to cross compile.

Hello, we’ve tested running a job using medium and macos.x86.medium.gen2 during the brownout now but it looks like it’s still passing.
https://app.circleci.com/pipelines/bitbucket/stronach/1st/90105/workflows/a1154230-15b9-46c0-8ce9-9a41be2e4d52

The script to help migrate resource classes appears to only support Github and not Bitbucket/GitLab. Are there plans to provide a similar script for Bitbucket/GitLab?

Hello! We’ve tested again just now and medium, macos.x86.medium.gen2, and default (i.e. resource_class is not explicitly defined) are all failing.

But we believe macos.x86.medium.gen2 and default should still be passing after Oct 2, 2023. Is our understanding correct? Thanks!

To follow up on my earlier comment - we can cross compile our Java product quite easily actually using Rosetta. I’ve tested this, however - the builds take twice as long, and the M1 medium costs twice as much as the Medium Gen 2 Intel. So in our use case, switching over will make our tests take twice as long and cost more than 3 times the price.

I have some concerns because when we were setting up our pipeline to run detox tests on iOS using the orbs react-native-community/react-native@7.1.1 and circleci/node@5.1.0, only macos.x86.medium.gen2 worked for us. The other two M1s were failing due to some kind of infrastructure incompatibility with the components used in the pipeline. I haven’t tried them again since then, but this was the issue happening when trying to execute commands with Detox on the emulator while using a M1 Large resource:
“00:35:05.710 detox[20977] i IOServiceMatchingfailed for: AppleM2ScalerCSCDriver”

Thank you for bringing this to my attention! I’m working with my team to see if we can get the script updated to support Bitbucket. I will keep you updated!

You are correct that Gen2 medium (macos.x86.medium.gen2) and the default resource class will continue to work after October 2. However, Gen2 Medium will be deprecated on January 31, 2024. The brownouts are intended to give customers an idea of what changes they need to make in preparation for a major deprecation. We know that moving resource classes can take time so we want to encourage all users to start moving to M1.

While the default class is currently medium, we will soon be updating it to Gen2 medium. We are waiting to update it to M1 medium (macos.m1.medium.gen1) until December, since taking major actions like switching architectures on customers’ behalf has a high likelihood of causing breakage without a clear explanation of why builds broke.