Skip to content

[PR3] Associated extra debugging tools for batch query API added in #195 #487

[PR3] Associated extra debugging tools for batch query API added in #195

[PR3] Associated extra debugging tools for batch query API added in #195 #487

Workflow file for this run

name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
jobs:
main:
name: |
libMesh=${{ matrix.libmesh }};MOAB=${{ matrix.moab }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
libmesh: [true, false]
moab: [true, false]
exclude:
- moab: false
libmesh: false
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Apt dependencies
shell: bash
run: |
sudo apt -y update
sudo apt install -y libgcc-9-dev \
libstdc++-9-dev \
libembree-dev \
libnetcdf-dev \
libhdf5-dev \
libeigen3-dev \
cmake
- name: Update CMake
uses: ssrobins/install-cmake@v1
with:
version: 3.24.3
cache: true
- name: GPRT Apt Dependencies
shell: bash
run: |
sudo apt install -y \
libpthread-stubs0-dev \
libx11-xcb-dev \
xorg-dev \
libxinerama-dev \
libglu1-mesa-dev \
freeglut3-dev \
mesa-common-dev \
libglfw3
- name: Prepare Vulkan SDK
uses: humbletim/[email protected]
with:
version: 1.4.309.0
cache: true
- name: MOAB Clone
if: ${{ matrix.moab }}
shell: bash
run: |
cd ~
git clone https://bitbucket.org/fathomteam/moab.git
cd moab
git checkout 5.3.1
- name: libMesh Clone
if: ${{ matrix.libmesh }}
shell: bash
run: |
cd ~
git clone https://github.com/libMesh/libmesh.git
cd libmesh
git checkout v1.7.0
- name: OpenMP Environment Variables
run: |
echo "OMP_NUM_THREADS=1" >> $GITHUB_ENV
- name: MOAB Environment Variables
if: ${{ matrix.moab }}
run: |
echo "MOAB_SHA"=$(cd ~/moab && git rev-parse HEAD) >> $GITHUB_ENV
- name: libMesh Environment Variables
if: ${{ matrix.libmesh }}
run: |
echo "LIBMESH_SHA"=$(cd ~/libmesh && git rev-parse HEAD) >> $GITHUB_ENV
# Enforce that we're using the debug build of libMesh
echo "METHOD=dbg" >> $GITHUB_ENV
- name: MOAB Cache
if: ${{ matrix.moab }}
id: moab-cache
uses: actions/cache@v3
env:
cache-name: moab-cache
with:
path: ~/MOAB
key: moab-${{ runner.os }}-${{ env.cache-name }}-${{ env.MOAB_SHA }}
- name: libMesh Cache
if: ${{ matrix.libmesh }}
id: libmesh-cache
uses: actions/cache@v3
env:
cache-name: libmesh-cache
with:
path: ~/LIBMESH
key: libmesh-${{ runner.os }}-${{ env.cache-name }}-${{ env.LIBMESH_SHA }}
- if: ${{ matrix.moab && steps.moab-cache.outputs.cache-hit != 'true' }}
name: Build MOAB
run: |
cd ~/moab
mkdir build
cd build
cmake -DENABLE_HDF5=ON -DENABLE_BLASLAPACK=OFF -DCMAKE_INSTALL_PREFIX=$HOME/MOAB -DCMAKE_BUILD_TYPE=Release ..
make -j4
make install
- if: ${{ matrix.libmesh && steps.libmesh-cache.outputs.cache-hit != 'true' }}
name: Build libMesh
shell: bash
run: |
cd ~
cd libmesh
git checkout v1.7.0
git submodule update --init --recursive
mkdir build
cd build
../configure --prefix=$HOME/LIBMESH --enable-exodus --disable-netcdf4 --disable-eigen --disable-lapack --disable-mpi --disable-metaphysicl
make -j4
sudo make install
- name: Build
shell: bash
run: |
export LD_LIBRARY_PATH=$VULKAN_SDK/lib:$LD_LIBRARY_PATH
mkdir build
cd build
CMAKE_PREFIX_PATH=""
if [ "${{ matrix.libmesh }}" = 'true' ]; then
CMAKE_PREFIX_PATH="$HOME/LIBMESH"
fi
if [ "${{ matrix.moab }}" = 'true' ]; then
if [ -n "$CMAKE_PREFIX_PATH" ]; then
CMAKE_PREFIX_PATH="$CMAKE_PREFIX_PATH;"
fi
CMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH}$HOME/MOAB"
fi
cmake .. -DCMAKE_PREFIX_PATH="$CMAKE_PREFIX_PATH" -DCMAKE_INSTALL_PREFIX=$HOME/opt -DXDG_ENABLE_MOAB=${{ matrix.moab && 'ON' || 'OFF' }} -DXDG_ENABLE_LIBMESH=${{ matrix.libmesh && 'ON' || 'OFF' }}
make -j4 install
- name: Test
shell: bash
run: |
cd build
ctest -j4 --output-on-failure
- name: Check installed executables
shell: bash
run: |
~/opt/bin/tools/find-volume
- name: Setup tmate session
if: ${{ failure() }}
uses: mxschmitt/action-tmate@v3