Skip to content
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

macos 14 is only arm64 #9741

Closed
2 of 13 tasks
wmertens opened this issue Apr 24, 2024 · 10 comments
Closed
2 of 13 tasks

macos 14 is only arm64 #9741

wmertens opened this issue Apr 24, 2024 · 10 comments

Comments

@wmertens
Copy link

wmertens commented Apr 24, 2024

Description

I specify

  build-bindings:
    strategy:
      matrix:
        settings:
          - host: macos-latest
            target: x86_64-apple-darwin

but I get an arm64 host. Are there no more x64 hosts for macos 14?

Platforms affected

  • Azure DevOps
  • GitHub Actions - Standard Runners
  • GitHub Actions - Larger Runners

Runner images affected

  • Ubuntu 20.04
  • Ubuntu 22.04
  • macOS 11
  • macOS 12
  • macOS 13
  • macOS 13 Arm64
  • macOS 14
  • macOS 14 Arm64
  • Windows Server 2019
  • Windows Server 2022

Image version and build link

Image: macos-14-arm64
Version: 20240415.6

Is it regression?

not sure

Expected behavior

should get latest macos with x64, even if that's not the latest macos

Actual behavior

get arm64

Repro steps

ask for x64 macos-latest runner

@mikhailkoliada
Copy link
Contributor

Hello! As stated in the table the only intel-based macOS-14 runner is macos-14-large (doc). There are no plans to introduce macOS-14 intel standard runners as of now.

@javierggt
Copy link

javierggt commented Apr 24, 2024

I'm sorry, but if I understood correctly, @wmertens is not trying to run macOS-14 specifically. He uses macos-latest. He assumed macos-latest would be macOS-14, but the actual issue is with macos-latest.

I just hit an issue where I'm using macos-latest to build a conda package, and it determines the platform is ARM, so I might have the same issue.

Is the problem that macos-latest is indeed macOS-14? I was under the impression that macos-latest would not be an ARM platform.

@nulano
Copy link

nulano commented Apr 24, 2024

https://github.com/actions/runner-images?tab=readme-ov-file#available-images shows macos-latest as being an ARM platform.

@mikhailkoliada
Copy link
Contributor

mikhailkoliada commented Apr 24, 2024

Starting OS14 standard runners are going to be arm based, i.e. standard OS13 runner is intel but OS14 and further are the arm ones. As of macOS-latest, it is being transited from OS12 to OS14

@marcprux
Copy link

There are no plans to introduce macOS-14 intel standard runners as of now.

@mikhailkoliada This presents a problem for runners that need to build and test both iOS and Android apps (such as Flutter and React Native projects). They generally use the popular https://github.com/ReactiveCircus/android-emulator-runner action, but due to the inability to run nested virtualization on the macOS ARM runners, there is as of now no way to build and test projects on both an iOS simulator (which require macOS) and an Android emulator (which cannot be run on the ARM runners due to the lack of nested virtualization support).

This is also discussed at ReactiveCircus/android-emulator-runner#350, and in the issues of a slew of other projects that are going to be stuck on the macos-13 runners until they age out, at which point they will be stranded.

Having a macOS-14 Intel standard runner would solve this problem.

@str4d
Copy link

str4d commented Apr 26, 2024

