Fall 2024 Project 3 #1473
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: CMake Build Matrix | |
on: | |
push: | |
branches: [master] | |
pull_request: | |
branches: [master] | |
env: | |
BUILD_TYPE: Debug | |
jobs: | |
build: | |
name: ${{ matrix.config.name }} | |
runs-on: ${{ matrix.config.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- { | |
name: "Ubuntu 22.04 GCC", | |
os: "ubuntu-22.04", | |
cc: "/usr/bin/gcc", | |
cxx: "/usr/bin/g++", | |
format: "/usr/bin/clang-format-14", | |
tidy: "/usr/bin/clang-tidy-14", | |
} | |
- { | |
name: "Ubuntu 22.04 Clang", | |
os: "ubuntu-22.04", | |
cc: "/usr/bin/clang-14", | |
cxx: "/usr/bin/clang++-14", | |
format: "/usr/bin/clang-format-14", | |
tidy: "/usr/bin/clang-tidy-14", | |
} | |
- { | |
name: "macOS 12 (Monterey) AppleClang", | |
os: macos-12, | |
format: "/usr/local/opt/llvm@14/bin/clang-format", | |
tidy: "/usr/local/opt/llvm@14/bin/clang-tidy", | |
} | |
- { | |
name: "macOS 13 (Ventura) AppleClang", | |
os: macos-13, | |
format: "/usr/local/opt/llvm@14/bin/clang-format", | |
tidy: "/usr/local/opt/llvm@14/bin/clang-tidy", | |
} | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Print env | |
run: | | |
echo github.event.action: ${{ github.event.action }} | |
echo github.event_name: ${{ github.event_name }} | |
- name: Install Dependencies (Ubuntu) | |
if: runner.os == 'Linux' | |
working-directory: ${{github.workspace}} | |
run: sudo bash ./build_support/packages.sh -y | |
- name: Install Dependencies (OSX) | |
if: runner.os == 'macOS' | |
working-directory: ${{github.workspace}} | |
run: bash ./build_support/packages.sh -y | |
- name: Configure CMake | |
run: CC=${{matrix.config.cc}} CXX=${{matrix.config.cxx}} cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCLANG_FORMAT_BIN=${{matrix.config.format}} -DCLANG_TIDY_BIN=${{matrix.config.tidy}} | |
- name: Build | |
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} | |
- name: Check Format | |
working-directory: ${{github.workspace}}/build | |
run: make check-format | |
- name: Check Lint | |
working-directory: ${{github.workspace}}/build | |
run: make check-lint | |
- name: Check Clang Tidy | |
working-directory: ${{github.workspace}}/build | |
run: make check-clang-tidy | |
- name: Check Tests (Ubuntu) | |
if: runner.os == 'Linux' | |
working-directory: ${{github.workspace}}/build | |
run: make build-tests && make check-public-ci-tests | |
- name: Check Tests (OSX) | |
if: runner.os == 'macOS' | |
working-directory: ${{github.workspace}}/build | |
# Disable container overflow checks on OSX | |
run: make build-tests && make check-public-ci-tests |