name: CI on: pull_request: push: branches: - main jobs: test: runs-on: ubuntu-20.04 env: MIX_ENV: test strategy: fail-fast: false matrix: include: - pair: elixir: '1.11' otp: 22 - pair: elixir: '1.14' otp: 25 lint: lint steps: - uses: actions/checkout@v2 - uses: erlef/setup-beam@v1 with: otp-version: ${{matrix.pair.otp}} elixir-version: ${{matrix.pair.elixir}} - uses: actions/cache@v2 with: path: deps key: mix-deps-${{ hashFiles('**/mix.lock') }} - run: mix deps.get - run: mix format --check-formatted if: ${{ matrix.lint }} - run: mix deps.unlock --check-unused if: ${{ matrix.lint }} - run: mix deps.compile - run: mix compile --warnings-as-errors if: ${{ matrix.lint }} - run: mix test if: ${{ ! matrix.lint }} - run: mix test --warnings-as-errors if: ${{ matrix.lint }}