Mac and Linux CI #34
Workflow file for this run
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: mac-linux-ci | |
run-name: Mac and Linux CI | |
# In principle, we'd want to only run CI on meaningful changes; e.g., don't run | |
# CI if the only thing we change is `CHANGELOG.md` or if we push to a side | |
# branch. We could do this by filtering on branch (master) and on files | |
# (excluding **.md files). However, runs that get filtered never return | |
# successful status (blocking merging if the check is required). See: | |
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-including-paths | |
# There is a solution if this type of optimization is preferred. See: | |
# https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks#handling-skipped-but-required-checks | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
# This allows a subsequently queued workflow run to interrupt previous runs. | |
concurrency: | |
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' | |
cancel-in-progress: true | |
jobs: | |
# Note: The name in the web gui will automatically get the matrix variables | |
# appended (e.g., ubuntu (clang, Debug, ubuntu-20-04)), so no further | |
# naming is required. | |
ubuntu: | |
strategy: | |
matrix: | |
compiler: [gcc, clang] | |
build: [Release, Debug] | |
os: ['ubuntu-20.04'] | |
uses: ./.github/workflows/generic_ci.yml | |
with: | |
install-name: 'install_linux.sh' | |
os: ${{ matrix.os }} | |
compiler: ${{ matrix.compiler }} | |
build: ${{ matrix.build }} | |
mac: | |
strategy: | |
matrix: | |
compiler: [clang] | |
build: [Release, Debug] | |
os: ['macos-11'] | |
uses: ./.github/workflows/generic_ci.yml | |
with: | |
install-name: 'install_osx.sh' | |
os: ${{ matrix.os }} | |
compiler: ${{ matrix.compiler }} | |
build: ${{ matrix.build }} | |
# TODO: | |
# - Revisit coveralls. | |
# - Improve caching of dependencies. | |
# - Investigate rolling windows into this (instead of appveyor). | |