Skip to content

update build recipes to conduit 0.9.7 #54

update build recipes to conduit 0.9.7

update build recipes to conduit 0.9.7 #54

Workflow file for this run

name: ascent_cuda_static
on:
pull_request:
branches: [ develop ]
permissions:
contents: read
#
# Note: github actions does not have a equiv of azure pipelines top level "variables"
# so our container names are embedded in the matrix defs.
#
jobs:
build:
name: Ascent CUDA Static
runs-on: ubuntu-latest
container: ${{ matrix.container }}
strategy:
matrix:
include:
- name: cuda 12.8.1
container: alpinedav/ascent-devel:ubuntu-22.04-cuda-12.8.1-x86_64-tpls_2026-08-08-sha91a906
env:
cc: gcc
cxx: g++
fc: gfortran
build_shared_libs: OFF
cmake_build_type: MinSizeRel
cuda_arch: 80
enable_dray: OFF
enable_mfem: ON
blt_cxx_std: c++17
# static linking unit tests + examples eats up alot of disk space,
# so skip building tests in CI to keep us away from clif
enable_tests: OFF
enable_examples: OFF
enable_utils: OFF
- name: cuda 11.8.0
container: alpinedav/ascent-devel:ubuntu-22.04-cuda-11.8.0-x86_64-tpls_2026-08-09-sha91a906
env:
cc: gcc
cxx: g++
fc: gfortran
build_shared_libs: OFF
cmake_build_type: MinSizeRel
cuda_arch: 70
enable_dray: OFF
enable_mfem: ON
blt_cxx_std: c++17
# static linking unit tests + examples eats up alot of disk space,
# so skip building tests in CI to keep us away from clif
enable_tests: OFF
enable_examples: OFF
enable_utils: OFF
env:
COMPILER_CC: ${{ matrix.env.cc }}
COMPILER_CXX: ${{ matrix.env.cxx }}
COMPILER_FC: ${{ matrix.env.fc }}
BUILD_SHARED_LIBS: ${{ matrix.env.build_shared_libs }}
CMAKE_BUILD_TYPE: ${{ matrix.env.cmake_build_type }}
CUDA_ARCH: ${{ matrix.env.cuda_arch }}
ENABLE_DRAY: ${{ matrix.env.enable_dray }}
ENABLE_MFEM: ${{ matrix.env.enable_mfem }}
BLT_CXX_STD: ${{ matrix.env.blt_cxx_std }}
ENABLE_TESTS: ${{ matrix.env.enable_tests }}
ENABLE_EXAMPLES: ${{ matrix.env.enable_examples }}
ENABLE_UTILS: ${{ matrix.env.enable_utils }}
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
submodules: 'recursive'
- name: Configure Ascent
run: |
#################################
# configure
#################################
# setup compiler env vars
export CC=${COMPILER_CC}
export CXX=${COMPILER_CXX}
export FC=${COMPILER_FC}
${CC} --version
# capture current path
export ROOT_DIR=`pwd`
# find spack generated host config file
export HOST_CONFIG=`ls /uberenv_libs/*.cmake`
echo $HOST_CONFIG
# find spack installed cmake
export CMAKE_BIN_DIR=`ls -d /uberenv_libs/spack/opt/spack/*/*/cmake*/bin`
export PATH=${CMAKE_BIN_DIR}:$PATH
echo $PATH
which cmake
cmake --version
# extra cuda setup (req for occa)
export LD_LIBRARY_PATH="/usr/local/cuda/compat/"
# prepare build dir
mkdir build
cd build
# setup cmake options
export CMAKE_OPTS="-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}"
# c++ std
export CMAKE_OPTS="${CMAKE_OPTS} -DBLT_CXX_STD=${BLT_CXX_STD}"
# always include raja and umpire
export RAJA_DIR=`ls -d /uberenv_libs/spack/opt/spack/*/*/raja*/`
export UMPIRE_DIR=`ls -d /uberenv_libs/spack/opt/spack/*/*/umpire*/`
export CMAKE_OPTS="${CMAKE_OPTS} -DUMPIRE_DIR=${UMPIRE_DIR}"
export CMAKE_OPTS="${CMAKE_OPTS} -DRAJA_DIR=${RAJA_DIR}"
# always build vtkh, dray,and apcomp
export CMAKE_OPTS="${CMAKE_OPTS} -DENABLE_VTKH=TRUE"
export CMAKE_OPTS="${CMAKE_OPTS} -DENABLE_APCOMP=${ENABLE_DRAY}"
export CMAKE_OPTS="${CMAKE_OPTS} -DENABLE_DRAY=${ENABLE_DRAY}"
if [ $ENABLE_MFEM = 'OFF' ]; then export CMAKE_OPTS="${CMAKE_OPTS} -DMFEM_DIR=IGNORE"; fi
export CMAKE_OPTS="${CMAKE_OPTS} -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS}"
export CMAKE_OPTS="${CMAKE_OPTS} -DENABLE_TESTS=$ENABLE_TESTS"
export CMAKE_OPTS="${CMAKE_OPTS} -DENABLE_EXAMPLES=$ENABLE_EXAMPLES"
export CMAKE_OPTS="${CMAKE_OPTS} -DENABLE_UTILS=$ENABLE_UTILS"
export CMAKE_OPTS="${CMAKE_OPTS} -DCMAKE_INSTALL_PREFIX=../install"
export CMAKE_OPTS="${CMAKE_OPTS} -DCMAKE_CXX_FLAGS=-fno-lto -DCMAKE_CUDA_ARCHITECTURES=${CUDA_ARCH}"
# configure
cmake ${CMAKE_OPTS} -C ${HOST_CONFIG} ../src
- name: Build Ascent
run: |
echo "**** Building Ascent"
export CMAKE_BIN_DIR=`ls -d /uberenv_libs/spack/opt/spack/*/*/cmake*/bin`
export PATH=${CMAKE_BIN_DIR}:$PATH
export LD_LIBRARY_PATH="/usr/local/cuda/compat/"
cmake --build build -j2 --config ${CMAKE_BUILD_TYPE}
- name: Install Ascent
run: |
echo "**** Installing Ascent"
export CMAKE_BIN_DIR=`ls -d /uberenv_libs/spack/opt/spack/*/*/cmake*/bin`
export PATH=${CMAKE_BIN_DIR}:$PATH
cmake --install build --config ${CMAKE_BUILD_TYPE}
- name: "Test vs Install (using-with-cmake) [build only]"
run: |
echo "**** Building using with cmake example"
pwd
ls -l
# find spack installed cmake
export ROOT_DIR=`pwd`
export CMAKE_BIN_DIR=`ls -d /uberenv_libs/spack/opt/spack/*/*/cmake*/bin`
export PATH=${CMAKE_BIN_DIR}:$PATH
echo $PATH
which cmake
# copy example we want to test
mkdir -p install/examples/ascent/
cp -r src/examples/using-with-cmake install/examples/ascent/
export LD_LIBRARY_PATH="/usr/local/cuda/compat/"
cd install/examples/ascent/using-with-cmake
env CC=mpicc CXX=mpic++ cmake -DCMAKE_CXX_FLAGS="-fno-lto" -DCMAKE_CUDA_ARCHITECTURES=${CUDA_ARCH} -S . -B _test_build
cd _test_build
make VERBOSE=1
- name: "Test vs Install (using-with-make) [build only]"
run: |
echo "**** Building using with make example"
cat install/share/ascent/ascent_config.mk
pwd
ls -l
# copy example we want to test
mkdir -p install/examples/ascent/
cp -r src/examples/using-with-make install/examples/ascent/
export LD_LIBRARY_PATH="/usr/local/cuda/compat/"
cd install/examples/ascent/using-with-make
env CC=mpicc CXX=mpic++ CXXFLAGS="-fno-lto" make