name: Test
|
|
|
|
on:
|
|
pull_request:
|
|
branches:
|
|
- "main"
|
|
push:
|
|
|
|
jobs:
|
|
build:
|
|
name: Test on OTP ${{ matrix.otp_version }} and ${{ matrix.os }}
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-latest]
|
|
otp_version:
|
|
- "25.x"
|
|
- "24.x"
|
|
- "23.x"
|
|
- "22.x"
|
|
- "21.x"
|
|
- "20.x"
|
|
include:
|
|
- otp_version: "22.x"
|
|
rebar3-version: 3.6.1
|
|
- otp_version: "21.x"
|
|
rebar3-version: 3.6.1
|
|
- otp_version: "20.x"
|
|
rebar3-version: 3.6.1
|
|
env:
|
|
OTP_VERSION: ${{ matrix.otp_version }}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: erlef/setup-beam@v1
|
|
with:
|
|
otp-version: ${{ matrix.otp_version }}
|
|
rebar3-version: ${{ matrix.rebar3-version }}
|
|
- uses: actions/cache@v2
|
|
name: Cache
|
|
with:
|
|
path: |
|
|
_build
|
|
key: ${{ runner.os }}-build-${{ matrix.otp_version }}-${{ hashFiles(format('rebar.lock')) }}-1
|
|
restore-keys: |
|
|
${{ runner.os }}-build-${{ matrix.otp_version }}-1-
|
|
- name: Compile
|
|
run: rebar3 compile
|
|
- name: Eunit tests
|
|
run: rebar3 eunit
|
|
- name: Dialyzer
|
|
run: rebar3 dialyzer || exit 0
|