diff --git a/.github/workflows/elixir.yml b/.github/workflows/elixir.yml new file mode 100644 index 0000000..18952e0 --- /dev/null +++ b/.github/workflows/elixir.yml @@ -0,0 +1,50 @@ +name: Elixir CI + +on: + push: + branches: [master] + pull_request: + branches: [master] + +env: + MIX_ENV: test + +permissions: + contents: read + +jobs: + build: + name: Build and test + runs-on: ubuntu-latest + + strategy: + matrix: + elixir: ['1.14.5', '1.15.4', '1.16.3', '1.17.3'] + erlang: ['24.3', '25.3', '26.0', '27.1'] + exclude: + - elixir: '1.14.5' + erlang: '27.1' + - elixir: '1.15.4' + erlang: '27.1' + - elixir: '1.16.3' + erlang: '27.1' + - elixir: '1.17.3' + erlang: '24.3' + steps: + - uses: actions/checkout@v3 + - name: Set up Elixir + uses: erlef/setup-beam@v1 + with: + version-type: 'loose' + elixir-version: ${{ matrix.elixir }} + otp-version: ${{ matrix.erlang }} + - name: Restore dependencies cache + uses: actions/cache@v2 + with: + path: deps + key: ${{ runner.os }}-${{ matrix.erlang }}-${{ matrix.elixir }}-mix-${{ hashFiles('**/mix.lock') }} + restore-keys: ${{ runner.os }}-${{ matrix.erlang }}-${{ matrix.elixir }}-mix- + - name: Install dependencies + run: mix deps.get + - name: Run tests + run: mix test