From a607b19a84b54a778295629a6991d2ded2a108fd Mon Sep 17 00:00:00 2001 From: Hans Krutzer Date: Sun, 22 Sep 2024 12:10:45 +0200 Subject: [PATCH] Create ci.yml --- .github/workflows/ci.yml | 54 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..04791ba --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,54 @@ +name: CI + +on: + push: + branches: [ "master" ] + pull_request: + +permissions: + contents: read + +jobs: + test: + + name: Build and test + runs-on: ubuntu-latest + env: + MIX_ENV: test + strategy: + fail-fast: false + matrix: + include: + - pair: + elixir: "1.16.3" + otp: "26.2.5.3" + - pair: + elixir: "1.17.3" + otp: "27.1" + lint: lint + steps: + - uses: actions/checkout@v4 + - name: Set up Elixir + uses: erlef/setup-beam@main + with: + otp-version: ${{ matrix.pair.otp }} + elixir-version: ${{ matrix.pair.elixir }} + version-type: strict + - name: Restore dependencies cache + uses: actions/cache@v4 + with: + path: deps + key: ${{ runner.os }}-mix-${{ hashFiles('**/mix.lock') }} + restore-keys: ${{ runner.os }}-mix- + - run: mix deps.get --check-locked + - run: mix format --check-formatted + if: ${{ matrix.lint }} + - run: mix deps.unlock --check-unused + if: ${{ matrix.lint }} + - run: mix deps.compile + - run: mix compile --no-optional-deps --warnings-as-errors + if: ${{ matrix.lint }} + - run: mix test --slowest 5 + if: ${{ ! matrix.lint }} + - run: mix test --slowest 5 --warnings-as-errors + if: ${{ matrix.lint }}