Add an SPDX header showing original repository location #71
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: Build and test QDLDL | |
on: [push, pull_request] | |
env: | |
# The CMake build type | |
BUILD_TYPE: Release | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
include: | |
- os: ubuntu-latest | |
coverage: ON | |
- os: macos-latest | |
coverage: OFF | |
- os: windows-latest | |
coverage: OFF | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
- name: Setup Environment | |
run: cmake -E make_directory ${{ runner.workspace }}/build | |
- name: Configure | |
shell: bash | |
working-directory: ${{ runner.workspace }}/build | |
run: cmake --warn-uninitialized -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DQDLDL_UNITTESTS=ON -DCOVERAGE=${{ matrix.coverage }} $GITHUB_WORKSPACE | |
- name: Build | |
shell: bash | |
working-directory: ${{ runner.workspace }}/build | |
run: cmake --build . --config $BUILD_TYPE | |
- name: Run tests | |
shell: bash | |
working-directory: ${{ runner.workspace }}/build | |
run: ctest -C $BUILD_TYPE | |
# Only parse and upload coverage if it was generated | |
- name: Process coverage | |
if: ${{ matrix.coverage == 'ON' }} | |
uses: imciner2/run-lcov@v1 | |
with: | |
input_directory: '${{ runner.workspace }}/build' | |
exclude: '"$GITHUB_WORKSPACE/tests/*" "$GITHUB_WORKSPACE/examples/*" "/usr/include/x86_64-linux-gnu/bits/*"' | |
output_file: '${{ runner.workspace }}/build/coverage.info' | |
- name: Upload coverage | |
if: ${{ matrix.coverage == 'ON' }} | |
uses: coverallsapp/github-action@master | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
path-to-lcov: '${{ runner.workspace }}/build/coverage.info' | |
test_configs: | |
strategy: | |
fail-fast: false | |
matrix: | |
float: [ON, OFF] | |
long: [ON, OFF] | |
static: [ON, OFF] | |
shared: [ON, OFF] | |
# Only test the build configs on Linux | |
runs-on: ubuntu-latest | |
name: Config - FLOAT=${{ matrix.float }}, LONG=${{ matrix.long }}, SHARED=${{ matrix.shared }}, STATIC=${{ matrix.static }} | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
- name: Setup Environment | |
run: cmake -E make_directory ${{ runner.workspace }}/build | |
- name: Configure | |
shell: bash | |
working-directory: ${{ runner.workspace }}/build | |
run: cmake --warn-uninitialized -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DQDLDL_BUILD_SHARED_LIB=${{ matrix.shared }} -DQDLDL_BUILD_STATIC_LIB=${{ matrix.static }} -DQDLDL_FLOAT=${{ matrix.float }} -DQDLDL_LONG=${{ matrix.long }} -DQDLDL_UNITTESTS=ON -DCOVERAGE=OFF $GITHUB_WORKSPACE | |
- name: Build | |
shell: bash | |
working-directory: ${{ runner.workspace }}/build | |
run: cmake --build . --config $BUILD_TYPE | |
# The test suite requires the static library for linkage | |
- name: Run tests | |
if: ${{ matrix.static == 'ON' }} | |
shell: bash | |
working-directory: ${{ runner.workspace }}/build | |
run: ctest -C $BUILD_TYPE |