From 54841b9767c6af54eb623c2088785583eb4eea7e Mon Sep 17 00:00:00 2001 From: Ben Reinhart Date: Mon, 11 Nov 2024 12:30:08 -0800 Subject: [PATCH] Add CI --- .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..e64efbc --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,54 @@ +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.12" + otp: "24.3.4.10" + - pair: + elixir: "1.17" + otp: "27.0.1" + lint: lint + steps: + - uses: actions/checkout@v4 + + - uses: erlef/setup-beam@main + with: + otp-version: ${{ matrix.pair.otp }} + elixir-version: ${{ matrix.pair.elixir }} + version-type: strict + + - uses: actions/cache@v4 + with: + path: deps + key: mix-otp-${{ matrix.pair.otp }}-deps-${{ hashFiles('**/mix.lock') }} + + - 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 }}