The other issue is that, prior to now, all *-latest runners were x86_64. Switching macos-latest from x86_64 to ARM64 breaks a bunch of workflows that involve caching (e.g. #9732 (comment)), because the caching approaches that GitHub recommends (e.g. here) pattern-match on runner.os.

@wmertens
Copy link
Author

Right, I think it would be better to either:

  • make the combo macos-latest+x86 be macos-13
  • fail the CI when macos-latest+x86 is requested

huacnlee added a commit to huacnlee/autocorrect that referenced this issue May 8, 2024
huacnlee added a commit to huacnlee/autocorrect that referenced this issue May 8, 2024
undergroundwires added a commit to undergroundwires/privacy.sexy that referenced this issue May 13, 2024
The GitHub workflow for testing Docker builds on macOS was consistently
failing. This commit downgrades the macOS version used for Docker tests
to `macos-13`, which is the latest Intel-based macOS runner, instead of
the ARM-based `macos-14` which `macos-latest` points to.

This change is necessary because the hypervisor framework required for
Docker is not supported on the ARM-based macOS runners provided by
GitHub. This issue was causing failures when attempting to run Colima
with QEMU using `-accel hvf`, which is unsupported on these runners.
Switching to an Intel-based runner resolves this issue.

Related issues:
- actions/runner-images#9460
- actions/runner-images#9741
- abiosoft/colima#1023
lyonbot added a commit to lyonbot/Weylus that referenced this issue Jul 20, 2024
erikmd added a commit to pfitaxel/learn-ocaml that referenced this issue Jul 26, 2024
as macos-14 only provide arm builds now.

Related: actions/runner-images#9741
AltGr pushed a commit to ocaml-sf/learn-ocaml that referenced this issue Jul 26, 2024
as macos-14 only provide arm builds now.

Related: actions/runner-images#9741
sanjacob added a commit to sanjacob/BlackboardSync that referenced this issue Jul 30, 2024
To understand why this issue came to be, we first need to understand
the context.

1. GitHub decided to migrate the macos-latest runner image to macOS 14
   Nothing wrong with that by itself. However, macOS 14 has mainly arm64
   images. This is documented in actions/runner-images#9741
2. For some reason that baffles me, riverbank decided to ship their
   pyqt5-qt5 in a way that only includes certain platforms in each
   release. For instance, version X will only have wheels for windows,
   while version Y will have only a macOS build. Keep this in mind.
3. Up to a few months, builds were perfectly fine.

However, once GitHub enforced the new version of macos-latest
two things happened:

a. Suddenly there was no valid Python 3.10.10 image for macos.
   This is because while there is a valid x86 image, there never was
   an arm64 one. I fixed this in a prior commit.
b. Suddenly there was no valid version of pyqt5-qt5. This is for the
   same reason.

I actually had let @dependabot update pyqt5-qt5 without realising that
the last 4 or so releases have not had a windows build in them.
But once I reverted this commit I realised the macOS build was broken.

Fair enough, now it's a matter of selecting a version equal or greater
to than the minimum common denominator, no?

But I haven't mentioned that Pipenv is extremely constrained in this
regard. So once it generates a Pipfile.lock, these requirements are
locked to the version it managed to resolve at that time. Which presents
a problem, since it will be dependant on the platform this step was
executed on.

I even tried using markers to select a version based on the os, but
two different versions cannot be specified at all, even if mutually
exclusive.

After all, I ended up manually replacing the requirement generated by
Pipenv so that the version is selected using >= rather than an exact
match.
DeckerSU added a commit to KomodoPlatform/komodo that referenced this issue Aug 9, 2024
DeckerSU added a commit to KomodoPlatform/komodo that referenced this issue Aug 9, 2024
exquo added a commit to exquo/signal-libs-build that referenced this issue Aug 21, 2024
Github runner macos-latest is now arm64
actions/runner-images#9741
@MordechaiHadad
Copy link

MordechaiHadad commented Aug 27, 2024

I am unable to use x86 runner for macos, it complains about billing or something but this is an open source project I have been using gh actions for, for a few years now and I have never had to pay anything. And every other job that doesn't use macos-latest-large works correctly as well.

image

Workflow file:

on: push

jobs:
  arm:
    runs-on: macos-latest
    steps:
      - name: Get architecture
        run: uname -m
  regular:
    runs-on: macos-latest-large
    steps:
      - name: Get arch again
        run: uname -m

@Mizux
Copy link

Mizux commented Aug 27, 2024

I am unable to use x86 runner for macos, it complains about billing or something but this is an open source project I have been using gh actions for, for a few years now and I have never had to pay anything. And every other job that doesn't use macos-latest-large works correctly as well.

image

Workflow file:

on: push

jobs:
  arm:
    runs-on: macos-latest
    steps:
      - name: Get architecture
        run: uname -m
  regular:
    runs-on: macos-latest-large
    steps:
      - name: Get arch again
        run: uname -m

Did you try to use macos-13 instead to have an intel based runner ? or do you need a macOS 14 specifically ?
ref: https://github.com/actions/runner-images

@karlhorky
Copy link

Copying the comment from @peterlazar1993 , looks like it could be interesting for theoretical future GitHub Actions runners on M3 chips with macOS Sequoia:

You cannot run a VM(android emulator) inside a VM on M1, M2 macs.

M3 macs with OSX15 (upcoming), will allow nested virtualisation - forum.parallels.com/threads/macos-15-sequoia-nested-virtualization-for-m3-macs.364397

GalaxySnail added a commit to GalaxySnail/wcwidth that referenced this issue Sep 5, 2024
macos-latest is currently an alias for macOS 14 Arm64, use
macos-latest-large instead.

[1] actions/runner-images#9741
[2] https://github.com/actions/runner-images#available-images
GalaxySnail added a commit to GalaxySnail/wcwidth that referenced this issue Sep 5, 2024
macos-latest is currently an alias for macOS 14 Arm64, and python 3.7 is
already EOL, so drop it on macOS.

[1] actions/runner-images#9741
[2] https://github.com/actions/runner-images#available-images
GalaxySnail added a commit to GalaxySnail/wcwidth that referenced this issue Sep 5, 2024
macos-latest is currently an alias for macOS 14 Arm64, and python 3.7 is
already EOL, so drop it on macOS.

[1] actions/runner-images#9741
[2] https://github.com/actions/runner-images#available-images
GalaxySnail added a commit to GalaxySnail/wcwidth that referenced this issue Sep 5, 2024
macos-latest is currently an alias for macOS 14 Arm64, and python 3.7 is
already EOL, so drop it on macOS.

[1] actions/runner-images#9741
[2] https://github.com/actions/runner-images#available-images
GalaxySnail added a commit to GalaxySnail/wcwidth that referenced this issue Sep 5, 2024
macos-latest is currently an alias for macOS 14 Arm64, and python 3.7 is
already EOL, so drop it on macOS.

[1] actions/runner-images#9741
[2] https://github.com/actions/runner-images#available-images
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants