--- name: test on: push: {branches: main} pull_request: {branches: main} repository_dispatch: workflow_dispatch: jobs: unit_test: name: Pre-release unit tests runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 with: {node-version: '12'} - run: npm ci - run: npm test integration_test: name: > Pre-release integration tests (Erlang/OTP ${{matrix.pair.otp-version}}, Elixir ${{matrix.pair.elixir-version}}, rebar3 ${{matrix.pair.rebar3-version}}) runs-on: ubuntu-18.04 strategy: fail-fast: false matrix: pair: # Full Versions - otp-version: '22.0' elixir-version: '1.9.1' - otp-version: '22.3.4' rebar3-version: '3.14.4' # Semver ranges - otp-version: '21.x' elixir-version: '<1.9.1' - otp-version: '21.x' rebar3-version: '3.14.4' # Branches - otp-version: '22.0' elixir-version: master - otp-version: 'master' elixir-version: '1.11.3' # Pre-releases - otp-version: '23.0' elixir-version: '1.11.0-rc.0' # Fallback to Elixir (with no OTP) - otp-version: '24.0-rc1' elixir-version: '1.9.3' # Miscellaneous combos - elixir-version: 'master' otp-version: '22.3' - elixir-version: 'master' otp-version: '22' - elixir-version: 'master' otp-version: '^22' - elixir-version: 'master' otp-version: '22' - elixir-version: '1.6.5' otp-version: 'maint-21' - elixir-version: 'v1.6.5' otp-version: 'maint-21' - elixir-version: 'v1.9.x' otp-version: '21.1' - elixir-version: '1.9.x' otp-version: '21' - elixir-version: 'v1.8.x' otp-version: '22' - elixir-version: 'v1.8.x' otp-version: '23.1' - elixir-version: 'v1.8' otp-version: '^22.3' - elixir-version: 'v1.10' otp-version: '21.x' - elixir-version: 'v1.x' otp-version: 'master' - elixir-version: 'v1.11.0-rc.0' otp-version: '23' - elixir-version: 'v1.11.0-rc.0' otp-version: '23.0' - elixir-version: 'v1.11.0-rc.0' otp-version: 'master' steps: - uses: actions/checkout@v2 - name: Use erlef/setup-beam id: setup-beam uses: ./ with: otp-version: ${{matrix.pair.otp-version}} elixir-version: ${{matrix.pair.elixir-version}} rebar3-version: ${{matrix.pair.rebar3-version}} - name: Erlang/OTP version (action) run: echo "Erlang/OTP ${{steps.setup-beam.outputs.otp-version}}" - name: Elixir version (action) run: echo "Elixir ${{steps.setup-beam.outputs.elixir-version}}" if: ${{matrix.pair.elixir-version}} - name: rebar3 version (action) run: echo "rebar3 ${{steps.setup-beam.outputs.rebar3-version}}" if: ${{matrix.pair.rebar3-version}} - name: mix version and help (CLI) run: | mix -v mix help local.rebar mix help local.hex if: ${{matrix.pair.elixir-version}} - name: Run Mix project tests run: | cd test-projects/mix mix deps.get mix test if: ${{matrix.pair.elixir-version}} - name: Run rebar3 project tests run: | cd test-projects/rebar3 rebar3 as test do xref,dialyzer,ct,cover if: ${{matrix.pair.rebar3-version}}