diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..0f632de --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,54 @@ +name: Elixir CI + +on: + pull_request: + push: + branches: + - main + - "v*" + +jobs: + mix_test_old: + name: mix test (Elixir ${{matrix.elixir}} | OTP ${{matrix.otp}}) + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + - elixir: 1.16.x + otp: 26 + os: ubuntu-latest + - elixir: 1.17.x + otp: 27 + os: ubuntu-latest + warnings_as_errors: true + env: + MIX_ENV: test + steps: + - uses: actions/checkout@v4 + - uses: erlef/setup-beam@v1 + with: + otp-version: ${{matrix.otp}} + elixir-version: ${{matrix.elixir}} + - name: Install Dependencies + run: | + mix local.hex --force + mix local.rebar --force + mix deps.get --only test + - name: Cache build artifacts + uses: actions/cache@v3 + with: + path: | + ~/.hex + ~/.mix + _build + key: ${{ matrix.otp }}-${{ matrix.elixir }}-build + - run: mix compile --warnings-as-errors + if: matrix.warnings_as_errors + env: + CC: gcc-10 + CXX: g++-10 + - run: mix test + env: + CC: gcc-10 + CXX: g++-10