Skip to content

Use nix based github action job for macos #278

Use nix based github action job for macos

Use nix based github action job for macos #278

Workflow file for this run

name: CI
on:
- push
- pull_request
env:
OTP_VERSION: "24.0"
ELIXIR_VERSION: "1.14.0"
jobs:
lint:
runs-on: ubuntu-20.04
name: Lint OTP ${{matrix.otp}} / Elixir ${{matrix.elixir}}
strategy:
matrix:
include:
- elixir: 1.16.x
otp: 26.x
steps:
- uses: erlef/setup-beam@v1
with:
otp-version: ${{matrix.otp}}
elixir-version: ${{matrix.elixir}}
- uses: actions/checkout@v3
- name: Cache Dependencies
id: mix-cache
uses: actions/cache@v3
with:
path: |
deps
_build
priv/plts
key: ${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-${{ hashFiles('mix.lock') }}
- name: Install Dependencies
if: steps.mix-cache.outputs.cache-hit != 'true'
run: |
mkdir -p priv/plts
mix deps.get
mix deps.compile
mix dialyzer --plt
- run: mix deps.get
- run: mix deps.unlock --check-unused
- run: mix format --check-formatted
- run: mix compile --warnings-as-errors
- run: mix credo --strict
- run: mix dialyzer --plt
linux:
runs-on: ubuntu-20.04
name: Linux OTP ${{matrix.otp}} / Elixir ${{matrix.elixir}}
strategy:
matrix:
include:
- elixir: 1.12.x
otp: 23.x
- elixir: 1.13.x
otp: 24.x
- elixir: 1.14.x
otp: 25.x
- elixir: 1.15.x
otp: 26.x
- elixir: 1.16.x
otp: 26.x
steps:
- uses: erlef/setup-beam@v1
with:
otp-version: ${{matrix.otp}}
elixir-version: ${{matrix.elixir}}
- uses: actions/checkout@v3
- name: Cache Dependencies
id: mix-cache
uses: actions/cache@v3
with:
path: |
deps
_build
key: ${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-${{ hashFiles('mix.lock') }}
- name: Install Dependencies
if: steps.mix-cache.outputs.cache-hit != 'true'
run: |
mix deps.get
mix deps.compile
- run: mix deps.get
- run: mix compile --warnings-as-errors
- run: mix test --trace
macos:
runs-on: macos-11
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
- uses: DeterminateSystems/flake-checker-action@main
- run: nix develop
- run: nix develop --command mix deps.get
- run: nix develop --command mix compile --warnings-as-errors
- run: nix develop --command mix test --trace
windows:
runs-on: windows-2019
name: Windows OTP ${{matrix.otp}} / Elixir ${{matrix.elixir}}
strategy:
matrix:
include:
- elixir: "1.14"
otp: "25"
steps:
- uses: erlef/setup-beam@v1
with:
otp-version: ${{matrix.otp}}
elixir-version: ${{matrix.elixir}}
- uses: actions/checkout@v2
- name: Cache Dependencies
id: mix-cache
uses: actions/cache@v3
with:
path: |
deps
_build
key: ${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-${{ hashFiles('mix.lock') }}
- name: Install Dependencies
if: steps.mix-cache.outputs.cache-hit != 'true'
run: |
mix deps.get
mix deps.compile
- run: mix deps.get
- run: mix compile --warnings-as-errors
- run: mix test --trace --exclude os:unix