Skip to content

Add first GitHub Actions workflow #5

Add first GitHub Actions workflow

Add first GitHub Actions workflow #5

Workflow file for this run

name: Build and run tests
on: [push, pull_request]
env:
CI_BUILD_DIR: build
CMAKE_PREFIX_PATH: 3rdparty/cxxtest
jobs:
build_and_test:
name: Build and test libprofit. OS=${{ matrix.os }}, build=${{ matrix.poor_build && "poor" || "rich" }}

Check failure on line 10 in .github/workflows/build-and-test.yaml

View workflow run for this annotation

GitHub Actions / Build and run tests

Invalid workflow file

The workflow is not valid. .github/workflows/build-and-test.yaml (Line: 10, Col: 11): Unexpected symbol: '"poor"'. Located at position 22 within expression: matrix.poor_build && "poor" || "rich"
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-latest
CXX: g++
omp: true
- os: ubuntu-latest
CXX: g++
poor_build: true
- os: ubuntu-latest
CXX: clang++
omp: true
- os: macos-latest
CXX: clang++
omp: false
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install system dependencies (Linux)
env:
REQUIRED_DEPS: ninja-build libgsl-dev
OPTIONAL_DEPS: ${{ !matrix.poor_build && 'libfftw3-dev opencl-headers' || '' }}
if: ${{ matrix.os == 'ubuntu-latest' }}
run: |
sudo apt install $REQUIRED_DEPS $OPTIONAL_DEPS
- name: Install system dependencies (MacOS)
if: ${{ matrix.os == 'macos-latest' }}
run: |
brew install ninja gsl fftw
- name: Configure
env:
LIBPROFIT_NO_OPENMP: ${{ matrix.omp && 'OFF' || 'ON' }}
CMAKE_EXTRA_FLAGS: ${{ matrix.poor_build && '-DLIBPROFIT_NO_OPENCL=ON -DLIBPROFIT_NO_OPENMP=ON -DLIBPROFIT_NO_FFTW=ON -DLIBPROFIT_NO_SIMD=ON' || '' }}
run: |
cmake -B ${CI_BUILD_DIR} -G Ninja \
-DLIBPROFIT_NO_OPENMP=$LIBPROFIT_NO_OPENMP \
-DLIBPROFIT_TEST=ON \
$CMAKE_EXTRA_FLAGS
- name: Build
run: cmake --build ${CI_BUILD_DIR}
- name: Run unit tests
run: |
cd ${CI_BUILD_DIR}
ctest --output-on-failure