# Running tests for Apple silicon on a GitHub CI workflow

**URL:** <https://discourse.julialang.org/t/running-tests-for-apple-silicon-on-a-github-ci-workflow/98443>\
**Category:** Tooling\
**Tags:** ci\
**Created:** [May 7, 2023, 7:04pm UTC](https://discourse.julialang.org/t/running-tests-for-apple-silicon-on-a-github-ci-workflow/98443 "2023-05-07T19:04:52Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![ferrolho](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ferrolho/32/213665_2.png) [@ferrolho](https://discourse.julialang.org/u/ferrolho)\
**Post date:** [May 7, 2023, 7:04pm UTC](https://discourse.julialang.org/t/running-tests-for-apple-silicon-on-a-github-ci-workflow/98443/1 "2023-05-07T19:04:52Z")

</div>

Has anyone managed to include an Apple silicon instance in their GitHub CI test jobs?

I tried adding the following to a CI.yml:

```diff
jobs:
  test:
    name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        version:
          - '1.6' # LTS
          - '1.8' # latest stable
        os:
          - ubuntu-latest
        arch:
          - x64
        include:
+ - os: macOS-latest
+ version: 1.8.5
+ arch: arm64
          - os: macOS-latest
            version: 1.8.5
            arch: x64
          - os: windows-latest
            version: 1.8.5
            arch: x64

```

but I am getting the following error at the “_Run julia-actions/setup-julia@v1_” stage:

```julia
Run julia-actions/setup-julia@v1
  with:
    version: 1.8.5
    arch: arm64
    include-all-prereleases: false
    show-versioninfo: false
/usr/bin/tar xf /Users/runner/work/_temp/021514b2-c655-49e3-8e86-683d09bc27d0 --strip-components=1 -C julia-aarch64-1.8.5-2Xa2VM
/Users/runner/hostedtoolcache/julia/1.8.5/aarch64/bin/julia --version
node:internal/errors:465
    ErrorCaptureStackTrace(err);
    ^

Error: spawn Unknown system error -86
    at ChildProcess.spawn (node:internal/child_process:413:11)
    at Object.spawn (node:child_process:700:9)
    at ToolRunner.<anonymous> (/Users/runner/work/_actions/julia-actions/setup-julia/v1/dist/index.js:831:34)
    at Generator.next (<anonymous>)
    at /Users/runner/work/_actions/julia-actions/setup-julia/v1/dist/index.js:445:71
    at new Promise (<anonymous>)
    at module.exports.9.__awaiter (/Users/runner/work/_actions/julia-actions/setup-julia/v1/dist/index.js:441:12)
    at /Users/runner/work/_actions/julia-actions/setup-julia/v1/dist/index.js:813:53
    at new Promise (<anonymous>)
    at ToolRunner.<anonymous> (/Users/runner/work/_actions/julia-actions/setup-julia/v1/dist/index.js:813:20) {
  errno: -86,
  code: 'Unknown system error -86',
  syscall: 'spawn'
}

```

I tried doing a quick search, but I could only find Mosè’s post for Drone CI ([here](https://discourse.julialang.org/t/testing-on-arm-with-drone-ci/25871)).

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [May 7, 2023, 7:07pm UTC](https://discourse.julialang.org/t/running-tests-for-apple-silicon-on-a-github-ci-workflow/98443/2 "2023-05-07T19:07:23Z")

</div>

I don’t think Drone CI is free anymore (and it never offered apple silicon runners anyway). For M1 I’m currently using Cirrus, see for example [Cuba.jl/.cirrus.yml at cbe9e3d7b810c99b9e15ad0336458c42ea9a4413 · giordano/Cuba.jl · GitHub](https://github.com/giordano/Cuba.jl/blob/cbe9e3d7b810c99b9e15ad0336458c42ea9a4413/.cirrus.yml)

---

<div class="post-metadata">

**Author:** ![e3c6](https://avatars.discourse-cdn.com/v4/letter/e/e79b87/32.png) [@e3c6](https://discourse.julialang.org/u/e3c6)\
**Post date:** [May 7, 2023, 7:14pm UTC](https://discourse.julialang.org/t/running-tests-for-apple-silicon-on-a-github-ci-workflow/98443/3 "2023-05-07T19:14:13Z")

</div>

It seems the Github hosted runners will support M-series chips eventually, but not yet:

> <https://github.com/github/roadmap/issues/528>
>
> \### Summary
> 
> Apple developers will get the hardware and performance they need …for their CI/CD operations with GitHub-hosted macOS runners powered by Apply silicone in an OSX arm64 runtime. The new runner options will make certain their apps are compatible with past, present, and future software requirements and have the performance they need to increase development velocity. 
> 
> \### Intended Outcome
> 
> Developers that want to build and deploy their applications using the latest Apple technologies will be able to do so with ease using GitHub Actions.  
> 
> \### How will it work?
> 
> To get started using M1 powered GitHub-hosted macOS runners, update the \`runs-on:\` key in your Actions workflow YAML to have those jobs target the new runner.

I think this issue can be tracked for updates:

> <https://github.com/actions/runner-images/issues/2187>
>
> Is there any plan to release VMs in Apple M1 hardware to run GitHub Actions?

---

<div class="post-metadata">

**Author:** ![ferrolho](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ferrolho/32/213665_2.png) [@ferrolho](https://discourse.julialang.org/u/ferrolho)\
**Post date:** [May 7, 2023, 7:19pm UTC](https://discourse.julialang.org/t/running-tests-for-apple-silicon-on-a-github-ci-workflow/98443/4 "2023-05-07T19:19:12Z")

</div>

I just came across that very same link from this blog post:

> **[GitHub Actions: Introducing faster GitHub-hosted x64 macOS runners](https://github.blog/2023-03-01-github-actions-introducing-faster-github-hosted-x64-macos-runners/#apple-silicon-is-on-the-way)**
>
> Speed up your GitHub Actions jobs on macOS with all new, faster GitHub-hosted macOS runners for x64.

> ## Apple silicon is on the way!
> 
> We’ve started racking up and testing out Apple silicon-based machines in the hosted runner data centers. Follow this [roadmap item](https://github.com/github/roadmap/issues/528) to track progress. We hope to be offering a limited beta in CY2023 depending on hardware availability, but keep your eyes on [the GitHub blog](https://github.blog/) for more information.

It seems to be scheduled for **Q4 2023 – Oct-Dec** on their roadmap.

Nice to know it’s on its way. Thank you, both! 🎉
