Skip to content

ci: add macos to CI #167

ci: add macos to CI

ci: add macos to CI #167

Workflow file for this run

name: Build and test all platforms
on:
pull_request:
push:
branches:
- main
paths-ignore:
- '**.md'
- .gitignore
workflow_dispatch:
jobs:
build-test:
name: ${{matrix.config.name}}
runs-on: ${{matrix.config.os}}
strategy:
fail-fast: false
matrix:
config:
- {
name: "Windows Latest MSVC Debug",
artifact: "windows-msvc-debug.txz",
os: windows-latest,
build_type: "Debug",
cc: "cl", cxx: "cl"
}
#- {
# name: "Windows Latest MSVC Release",
# artifact: "windows-msvc-release.txz",
# os: windows-latest,
# build_type: "Release",
# cc: "cl", cxx: "cl"
# }
- {
name: "Ubuntu Latest GCC Debug",
artifact: "linux-debug.txz",
os: ubuntu-latest,
build_type: "Debug",
cc: "gcc", cxx: "g++"
}
- {
name: "Ubuntu Latest GCC Releas",
artifact: "linux-release.txz",
os: ubuntu-latest,
build_type: "Release",
cc: "gcc", cxx: "g++"
}
- {
name: "macOS Latest Clang",
artifact: "macos.txz",
os: macos-latest,
build_type: "Release",
cc: "clang", cxx: "clang++"
}
steps:
- uses: actions/checkout@v4
- name: Configure CMake / Build
env:
CXX: ${{matrix.config.cxx}}
# Use bash so we can use the same syntax for environment variable
# access regardless of the host operating system
shell: bash
working-directory: ${{github.workspace}}
run: |
cmake -DCMAKE_BUILD_TYPE=${{matrix.config.build_type}} -B build/ src/
cmake --build build/ --config ${{matrix.config.build_type}}
- name: Test
shell: bash
working-directory: ${{github.workspace}}/build/test
run: ctest --output-on-failure -C ${{matrix.config.build_type}}
#- name: Pack
# working-directory: ${{github.workspace}}/build
# run: cmake -E tar -Jcfv ../${{matrix.config.artifact}} .
#- name: Upload
# uses: actions/upload-artifact@v4
# with:
# path: ./${{matrix.config.artifact}}
# name: ${{matrix.config.artifact}}