diff --git a/.github/workflows/elixir.yml b/.github/workflows/elixir.yml index e79c357..409c14e 100644 --- a/.github/workflows/elixir.yml +++ b/.github/workflows/elixir.yml @@ -6,22 +6,62 @@ env: OTP_VERSION: "24.0" ELIXIR_VERSION: "1.14.0" jobs: + lint: + runs-on: ubuntu-20.04 + name: Lint: Linux 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.10.x - otp: 23.x - - elixir: 1.11.x - otp: 23.x - elixir: 1.12.x - otp: 24.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: @@ -48,12 +88,8 @@ jobs: 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 test --trace - - run: mix credo --strict - - run: mix dialyzer --plt macos: runs-on: macos-11 @@ -65,6 +101,7 @@ jobs: mix local.hex --force mix local.rebar --force - run: mix deps.get + - run: mix compile --warnings-as-errors - run: mix test --trace windows: @@ -99,6 +136,5 @@ jobs: mix deps.compile - run: mix deps.get - - run: mix deps.unlock --check-unused - run: mix compile --warnings-as-errors - run: mix test --trace