1919 os : ubuntu-latest
2020 lint : true
2121 coverage : true
22+ dialyzer : true
2223
23- - otp : " 23.3"
24- elixir : " 1.12"
24+ # Technically supports down to OTP 23 (as that's what Elixir 1.14 supports),
25+ # but on CI it's easier to use OTP 24.
26+ - otp : " 24.3"
27+ elixir : " 1.14"
2528 os : ubuntu-20.04
2629
2730 env :
3033
3134 steps :
3235 - name : Clone repository
33- uses : actions/checkout@v3
36+ uses : actions/checkout@v4
3437
3538 - name : Install OTP and Elixir
3639 uses : erlef/setup-beam@v1
@@ -40,35 +43,36 @@ jobs:
4043 version-type : strict
4144
4245 - name : Install dependencies
43- run : mix do deps.get --only test, deps.compile
46+ run : mix deps.get --only test
4447
4548 - name : Check for formatted code
4649 if : ${{ matrix.lint }}
4750 run : mix format --check-formatted
4851
4952 - name : Cache/uncache PLTs
50- uses : actions/cache@v3
53+ uses : actions/cache@v4
5154 with :
5255 path : |
5356 priv/plts
5457 key : " ${{ runner.os }}-\
55- erlang-${{ matrix.otp }}-\
56- elixir-${{ matrix.elixir }}-\
57- ${{ hashFiles('mix.lock') }}"
58+ erlang-${{ matrix.otp }}-\
59+ elixir-${{ matrix.elixir }}-\
60+ ${{ hashFiles('mix.lock') }}"
5861
5962 - name : Run Dialyzer
63+ if : ${{ matrix.dialyzer }}
6064 run : mix dialyzer
6165
62- - name : Check for unused dependencies
66+ - name : Check for unused/unlocked dependencies
6367 if : ${{ matrix.lint }}
64- run : mix do deps.get, deps.unlock --check-unused
68+ run : mix do deps.get + deps.unlock --check-unused + deps.get --check-locked
6569
6670 - name : Check for compilation warnings
6771 if : ${{ matrix.lint }}
6872 run : mix compile --warnings-as-errors
6973
7074 - name : Run tests
71- run : mix test --trace
75+ run : mix test
7276 if : ${{ !matrix.coverage }}
7377
7478 - name : Run tests with coverage
0 commit comments