Skip to content

build-test

build-test #453

Workflow file for this run

name: build-test
on:
push:
schedule:
- cron: '12 14 * * 3'
jobs:
buildTest:
runs-on: ubuntu-latest
defaults:
run:
shell: bash
strategy:
matrix:
build_type: [Release, RelWithDebInfo]
memory_test: [ON, OFF]
compiler: [g++]
language: ['cpp']
exclude:
- build_type: Release
memory_test: ON
- build_type: RelWithDebInfo
memory_test: OFF
steps:
- name: Update packages
run: sudo apt-get update
- name: Install mpi
run: sudo apt-get install -yq mpich libmpich-dev
- name: Install Valgrind
run: sudo apt-get install -yq valgrind
# Build Kokkos
- name: Cache Kokkos Build
uses: actions/cache@v3
id: build-kokkos
with:
key: build-kokkos
path: ${{ runner.temp }}/build-kokkos
- name: Kokkos Checkout repo
if: ${{ steps.build-kokkos.outputs.cache-hit != 'true' }}
uses: actions/checkout@v3
with:
repository: kokkos/kokkos
ref: 4.1.00
path: kokkos
- name: Kokkos Create Directory
if: ${{ steps.build-kokkos.outputs.cache-hit != 'true' }}
run: cmake -E make_directory ${{ runner.temp }}/build-kokkos
- name: Kokkos Configure CMake
if: ${{ steps.build-kokkos.outputs.cache-hit != 'true' }}
run: cmake -S $GITHUB_WORKSPACE/kokkos -B ${{ runner.temp }}/build-kokkos
-DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/build-kokkos/install
-DCMAKE_CXX_COMPILER=${{ matrix.compiler }}
-DKokkos_ENABLE_SERIAL=ON
-DKokkos_ENABLE_OPENMP=off
-DKokkos_ENABLE_CUDA=off
-DKokkos_ENABLE_CUDA_LAMBDA=off
-DKokkos_ENABLE_DEBUG=on
- name: Kokkos Build
if: ${{ steps.build-kokkos.outputs.cache-hit != 'true' }}
run: cmake --build ${{ runner.temp }}/build-kokkos -j8 --target install
# Build EnGPar
- name: Cache Engpar Build
uses: actions/cache@v3
id: build-engpar
with:
key: build-engpar
path: ${{ runner.temp }}/build-engpar
- name: EnGPar Checkout repo
if: ${{ steps.build-engpar.outputs.cache-hit != 'true' }}
uses: actions/checkout@v3
with:
repository: SCOREC/EnGPar
path: engpar
- name: EnGPar Create Directory
if: ${{ steps.build-engpar.outputs.cache-hit != 'true' }}
run: cmake -E make_directory ${{ runner.temp }}/build-engpar
- name: EnGPar Configure CMake
if: ${{ steps.build-engpar.outputs.cache-hit != 'true' }}
run: cmake -S $GITHUB_WORKSPACE/engpar -B ${{ runner.temp }}/build-engpar
-DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/build-engpar/install
-DCMAKE_C_COMPILER="mpicc"
-DCMAKE_CXX_COMPILER="mpicxx"
-DCMAKE_CXX_FLAGS="-std=c++11"
-DENABLE_PARMETIS=OFF
-DENABLE_PUMI=OFF
-DIS_TESTING=OFF
- name: EnGPar Build
if: ${{ steps.build-engpar.outputs.cache-hit != 'true' }}
run: cmake --build ${{ runner.temp }}/build-engpar -j8 --target install
# Build Omega_h
- name: Cache Omega_h Build
uses: actions/cache@v3
id: build-omega_h
with:
key: build-omega_h
path: ${{ runner.temp }}/build-omega_h
- name: Omega_h Checkout repo
if: ${{ steps.build-omega_h.outputs.cache-hit != 'true' }}
uses: actions/checkout@v3
with:
repository: SCOREC/omega_h
ref: scorec-v10.8.0
path: omega_h
- name: Omega_h Create Directory
if: ${{ steps.build-omega_h.outputs.cache-hit != 'true' }}
run: cmake -E make_directory ${{ runner.temp }}/build-omega_h
- name: Omega_h Configure CMake
if: ${{ steps.build-omega_h.outputs.cache-hit != 'true' }}
run: cmake -S $GITHUB_WORKSPACE/omega_h -B ${{ runner.temp }}/build-omega_h
-DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/build-omega_h/install
-DCMAKE_PREFIX_PATH=${{ runner.temp }}/build-kokkos/install/lib/cmake
-DBUILD_SHARED_LIBS=OFF
-DOmega_h_USE_Kokkos=ON
-DOmega_h_USE_CUDA=off
-DOmega_h_USE_MPI=on
-DCMAKE_BUILD_TYPE=Release
-DBUILD_TESTING=on
-DCMAKE_CXX_COMPILER="mpicxx"
-DCMAKE_C_COMPILER="mpicc"
- name: Omega_h Build
if: ${{ steps.build-omega_h.outputs.cache-hit != 'true' }}
run: cmake --build ${{ runner.temp }}/build-omega_h -j8 --target install
# Build Cabana
- name: Cache Cabana Build
uses: actions/cache@v3
id: build-cabana
with:
key: build-cabana
path: ${{ runner.temp }}/build-cabana
- name: Cabana Checkout repo
if: ${{ steps.build-cabana.outputs.cache-hit != 'true' }}
uses: actions/checkout@v3
with:
repository: ECP-copa/cabana
path: cabana
- name: Cabana Create Directory
if: ${{ steps.build-cabana.outputs.cache-hit != 'true' }}
run: cmake -E make_directory ${{ runner.temp }}/build-cabana
- name: Cabana Configure CMake
if: ${{ steps.build-cabana.outputs.cache-hit != 'true' }}
run: cmake -S $GITHUB_WORKSPACE/cabana -B ${{ runner.temp }}/build-cabana
-DCMAKE_BUILD_TYPE="Release"
-DCMAKE_DISABLE_FIND_PACKAGE_HDF5=ON
-DCMAKE_CXX_COMPILER=${{ matrix.compiler }}
-DCMAKE_PREFIX_PATH=${{ runner.temp }}/build-kokkos/install/lib/cmake
-DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/build-cabana/install
- name: Cabana Build
if: ${{ steps.build-cabana.outputs.cache-hit != 'true' }}
run: cmake --build ${{ runner.temp }}/build-cabana -j8 --target install
# Build PUMI-PIC
- name: PUMI-PIC Checkout repo
uses: actions/checkout@v3
with:
submodules: recursive
repository: SCOREC/pumi-pic
path: pumi-pic
- name: PUMI-PIC Create Directory
run: cmake -E make_directory ${{ runner.temp }}/build-pumi-pic
- name: PUMI-PIC Configure CMake
run: cmake -S $GITHUB_WORKSPACE/pumi-pic -B ${{ runner.temp }}/build-pumi-pic
-DCMAKE_CXX_COMPILER=mpicxx
-DIS_TESTING=ON
-DPS_IS_TESTING=ON
-DPP_ENABLE_MEMCHECK=${{matrix.memory_test}}
-DCMAKE_BUILD_TYPE=${{matrix.build_type}}
-DTEST_DATA_DIR=$GITHUB_WORKSPACE/pumi-pic/pumipic-data
-DOmega_h_PREFIX=${{ runner.temp }}/build-omega_h/install
-DKokkos_PREFIX=${{ runner.temp }}/build-kokkos/install
-DEnGPar_PREFIX=${{ runner.temp }}/build-engpar/install
-DCabana_PREFIX=${{ runner.temp }}/build-cabana/install
-DENABLE_CABANA=on
-DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/build-pumi-pic/install
-DCMAKE_PREFIX_PATH=${{ runner.temp }}/build-kokkos/install/lib/cmake
- name: PUMI-PIC Build
run: cmake --build ${{ runner.temp }}/build-pumi-pic -j8 --target install
- name: PUMI-PIC Test
if: ${{matrix.memory_test == 'OFF'}}
run: ctest --test-dir ${{ runner.temp }}/build-pumi-pic
- name: PUMI-PIC Test
if: ${{matrix.memory_test == 'ON'}}
run: ctest -E "medium|large|120" --test-dir ${{ runner.temp }}/build-pumi-pic
- name: PUMI-PIC Print
if: always()
run: cat ${{ runner.temp }}/build-pumi-pic/Testing/Temporary/LastTest.log