CI: Fix test for current Windows version #48
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: | |
push: | |
branches: | |
- master | |
- devel | |
pull_request: | |
branches: | |
- master | |
- devel | |
jobs: | |
linux: | |
name: Build (${{ matrix.os }}, OTP-${{ matrix.otp_version }}) | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
matrix: | |
otp_version: [20, 21, 22, 23, 24, 25, 26] | |
os: [ubuntu-latest] | |
container: | |
image: erlang:${{ matrix.otp_version }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Get branch name | |
id: branch-name | |
shell: bash | |
run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT | |
- name: Cache Dialyzer PLTs | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cache/rebar3/rebar3_*_plt | |
_build/default/rebar3_*_plt | |
key: ${{ runner.os }}-${{ steps.branch-name.outputs.branch }}-otp-${{ matrix.otp_version }}-plt-${{ hashFiles(format('{0}{1}', github.workspace, '/rebar.config')) }} | |
restore-keys: | | |
${{ runner.os }}-${{ steps.branch-name.outputs.branch }}-otp-${{ matrix.otp_version }}-plt- | |
- name: Cache Hex packages | |
uses: actions/cache@v3 | |
with: | |
path: ~/.cache/rebar3/hex/hexpm/packages | |
key: ${{ runner.os }}-${{ steps.branch-name.outputs.branch }}-otp-${{ matrix.otp_version }}-hex-${{ hashFiles(format('{0}{1}', github.workspace, '/rebar.lock')) }} | |
restore-keys: | | |
${{ runner.os }}-${{ steps.branch-name.outputs.branch }}-otp-${{ matrix.otp_version }}-hex- | |
- name: Compile | |
run: rebar3 compile | |
- name: EUnit tests | |
run: rebar3 eunit | |
- name: Dialyzer | |
run: rebar3 dialyzer | |
- name: Code coverage | |
run: rebar3 cover | |
- name: Generate coverage report | |
run: rebar3 covertool generate | |
- name: Upload coverage to Codecov | |
run: bash <(curl -s https://codecov.io/bash) -f _build/test/covertool/uef.covertool.xml | |
macos: | |
name: Build (${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
matrix: | |
os: [macos-latest] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Get branch name | |
id: branch-name | |
shell: bash | |
run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT | |
- name: Install Erlang | |
run: brew install erlang | |
- name: Install rebar3 | |
run: brew install rebar3 | |
- name: Cache Dialyzer PLTs | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cache/rebar3/rebar3_*_plt | |
_build/default/rebar3_*_plt | |
key: ${{ runner.os }}-${{ steps.branch-name.outputs.branch }}-plt-${{ hashFiles(format('{0}{1}', github.workspace, '/rebar.config')) }} | |
restore-keys: | | |
${{ runner.os }}-${{ steps.branch-name.outputs.branch }}-plt- | |
- name: Cache Hex packages | |
uses: actions/cache@v3 | |
with: | |
path: ~/.cache/rebar3/hex/hexpm/packages | |
key: ${{ runner.os }}-${{ steps.branch-name.outputs.branch }}-hex-${{ hashFiles(format('{0}{1}', github.workspace, '/rebar.lock')) }} | |
restore-keys: | | |
${{ runner.os }}-${{ steps.branch-name.outputs.branch }}-hex- | |
- name: Compile | |
run: rebar3 compile | |
- name: EUnit tests | |
run: rebar3 eunit | |
- name: Code coverage | |
run: rebar3 cover | |
windows: | |
name: Build (${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: powershell | |
strategy: | |
matrix: | |
os: [windows-latest] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Get branch name | |
id: branch-name | |
shell: bash | |
run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT | |
- name: Install Erlang | |
run: choco install erlang -y | |
- name: Install rebar3 | |
run: | | |
mkdir ~/rebar3-dl | |
Invoke-WebRequest -Uri https://github.com/erlang/rebar3/releases/download/3.22.1/rebar3 -OutFile ~/rebar3-dl/rebar3 | |
- name: Cache Dialyzer PLTs | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cache/rebar3/rebar3_*_plt | |
_build/default/rebar3_*_plt | |
key: ${{ runner.os }}-${{ steps.branch-name.outputs.branch }}-plt-${{ hashFiles(format('{0}{1}', github.workspace, '/rebar.config')) }} | |
restore-keys: | | |
${{ runner.os }}-${{ steps.branch-name.outputs.branch }}-plt- | |
- name: Cache Hex packages | |
uses: actions/cache@v3 | |
with: | |
path: ~/.cache/rebar3/hex/hexpm/packages | |
key: ${{ runner.os }}-${{ steps.branch-name.outputs.branch }}-hex-${{ hashFiles(format('{0}{1}', github.workspace, '/rebar.lock')) }} | |
restore-keys: | | |
${{ runner.os }}-${{ steps.branch-name.outputs.branch }}-hex- | |
- name: Compile | |
shell: bash | |
run: ~/rebar3-dl/rebar3 compile | |
- name: EUnit tests | |
shell: bash | |
run: ~/rebar3-dl/rebar3 eunit | |
- name: Dialyzer | |
shell: bash | |
run: ~/rebar3-dl/rebar3 dialyzer | |
- name: Code coverage | |
shell: bash | |
run: ~/rebar3-dl/rebar3 cover |