Skip to content

Add build tests

Add build tests #7

Workflow file for this run

# SPDX-FileCopyrightText: 2025 SeisSol Group
#
# SPDX-License-Identifier: BSD-3-Clause
# SPDX-LicenseComments: Full text under /LICENSE and /LICENSES/
#
# SPDX-FileContributor: Author lists in /AUTHORS and /CITATION.cff
name: build-device
on:
- push
jobs:
device-build-test:
name: device-build-test
runs-on: ${{ matrix.setup.runner }}
container: ${{ matrix.setup.container }}
strategy:
fail-fast: false
matrix:
arch:
- snb # <-- needed for the self-hosted CI node for now :/
build_type:
- Release
- Debug
setup:
- arch: sm_60
backend: cuda
cc: gcc-13
cxx: g++-13
fc: gfortran-13
container: seissol/gha-gpu-nv:davschneller-gpu-image
runner: ubuntu-24.04
pythonbreak: true
- arch: sm_60
backend: acpp
cc: gcc-13
cxx: g++-13
fc: gfortran-13
container: seissol/gha-gpu-nv:davschneller-gpu-image
runner: ubuntu-24.04
pythonbreak: true
- arch: sm_60
backend: cuda
cc: clang-18
cxx: clang++-18
fc: gfortran-13 # TODO?
container: seissol/gha-gpu-nv:davschneller-gpu-image
runner: ubuntu-24.04
pythonbreak: true
# TODO: needs a working GPU runner
#- arch: sm_60
# backend: cuda
# cc: nvc
# cxx: nvc++
# fc: nvfortran
# container: seissol/gha-gpu-nvhpc:davschneller-gpu-image
# runner: sccs-ci-nv-sm60
# pythonbreak: true
- arch: gfx906
backend: hip
cc: gcc-13
cxx: g++-13
fc: gfortran-13
container: seissol/gha-gpu-amd:davschneller-gpu-image
runner: ubuntu-24.04
pythonbreak: true
- arch: gfx906
backend: acpp
cc: gcc-13
cxx: g++-13
fc: gfortran-13
container: seissol/gha-gpu-amd:davschneller-gpu-image
runner: ubuntu-24.04
pythonbreak: true
- arch: gfx906
backend: hip
cc: clang-18
cxx: clang++-18
fc: gfortran-13 # TODO?
container: seissol/gha-gpu-amd:davschneller-gpu-image
runner: ubuntu-24.04
pythonbreak: true
- arch: skl
backend: oneapi
cc: icx
cxx: icpx
fc: ifx
container: seissol/gha-gpu-intel:davschneller-gpu-image
runner: ubuntu-24.04
pythonbreak: false
steps:
- name: install-gtest
run: |
git clone --depth 1 --branch release-1.11.0 https://github.com/google/googletest
mkdir -p googletest/build && cd googletest/build
cmake .. -GNinja -DBUILD_GTEST=ON -DBUILD_GMOCK=ON -Dgtest_disable_pthreads=ON -DBUILD_SHARED_LIBS=ON
ninja install
cd ../..
- name: checkout-device
uses: actions/checkout@v4
with:
submodules: recursive
- id: build
name: build-device
run: |
cd tests
mkdir build && cd build
# TODO: change to `-Wall -Werror` at some point
EXTRA_FLAGS="-Wall"
export CFLAGS="${EXTRA_FLAGS} ${CFLAGS}"
export CXXFLAGS="${EXTRA_FLAGS} ${CXXFLAGS}"
export FFLAGS="${EXTRA_FLAGS} ${FFLAGS}"
export CC=${{matrix.setup.cc}}
export CXX=${{matrix.setup.cxx}}
export FC=${{matrix.setup.fc}}
cmake .. -GNinja -DDEVICE_BACKEND=${{matrix.setup.backend}} -DSM=${{matrix.setup.arch}} -DWITH_MPI=OFF -DWITH_TESTS=ON
ninja