Skip to content

Workflow file for this run

---
name: Erlang CI
"on": [push, workflow_dispatch]
jobs:
vsns:
runs-on: ubuntu-22.04
outputs:
# renovate datasource: github-runners, depName: ubuntu
ubuntu: 20.04
# renovate datasource: github-runners, depName: windows
windows: 2019
# renovate datasource: github-runners, depName: macos
macos: 12
# renovate datasource: github-tags, depName: erlang/rebar3
rebar3: 3.22.1
steps:
- run: versions set!
ci:
name: Erlang CI
needs: [vsns]
strategy:
fail-fast: false
matrix:
include:
- os-base: ubuntu
os-vsn: ${{ needs.vsns.outputs.ubuntu }}
otp-version: 25
rebar3-version: ${{ needs.vsns.outputs.rebar3 }}
- os-base: ubuntu
os-vsn: ${{ needs.vsns.outputs.ubuntu }}
otp-version: 26
rebar3-version: ${{ needs.vsns.outputs.rebar3 }}
- os-base: windows
os-vsn: ${{ needs.vsns.outputs.windows }}
otp-version: 25
rebar3-version: ${{ needs.vsns.outputs.rebar3 }}
- os-base: windows
os-vsn: ${{ needs.vsns.outputs.windows }}
otp-version: 26
rebar3-version: ${{ needs.vsns.outputs.rebar3 }}
# macos, for now, is considered best-effort
- os-base: macos
os-vsn: ${{ needs.vsns.outputs.macos }}
otp-version: 25
rebar3-version: ${{ needs.vsns.outputs.rebar3 }}
- os-base: macos # macos, for now, is considered best-effort
os-vsn: ${{ needs.vsns.outputs.macos }}
otp-version: 26
rebar3-version: ${{ needs.vsns.outputs.rebar3 }}
runs-on: ${{matrix.os-base}}-${{matrix.os-vsn}}
steps:
- uses: actions/[email protected]
- uses: erlef/[email protected]
id: setup-beam
with:
otp-version: ${{matrix.otp-version}}
rebar3-version: ${{matrix.rebar3-version}}
if: ${{matrix.os-base != 'macos'}}
- run: |
brew install erlang@${{matrix.otp-version}}
brew install rebar3
if: ${{matrix.os-base == 'macos'}}
- name: Restore _build
uses: actions/[email protected]
with:
path: _build
key: "_build-cache-for\
-os-${{runner.os}}\
-otp-${{steps.setup-beam.outputs.otp-version}}\
-rebar3-${{steps.setup-beam.outputs.rebar3-version}}\
-hash-${{hashFiles('rebar.lock')}}"
if: ${{matrix.os-base != 'macos'}}
- name: Restore rebar3's cache
uses: actions/[email protected]
with:
path: ~/.cache/rebar3
key: "rebar3-cache-for\
-os-${{runner.os}}\
-otp-${{steps.setup-beam.outputs.otp-version}}\
-rebar3-${{steps.setup-beam.outputs.rebar3-version}}\
-hash-${{hashFiles('rebar.lock')}}"
if: ${{matrix.os-base != 'macos'}}
- name: Check file format
run: rebar3 fmt --check
if: ${{matrix.os-base != 'windows'}}
- name: Continuous Integration
run: rebar3 as test ci