blob: 5a0ebfa2b9bdad094ffccec78bde7dc5c5edaed9 [file]
name: ci
on:
workflow_dispatch:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
linux:
name: ${{matrix.os}}-${{matrix.otp_version}}-${{matrix.rebar}}
runs-on: ${{matrix.os}}
strategy:
fail-fast: false
matrix:
otp_version: [21,23,26,27,28,29]
os: [ubuntu-latest]
rebar: [rebar, rebar3]
container:
image: erlang:${{matrix.otp_version}}
steps:
- uses: actions/checkout@v6
- name: ${{matrix.rebar}} make check
run: |
make REBAR=${{matrix.rebar}} check
prop-tests:
name: proper-${{matrix.otp_version}}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
otp_version: [27, 28]
container:
image: erlang:${{matrix.otp_version}}
steps:
- uses: actions/checkout@v6
- name: rebar3 make check-with-proper
run: |
make REBAR=rebar3 check-with-proper
lcov-coverage:
name: lcov-coverage
runs-on: ubuntu-latest
container:
image: erlang:28
steps:
- uses: actions/checkout@v6
- name: install lcov
run: |
apt update
apt install -y --no-install-recommends --no-install-suggests lcov
make REBAR=rebar3 coverage
gcc-14:
name: gcc-14
runs-on: ubuntu-latest
container:
image: erlang:28
steps:
- uses: actions/checkout@v6
- name: install gcc-14
run: |
apt update
apt install -y --no-install-recommends --no-install-suggests gcc-14 g++-14
- name: make check
run: |
CC=gcc-14 CXX=g++-14 CFLAGS="-Wextra -Wno-unused-parameter" make check
clang-19:
name: clang-19
runs-on: ubuntu-latest
container:
image: erlang:28
steps:
- uses: actions/checkout@v6
- name: install clang
run: |
apt update
apt install -y --no-install-recommends --no-install-suggests clang-19
- name: make check
run: |
CC=clang-19 CXX=clang++-19 CFLAGS="-Wextra -Wno-unused-parameter" make check
macos:
name: macos
runs-on: ${{matrix.os}}
strategy:
fail-fast: false
matrix:
os: [macos-14, macos-15, macos-26, macos-26-intel, macos-latest]
steps:
- uses: actions/checkout@v6
- name: install erlang
run: |
brew install erlang
- name: install rebar3
run: |
brew install rebar3
- name: make check
run: |
make check
windows:
name: windows
runs-on: ${{matrix.os}}
strategy:
fail-fast: false
matrix:
os: [windows-2022, windows-2025]
steps:
- name: prevent git from messing up our json test files
run: |
git config --global core.autocrlf false
git config --global core.eol lf
- uses: actions/checkout@v6
- uses: erlef/setup-beam@v1
# New runner images report win25-vs2026 and
# setup-beam cannot map (yet), so override for now
env:
ImageOS: ${{ matrix.os == 'windows-2025' && 'win25' || 'win22' }}
with:
otp-version: '27'
rebar3-version: '3.23'
- name: make check
run: |
$path = vswhere -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -nologo -nocolor -property installationPath
if ($path) {
$path = join-path $path '\VC\Auxiliary\Build\vcvars64.bat'
if (test-path $path) {
cmd /s /c """$path"" $args && set" | where { $_ -match '(\w+)=(.*)' } | foreach {
$null = new-item -force -path "Env:\$($Matches[1])" -value $Matches[2]
}
}
}
make check