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