Skip to content

#707: create a kokkos-only pipeline #8

#707: create a kokkos-only pipeline

#707: create a kokkos-only pipeline #8

Workflow file for this run

name: github-Linux-kokkos
on:
pull_request:
types: [ opened, reopened, synchronize ]
branches: [main, develop]
paths-ignore:
- 'logos/**'
- 'helper_scripts/**'
- 'docker_scripts/**'
- 'docs/**'
- '**/*.md'
push: # for direct quick fixes
branches:
- 'main'
- 'develop'
paths-ignore:
- 'logos/**'
- 'helper_scripts/**'
- 'docker_scripts/**'
- 'docs/**'
- '**/*.md'
concurrency:
group: ${{ github.event_name }}-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{github.event_name == 'pull_request'}}
jobs:
CI-kokkos:
name: Kokkos
continue-on-error: false
strategy:
fail-fast: false
matrix:
image:
- ubuntu-gnu-kokkos-cpu-serial-11
- ubuntu-gnu-kokkos-cpu-openmp-11
build_type:
- Release
- Debug
runs-on: ubuntu-latest
container:
image: ghcr.io/pressio/${{ matrix.image }}
credentials:
username: ${{ github.actor }}
password: ${{ secrets.github_token }}
env:
num_cpus: 4
PRESSIO_INSTALL_DIR: ${{ github.workspace }}/pressio_install
steps:
- uses: actions/checkout@v4
- name: Checkout pressio examples
uses: actions/checkout@v4
with:
repository: Pressio/pressio-templates-usage-as-library
path: examples
ref: add-compatibility-with-pressio-ops
- name: Checkout pressio-ops
uses: actions/checkout@v4
with:
repository: Pressio/pressio-ops
path: pressio-ops
ref: develop
- name: Configure
run: |
cmake -B builddir \
-D CMAKE_BUILD_TYPE:STRING=${{ matrix.build_type }} \
-D CMAKE_VERBOSE_MAKEFILE:BOOL=ON \
-D CMAKE_C_COMPILER:FILEPATH=$CC \
-D CMAKE_CXX_COMPILER:FILEPATH=$CXX \
-D PRESSIO_ENABLE_TESTS:BOOL=ON \
-D PRESSIO_ENABLE_TPL_EIGEN:BOOL=OFF \
-D PRESSIO_ENABLE_TPL_MPI:BOOL=OFF \
-D PRESSIO_ENABLE_TPL_KOKKOS:BOOL=ON \
-D Kokkos_ROOT=/kokkos/install \
-D KokkosKernels_ROOT=/kokkos-kernels/install \
-D PRESSIO_ENABLE_DEBUG_PRINT=ON \
-D CMAKE_INSTALL_PREFIX:PATH=${PRESSIO_INSTALL_DIR} \
-D CMAKE_CXX_FLAGS='-Wall -Werror'
- name: Build
run: cmake --build builddir -j $num_cpus --target install
- name: Example - include only
working-directory: examples
run: |
$CXX \
--std=c++17 \
-DPRESSIO_ENABLE_TPL_KOKKOS \
-I/kokkos/install/include \
-I/kokkos-kernels/install/include \
-I${GITHUB_WORKSPACE}/pressio-ops/include \
-I${PRESSIO_INSTALL_DIR}/include \
-c main.cpp
- name: Example - include only with embedded definitions
working-directory: examples
run: |
$CXX \
--std=c++17 \
-DPRESSIO_ENABLE_TPL_KOKKOS \
-I/kokkos/install/include \
-I/kokkos-kernels/install/include \
-I${GITHUB_WORKSPACE}/pressio-ops/include \
-I${PRESSIO_INSTALL_DIR}/include \
-c main_with_defines.cpp
- name: Test
working-directory: builddir
run: |
export LD_LIBRARY_PATH=/kokkos/install/lib:/kokkos-kernels/install/include
ctest -j $num_cpus --output-on-failure