Simplify CI #106
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
jobs: | |
test: | |
name: Elixir ${{ matrix.elixir }}/OTP ${{ matrix.otp }} | |
runs-on: ${{ matrix.os }} | |
env: | |
MIX_ENV: test | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
# Latest supported versions. | |
- os: ubuntu-22.04 | |
elixir: "1.17" | |
otp: "27.0" | |
lint: true | |
# This is a middle ground: it's old versions that we probably want to start | |
# requiring at some point, but technically we support older. | |
- os: ubuntu-20.04 | |
elixir: "1.13" | |
otp: "22.3" | |
# Oldest supported versions. | |
- os: ubuntu-18.04 | |
elixir: "1.7.4" | |
otp: "19.3.6.13" | |
steps: | |
- name: Check out this repository | |
uses: actions/checkout@v4 | |
- name: Set up Erlang and Elixir | |
uses: erlef/setup-beam@v1 | |
with: | |
otp-version: ${{ matrix.otp }} | |
elixir-version: ${{ matrix.elixir }} | |
- name: Install dependencies | |
run: mix deps.get --only $MIX_ENV | |
- name: Check that code is formatted | |
run: mix format --check-formatted | |
if: ${{ matrix.lint }} | |
- name: Check that there are no unused dependencies in mix.lock | |
run: mix do deps.get, deps.unlock --check-unused | |
if: ${{ matrix.lint }} | |
- name: Compile with --warnings-as-errors | |
run: mix compile --warnings-as-errors | |
if: ${{ matrix.lint }} | |
- name: Run tests | |
run: mix test |