Skip to content

Expire dedups on tick #1846

Expire dedups on tick

Expire dedups on tick #1846

Workflow file for this run

name: Test
on:
- pull_request
- push
jobs:
Test:
name: Test on Erlang/OTP ${{ matrix.otp_version }} and ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
otp_version: [25, 26, 27]
os: [ubuntu-latest, windows-latest]
exclude:
# Erlang 26.2.5.2 Windows installer fails to work in CI.
- otp_version: 26
os: windows-latest
env:
RUN_DIALYZER_ON_OTP_RELEASE: 27
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
id: install-erlang
with:
otp-version: ${{matrix.otp_version}}
rebar3-version: '3.23.0'
- name: Restore Dialyzer PLT files from cache
uses: actions/cache@v4
if: ${{ matrix.otp_version == env.RUN_DIALYZER_ON_OTP_RELEASE && matrix.os == 'ubuntu-latest' }}
with:
path: _build/*/rebar3_*_plt
key: dialyzer-plt-cache-${{ steps.install-erlang.outputs.otp-version }}-${{ runner.os }}-${{ hashFiles('rebar.config*') }}-v1
- name: Compile
run: rebar3 compile
- name: Xref
run: rebar3 xref
- name: EUnit (unit tests)
run: rebar3 eunit --verbose --cover
- name: PropEr (property tests)
run: rebar3 proper --verbose --cover
- name: Common test (integration tests)
run: rebar3 ct --verbose --cover --sname ct
- name: Dialyzer
if: ${{ matrix.otp_version == env.RUN_DIALYZER_ON_OTP_RELEASE && matrix.os == 'ubuntu-latest' }}
run: rebar3 clean && rebar3 as test dialyzer
- name: Generate code coverage report
run: rebar3 as test covertool generate
- name: Upload code coverage to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: _build/test/covertool/khepri.covertool.xml
flags: erlang-${{ matrix.otp_version }},os-${{ matrix.os }}
name: Erlang/OTP ${{ matrix.otp_version }} on ${{ matrix.os }}
verbose: true # optional (default = false)