Skip to content

Run Elixir tests on CI #13

Run Elixir tests on CI

Run Elixir tests on CI #13

Workflow file for this run

---
name: Tests and Checks
on:
push:
branches:
- master
- develop
pull_request:
branches:
- master
- develop
workflow_dispatch:
jobs:
ci:
name: >
Run checks and tests over ${{matrix.otp_vsn}} and ${{matrix.os}}
runs-on: ${{matrix.os}}
strategy:
matrix:
otp_vsn: ['22.3', '23.3', '24.3', '25.3', '26.0', '26.1']
os: ['ubuntu-20.04']
steps:
- name: Checkout
uses: actions/checkout@v3
- id: otp-version-to-rebar3-version
name: "Read #{OTP version => rebar3 version} map"
uses: juliangruber/read-file-action@v1
with:
path: ./.github/workflows/otp_version_to_rebar3_version.json
- id: otp-version-to-elixir-version
name: "Read #{OTP version => Elixir version} map"
uses: juliangruber/read-file-action@v1
with:
path: ./.github/workflows/otp_version_to_elixir_version.json
- id: setup-beam
name: Setup BEAM
uses: erlef/setup-beam@v1
with:
otp-version: ${{matrix.otp_vsn}}
# about rebar3 and elixir versions: https://stackoverflow.com/a/64405821
rebar3-version: |
${{ fromJson(steps.otp-version-to-rebar3-version.outputs.content)[matrix.otp_vsn] }}
elixir-version: |
${{ fromJson(steps.otp-version-to-elixir-version.outputs.content)[matrix.otp_vsn] }}
env:
GITHUB_TOKEN: ${{ github.token }}
- name: Set dynamic env (1)
run: |
echo "prev_github_run_number=$((${{github.run_number}} - 1))" >> "$GITHUB_ENV"
echo "build_cache_prefix=_build-cache-for-os-${{runner.os}}-otp-${{matrix.otp_vsn}}-rebar3-${{steps.setup-beam.outputs.rebar3-version}}" >> "$GITHUB_ENV"
- name: Set dynamic env (2)
run: |
echo "build_cache_prefix_with_hash=${{env.build_cache_prefix}}-hash-${{hashFiles('rebar.lock')}}" >> "$GITHUB_ENV"
- name: Restore cached build artifacts
uses: actions/cache/restore@v3
with:
path: _build
key: ${{env.build_cache_prefix_with_hash}}-${{env.prev_github_run_number}}
restore-keys: |-
${{env.build_cache_prefix_with_hash}}-
${{env.build_cache_prefix}}-
- name: Run Tests
run: make test
- name: Run Tests (ranch 2.x)
run: REBAR_TEST_PROFILE=ranch2,test make test
- name: Run Checks
run: make check
- name: Save build artifacts to cache
if: always()
uses: actions/cache/save@v3
with:
path: _build
key: ${{env.build_cache_prefix_with_hash}}-${{github.run_number}}