Skip to content

Commit

Permalink
Add first GitHub Actions workflow
Browse files Browse the repository at this point in the history
This resembles what we had in Travis, albeit simpler. We can add more
cases if we want to in the future though.

Signed-off-by: Rodrigo Tobar <[email protected]>
  • Loading branch information
rtobar committed Jul 10, 2024
1 parent 9e3d96b commit a275919
Showing 1 changed file with 66 additions and 0 deletions.
66 changes: 66 additions & 0 deletions .github/workflows/build-and-test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: Build and run tests
on: [push, pull_request]

env:
CI_BUILD_DIR: build
TEST_INPUTS_DIR: inputs
TEST_OUTPUTS_DIR: outputs
TEST_CONFIG_FILE: ci-tests.cfg
TEST_SIM_NAME: mini-SURFS
TEST_FIXED_SEED: 123456

jobs:
build_and_test:
name: Build and test libprofit. OS=${{ matrix.os }}
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 gsl fftw
- name: Configure
env:
SHARK_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 \
-DSHARK_NO_OPENMP=$SHARK_NO_OPENMP \
-DSHARK_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

0 comments on commit a275919

Please sign in to comment.