diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..b1704cc --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,70 @@ +name: CI + +on: + pull_request: + push: + branches: + - main + - ci-test-ghwf + +jobs: + test: + runs-on: ubuntu-22.04 + env: + MIX_ENV: test + + strategy: + fail-fast: false + matrix: + include: + - pair: + elixir: 1.14.2 + otp: 25.0 + lint: lint + + steps: + - uses: actions/checkout@v2 + + - uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.pair.otp }} + elixir-version: ${{ matrix.pair.elixir }} + + - name: Install dependencies + run: mix do deps.get --only $MIX_ENV, deps.compile + + - name: Check that there are no unused dependencies in mix.lock + run: mix deps.get && mix 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 + + test_older_elixir: + runs-on: ubuntu-20.04 + env: + MIX_ENV: test + strategy: + fail-fast: false + matrix: + include: + - pair: + elixir: 1.8.1 + otp: 20.0 + steps: + - uses: actions/checkout@v2 + + - uses: erlef/setup-beam@v1 + with: + otp-version: ${{ matrix.pair.otp }} + elixir-version: ${{ matrix.pair.elixir }} + + - name: Install dependencies + run: mix do deps.get --only $MIX_ENV, deps.compile + + - name: Run tests + run: mix test