blob: 7b9616e15179f6d55652fe6a72a0739f3fe5b403 (
plain) (
tree)
|
|
name: Reusable Unix jobs
## @todo Self-hosted runners for
## - archlinux
## - alpine
## - debian
## - freebsd
on:
workflow_call:
inputs:
latest:
required: true
type: string
erlang:
required: true
type: string
os:
required: true
type: string
env:
CI_ERLANG_MK: 1
AUTO_CI_MASTER: weekly
jobs:
build-erlang:
name: Build Erlang ${{ inputs.erlang }} on ${{ inputs.os }}
runs-on: ${{ inputs.os }}
steps:
- name: Checkout repository
uses: actions/[email protected]
- name: Manage CI cache
id: cache
uses: actions/[email protected]
with:
path: |
~/erlang/
key: ${{ runner.os }}-${{ runner.arch }}-Erlang-${{ inputs.erlang }}
- name: Run ci-prepare
if: steps.cache.outputs.cache-hit != 'true'
run: make -k ci-prepare CI_OTP=${{ inputs.erlang }}
test:
name: Run tests using ${{ inputs.erlang }} on ${{ inputs.os }}
needs: build-erlang
runs-on: ${{ inputs.os }}
steps:
- name: Checkout repository
uses: actions/[email protected]
- name: Restore CI cache
uses: actions/cache/[email protected]
with:
path: |
~/erlang/
key: ${{ runner.os }}-${{ runner.arch }}-Erlang-${{ inputs.erlang }}
- name: Install required software
if: runner.os == 'macOS'
run: brew install coreutils
- name: Run tests
run: make -k ci-${{ inputs.erlang }}
- name: Upload logs
uses: actions/[email protected]
if: always()
with:
name: Common Test logs (${{ inputs.erlang }} ${{ runner.os }})
path: |
logs/
!logs/**/log_private
dialyze:
name: Run Dialyzer using ${{ inputs.erlang }}
needs: build-erlang
runs-on: ${{ inputs.os }}
if: inputs.erlang == inputs.latest && inputs.os == 'ubuntu-latest'
continue-on-error: true
steps:
- name: Checkout repository
uses: actions/[email protected]
- name: Restore CI cache
uses: actions/cache/[email protected]
with:
path: |
~/erlang/
key: ${{ runner.os }}-${{ runner.arch }}-Erlang-${{ inputs.latest }}
- name: Run Dialyzer
run: make dialyze LATEST_ERLANG_OTP=1
|