From 540b967fe525075284988b6380885bc63728656b Mon Sep 17 00:00:00 2001 From: Jason Garber Date: Mon, 5 Aug 2024 09:34:06 -0400 Subject: [PATCH] Break out macOS test into a separate job MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. I derived this solution from [2]. 🤞🏻 Let's see if it works! [1] https://github.com/erlef/setup-beam/issues/54 [2] https://github.com/rusterlium/rustler/blob/master/.github/workflows/main.yml --- .github/workflows/ci.yml | 41 +++++++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e020d55..3c1bc1a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,25 +7,36 @@ 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: OTP ${{ matrix.otp }} (macOS) + runs-on: macos_latest + strategy: + fail-fast: false + matrix: + otp: ["erlang@24", "erlang"] + steps: + - uses: actions/checkout@v4 + - name: Install Erlang and Elixir with Homebrew + run: | + brew install ${{ matrix.otp }} + mix local.hex --force + - 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