# How to fix GitHub Actions CI failures with Julia 1.6 (or 1.7) on \`macos-latest\` and \`macos-14\`

**URL:** https://discourse.julialang.org/t/how-to-fix-github-actions-ci-failures-with-julia-1-6-or-1-7-on-macos-latest-and-macos-14/117019
**Category:** Package Management
**Tags:** ci, psa
**Created:** [July 13, 2024, 10:24pm UTC](https://discourse.julialang.org/t/how-to-fix-github-actions-ci-failures-with-julia-1-6-or-1-7-on-macos-latest-and-macos-14/117019 "2024-07-13T22:24:30Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![dilumaluthge](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dilumaluthge/32/29283_2.png) [@dilumaluthge](https://discourse.julialang.org/u/dilumaluthge)
#### Post date: [July 13, 2024, 10:24pm UTC](https://discourse.julialang.org/t/how-to-fix-github-actions-ci-failures-with-julia-1-6-or-1-7-on-macos-latest-and-macos-14/117019/1 "2024-07-13T22:24:31Z")

</div>

GitHub Actions offers three\[1\] different versions of macOS on the free GitHub-hosted macOS runners:

- `macos-12`, which runs on Intel Mac machines (`x86_64`)
- `macos-13`, which runs on Intel Mac machines (`x86_64`)
- `macos-14`, which runs on Apple Silicon Mac machines (`aarch64`)

GitHub Actions also has a convenience “alias” named `macos-latest`. Previously, `macos-latest` was equivalent to `macos-12` (Intel). However, in [June 2024](https://github.blog/changelog/2024-01-30-github-actions-macos-14-sonoma-is-now-available/), GitHub modified the `macos-latest` label to point to `macos-14` (Apple Silicon) instead.

In most cases, this does not cause any problems.

However, older versions of Julia (such as Julia 1.6 and 1.7) do not have native binaries for Apple Silicon macOS. Therefore, if you try to install the native binaries for Julia 1.6 (or 1.7) on `macos-latest` or `macos-14`, this will cause an error.

For example, suppose that this is the CI job matrix in your workflow YAML file:

```yaml
matrix:
  github-runner:
    - ubuntu-latest
    - windows-latest
    - macos-latest # Apple Silicon
  julia-version:
    - '1.6'
    - '1.10'

```

And suppose that this is the `runs-on` line in your workflow YAML file:

```yaml
runs-on: ${{ matrix.github-runner }}

```

And suppose that this is how you are invoking [`julia-actions/setup-julia`](https://github.com/julia-actions/setup-julia) to install Julia in your workflow YAML file:

```yaml
- uses: julia-actions/setup-julia@v2
  with:
    version: ${{ matrix.julia-version }}

```

The Julia 1.6 job will error on `macos-latest` (but will work fine on `ubuntu-latest` and `windows-latest`). (The Julia 1.10 job will work fine on all three runners.)

In order to fix this error, you have four options:

1. Option 1: Change `macos-latest` (Apple Silicon) to `macos-13` (Intel) for all Julia versions.
2. Option 2: Exclude only the Julia 1.6 job on `macos-latest` (Apple Silicon), and run the Julia 1.6 job on `macos-13` (Intel) instead.
3. Option 3: Use Rosetta 2 emulation to run an `x86_64` build of Julia 1.6 on `macos-latest` (Apple Silicon).
4. Option 4: Combine options 2 and 3: run a native (`x86_64`) build of Julia 1.6 on `macos-13` (Intel), and then use Rosetta 2 emulation to run an `x86_64` build of Julia 1.6 on `macos-latest` (Apple Silicon).

Here are the instructions for each of those options:

## Option 1: Change `macos-latest` (Apple Silicon) to `macos-13` (Intel) for all Julia versions.

Change your matrix to look like this:

```yaml
matrix:
  github-runner:
    - ubuntu-latest
    - windows-latest
    - macos-13 # Intel
  julia-version:
    - '1.6'
    - '1.10'

```

## Option 2: Exclude only the Julia 1.6 job on `macos-latest` (Apple Silicon), and run the Julia 1.6 job on `macos-13` (Intel) instead.

Change your matrix to look like this:

```yaml
matrix:
  github-runner:
    - ubuntu-latest
    - windows-latest
    - macos-latest # Apple Silicon
  julia-version:
    - '1.6'
    - '1.10'
  exclude:
    - github-runner: macos-latest # Apple Silicon
      julia-version: '1.6'
  include:
    - github-runner: macos-13 # Intel
      julia-version: '1.6'

```

## Option 3: Use Rosetta 2 emulation to run an `x86_64` build of Julia 1.6 on `macos-latest` (Apple Silicon).

Change your matrix to look like this:

```yaml
matrix:
  github-runner:
    - ubuntu-latest
    - windows-latest
    - macos-latest # Apple Silicon
  julia-version:
    - '1.6'
    - '1.10'
  julia-arch:
    - ''
  exclude:
    - github-runner: macos-latest # Apple Silicon
      julia-version: '1.6'
      julia-arch: ''
  include:
    - github-runner: macos-latest # Apple Silicon
      julia-version: '1.6'
      # Install an x86_64 build of Julia, and run it under Rosetta 2 emulation
      julia-arch: 'x64'

```

And change your invocation of `setup-julia` to look like this:

```yaml
- uses: julia-actions/setup-julia@v2
  with:
    version: ${{ matrix.julia-version }}
    arch: ${{ (matrix.julia-arch == '') && runner.arch || matrix.julia-arch }}

```

## Option 4: Combine options 2 and 3: run a native (`x86_64`) build of Julia 1.6 on `macos-13` (Intel), and then use Rosetta 2 emulation to run an `x86_64` build of Julia 1.6 on `macos-latest` (Apple Silicon).

Change your matrix to look like this:

```yaml
matrix:
  github-runner:
    - ubuntu-latest
    - windows-latest
    - macos-latest # Apple Silicon
  julia-version:
    - '1.6'
    - '1.10'
  julia-arch:
    - ''
  exclude:
    - github-runner: macos-latest # Apple Silicon
      julia-version: '1.6'
      julia-arch: ''
  include:
    - github-runner: macos-13 # Intel
      julia-version: '1.6'
      julia-arch: ''
    - github-runner: macos-latest # Apple Silicon
      julia-version: '1.6'
      # Install an x86_64 build of Julia, and run it under Rosetta 2 emulation
      julia-arch: 'x64'

```

And change your invocation of `setup-julia` to look like this:

```yaml
- uses: julia-actions/setup-julia@v2
  with:
    version: ${{ matrix.julia-version }}
    arch: ${{ (matrix.julia-arch == '') && runner.arch || matrix.julia-arch }}

```

* * *

I am going to make an update to the `setup-julia` action so that it prints a better error message (including a link to this Discourse post) when this situation occurs.

* * *

1. GitHub also used to offer `macos-11`, which ran on Intel Mac machines (`x86_64`). However, GitHub no longer offers `macos-11` on the free GitHub-hosted runners.

---

<div class="post-metadata">

### Author: ![fonsp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fonsp/32/222349_2.png) [@fonsp](https://discourse.julialang.org/u/fonsp)
#### Post date: [July 14, 2024, 8:42am UTC](https://discourse.julialang.org/t/how-to-fix-github-actions-ci-failures-with-julia-1-6-or-1-7-on-macos-latest-and-macos-14/117019/2 "2024-07-14T08:42:45Z")

</div>

Thanks so much for the detailed instructions! 🌟

---

<div class="post-metadata">

### Author: ![putianyi888](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/putianyi888/32/32279_2.png) [@putianyi888](https://discourse.julialang.org/u/putianyi888)
#### Post date: [May 1, 2026, 6:49pm UTC](https://discourse.julialang.org/t/how-to-fix-github-actions-ci-failures-with-julia-1-6-or-1-7-on-macos-latest-and-macos-14/117019/3 "2026-05-01T18:49:59Z")

</div>

Options 1, 2 and 4 do not work, as [`macos-13` runners have been closed down by GitHub.](https://github.blog/changelog/2025-09-19-github-actions-macos-13-runner-image-is-closing-down/) Also, since `setup-julia@v3`, to allow emulation, `force-arch` has to be set to `'true'`.

```yml
- uses: julia-actions/setup-julia@v3
  with:
    force-arch: 'true'

```

---

<div class="post-metadata">

### Author: ![dilumaluthge](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dilumaluthge/32/29283_2.png) [@dilumaluthge](https://discourse.julialang.org/u/dilumaluthge)
#### Post date: [May 1, 2026, 11:29pm UTC](https://discourse.julialang.org/t/how-to-fix-github-actions-ci-failures-with-julia-1-6-or-1-7-on-macos-latest-and-macos-14/117019/4 "2026-05-01T23:29:24Z")

</div>

GitHub did shut down their macOS 13 runners.

However, GitHub currently still offers `macos-15-intel` runners:

```yaml
runs-on: macos-15-intel

```

You can use those runners for your Intel (x86\_64) macOS workloads.

Those runners will be available until August 2027\[1\].

* * *

1. [[macOS] The additional macOS 15 Sonoma Intel-based image will be available in GitHub Actions · Issue #13045 · actions/runner-images · GitHub](https://github.com/actions/runner-images/issues/13045)
