Skip to content

Commit

Permalink
Break out macOS test into a separate job
Browse files Browse the repository at this point in the history
Turns out the underlying setup-beam workflow doesn't support macOS [1].

This change breaks out that OS into its own job whereby we ~~install
Erlang and (some version of) Elixir using Homebrew~~ use ASDF to install
the matrix'ed versions of Elixir and Erlang. I (originally) derived this
solution from [2].

🤞🏻 Let's see if it works!

[1] erlef/setup-beam#54
[2] https://github.com/rusterlium/rustler/blob/master/.github/workflows/main.yml

Squashed WIP commits with the following commit messages:

- 0a42b83 YAML 🥴
- 5b9a38a Fix runs-on values
- 95f2fd8 Try using asdf reusable workflow to install Elixir and Erlang
- 1785e90 Update macOS job name
- 3277cef Install Hex
- 5d1d30d Install dependencies in macOS jobs
  • Loading branch information
jgarber623-cargosense committed Aug 5, 2024
1 parent cd35a17 commit a0b8826
Showing 1 changed file with 36 additions and 15 deletions.
51 changes: 36 additions & 15 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,46 @@ on:
branches: ["main"]
workflow_dispatch:

env:
MIX_ENV: test

jobs:
test:
name: Elixir ${{ matrix.pair.elixir }} OTP ${{ matrix.pair.otp }} (${{ matrix.os }})
runs-on: ${{ matrix.os }}
env:
MIX_ENV: test
test_macos:
name: Elixir ${{ matrix.pair.elixir }} OTP ${{ matrix.pair.otp }} (macOS)
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
pair:
- elixir: "1.13"
otp: "24.3.4.10"
- elixir: "1.17"
otp: "27.0.1"
steps:
- uses: actions/checkout@v4
- name: Generate .tool-versions file
run: |
echo "elixir ${{ matrix.pair.elixir }}" >> .tool-versions
echo "erlang ${{ matrix.pair.otp }}" >> .tool-versions
cat .tool-versions
- uses: asdf-vm/actions/install@v3
- name: Install Hex package manager
run: mix local.hex --force
- name: Install dependencies
run: mix deps.get
- run: mix format --check-formatted
- run: mix test
test_ubuntu:
name: Elixir ${{ matrix.pair.elixir }} OTP ${{ matrix.pair.otp }} (Ubuntu)
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-latest
include:
- pair:
elixir: "1.13"
otp: "24.3.4.10"
- pair:
elixir: "1.17"
otp: "27.0.1"
pair:
- elixir: "1.13"
otp: "24.3.4.10"
- elixir: "1.17"
otp: "27.0.1"
steps:
- uses: actions/checkout@v4
- uses: CargoSense/setup-elixir-project@v1
Expand Down

0 comments on commit a0b8826

Please sign in to comment.