modify ctest script #16
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: github-linux | |
on: [push, pull_request] | |
concurrency: | |
group: ${ {github.event_name }}-${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: ${{github.event_name == 'pull_request'}} | |
permissions: | |
contents: read | |
jobs: | |
linux-release-serial: | |
# simple serial release build using g++ | |
name: linux release serial | |
runs-on: [ubuntu-20.04] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: setup | |
run: | | |
./contrib/utilities/download_clang_format | |
- name: info | |
run: | | |
g++ -v | |
cmake --version | |
- name: modules | |
run: | | |
sudo apt-get install g++-10 | |
- name: Build Boost | |
id: boost | |
uses: egor-tensin/build-boost@v1 | |
with: | |
version: 1.74.0 | |
libraries: container iostreams python serialization system thread | |
platform: x64 | |
configuration: Release | |
- name: configure deal.II | |
run: | | |
mkdir build | |
cd build | |
cmake -D BOOST_DIR=/home/runner/work/dealii/boost \ | |
-D BOOST_INCLUDEDIR=/home/runner/work/dealii/boost \ | |
-D BOOST_LIBRARYDIR=/home/runner/work/dealii/boost/stage/x64/Release/lib \ | |
-D CMAKE_BUILD_TYPE=Release \ | |
-D CMAKE_CXX_COMPILER=g++-10 \ | |
-D DEAL_II_CXX_FLAGS='-Werror -std=c++20' \ | |
-D DEAL_II_EARLY_DEPRECATIONS=ON \ | |
-DDEAL_II_COMPONENT_PYTHON_BINDINGS=ON \ | |
.. | |
- name: print detailed.log | |
run: cat build/detailed.log | |
- name: build | |
run: | | |
cd build | |
make VERBOSE=1 -j2 | |
- name: quicktest | |
run: | | |
cd build | |
make test | |
linux-debug-parallel-simplex: | |
# simple parallel debug build using g++ with simplex configuration enabled | |
name: linux debug parallel simplex | |
runs-on: [ubuntu-22.04] | |
container: | |
image: dealii/dependencies:jammy | |
options: --user root --env OMPI_ALLOW_RUN_AS_ROOT=1 --env OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: info | |
run: | | |
mpicc -v | |
cmake --version | |
- name: configure deal.II | |
run: | | |
mkdir build | |
cd build | |
cmake -D CMAKE_BUILD_TYPE=Debug \ | |
-D DEAL_II_CXX_FLAGS='-Werror -std=c++17' \ | |
-D DEAL_II_EARLY_DEPRECATIONS=ON \ | |
-D DEAL_II_WITH_CGAL="ON" \ | |
-D DEAL_II_WITH_MPI="ON" \ | |
-D DEAL_II_WITH_TRILINOS="ON" \ | |
-D DEAL_II_WITH_PETSC="ON" \ | |
-D DEAL_II_WITH_METIS="ON" \ | |
-D DEAL_II_WITH_HDF5="ON" \ | |
-D DEAL_II_WITH_VTK="ON" \ | |
-D DEAL_II_COMPONENT_EXAMPLES="OFF" \ | |
.. | |
- name: print detailed.log | |
run: cat build/detailed.log | |
- name: build | |
run: | | |
cd build | |
make VERBOSE=1 -j2 | |
- name: test | |
run: | | |
# Remove warning: "A high-performance Open MPI point-to-point | |
# messaging module was unable to find any relevant network | |
# interfaces." | |
export OMPI_MCA_btl_base_warn_component_unused='0' | |
cd build | |
make -j2 setup_tests_simplex | |
ctest --output-on-failure -j2 | |
- name: failed test log | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: test-log | |
path: | | |
build/tests/**/*output* | |
build/tests/**/*stdout* | |
linux-debug-cuda-11: | |
# simple parallel debug build using cuda-11 | |
name: linux debug cuda-11 | |
runs-on: [ubuntu-20.04] | |
env: | |
CUDA_ROOT: /usr/local/cuda | |
steps: | |
- uses: actions/checkout@v3 | |
- name: modules | |
run: | | |
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin | |
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 | |
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub | |
sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /" | |
sudo apt-get install -y software-properties-common | |
sudo add-apt-repository ppa:ginggs/deal.ii-9.4.0-backports | |
sudo apt-get update | |
sudo apt-get install -yq --no-install-recommends \ | |
cuda-toolkit-11-8 \ | |
libp4est-dev \ | |
libopenmpi-dev \ | |
numdiff \ | |
openmpi-bin \ | |
libboost-all-dev | |
- name: info | |
run: | | |
mpicc -v | |
cmake --version | |
- uses: actions/checkout@v3 | |
with: | |
repository: kokkos/kokkos | |
ref: 3.7.00 | |
path: kokkos | |
- name: compile and install kokkos | |
working-directory: kokkos | |
run: | | |
mkdir build | |
cd build | |
cmake -D BUILD_SHARED_LIBS=ON \ | |
-D CMAKE_CXX_COMPILER=${GITHUB_WORKSPACE}/kokkos/bin/nvcc_wrapper \ | |
-D CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/../kokkos-install \ | |
-D Kokkos_ENABLE_CUDA=ON \ | |
-D Kokkos_ENABLE_CUDA_LAMBDA=ON \ | |
-D Kokkos_ENABLE_CUDA_CONSTEXPR=ON \ | |
-D Kokkos_ARCH_VOLTA70=ON \ | |
.. | |
make install | |
- name: configure deal.II | |
run: | | |
mkdir build | |
cd build | |
cmake -D CMAKE_BUILD_TYPE=Debug \ | |
-D CMAKE_CXX_COMPILER=${GITHUB_WORKSPACE}/kokkos/bin/nvcc_wrapper \ | |
-D DEAL_II_CXX_FLAGS='-Werror -Wno-non-template-friend' \ | |
-D DEAL_II_EARLY_DEPRECATIONS=ON \ | |
-D DEAL_II_WITH_CUDA="ON" \ | |
-D DEAL_II_WITH_KOKKOS="ON" \ | |
-D KOKKOS_DIR=${GITHUB_WORKSPACE}/../kokkos-install \ | |
-D DEAL_II_WITH_MPI="ON" \ | |
-D DEAL_II_MPI_WITH_DEVICE_SUPPORT="ON" \ | |
-D DEAL_II_WITH_P4EST="ON" \ | |
-D DEAL_II_COMPONENT_EXAMPLES="ON" \ | |
.. | |
- name: print detailed.log | |
run: cat build/detailed.log | |
- name: build deal.II | |
run: | | |
cd build | |
make VERBOSE=1 -j2 | |
- name: build CUDA tests | |
run: | | |
cd build | |
make -j2 setup_tests_cuda | |
cd tests/cuda | |
make -j2 compile_test_executables | |
linux-debug-cuda-11-clang: | |
# simple parallel debug build using cuda-11 and clang | |
name: linux debug cuda-11 clang | |
runs-on: [ubuntu-20.04] | |
env: | |
CUDA_ROOT: /usr/local/cuda | |
steps: | |
- uses: actions/checkout@v3 | |
- name: modules | |
run: | | |
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin | |
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 | |
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub | |
sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /" | |
sudo apt-get install -y software-properties-common | |
sudo add-apt-repository ppa:ginggs/deal.ii-9.4.0-backports | |
sudo apt-get update | |
sudo apt-get install -yq --no-install-recommends \ | |
cuda-toolkit-11-0 \ | |
libp4est-dev \ | |
libopenmpi-dev \ | |
llvm \ | |
numdiff \ | |
openmpi-bin \ | |
libboost-all-dev | |
- name: info | |
run: | | |
mpicc -v | |
cmake --version | |
- uses: actions/checkout@v3 | |
with: | |
repository: kokkos/kokkos | |
ref: 3.7.00 | |
path: kokkos | |
- name: compile and install kokkos | |
working-directory: kokkos | |
run: | | |
mkdir build | |
cd build | |
cmake -D BUILD_SHARED_LIBS=ON \ | |
-D CMAKE_CXX_COMPILER=clang++ \ | |
-D CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/../kokkos-install \ | |
-D Kokkos_ENABLE_CUDA=ON \ | |
-D Kokkos_ARCH_VOLTA70=ON \ | |
.. | |
make install | |
- name: configure deal.II | |
run: | | |
mkdir build | |
cd build | |
cmake -D CMAKE_BUILD_TYPE=Debug \ | |
-D CMAKE_CXX_COMPILER=clang++ \ | |
-D DEAL_II_FORCE_BUNDLED_BOOST=ON \ | |
-D DEAL_II_CXX_FLAGS="-std=c++17" \ | |
-D DEAL_II_EARLY_DEPRECATIONS=ON \ | |
-D DEAL_II_WITH_CUDA="ON" \ | |
-D DEAL_II_WITH_KOKKOS="ON" \ | |
-D KOKKOS_DIR=${GITHUB_WORKSPACE}/../kokkos-install \ | |
-D DEAL_II_WITH_MPI="ON" \ | |
-D DEAL_II_MPI_WITH_DEVICE_SUPPORT="OFF" \ | |
-D DEAL_II_WITH_P4EST="ON" \ | |
-D DEAL_II_COMPONENT_EXAMPLES="ON" \ | |
.. | |
cat detailed.log | |
- name: archive detailed.log | |
uses: actions/upload-artifact@v3 | |
with: | |
name: linux-cuda-clang-detailed.log | |
path: build/detailed.log | |
- name: build deal.II | |
run: | | |
cd build | |
make VERBOSE=1 -j 2 | |
- name: build CUDA tests | |
run: | | |
cd build | |
make -j 2 setup_tests_cuda | |
cd tests/cuda | |
make -j2 compile_test_executables | |
linux-debug-intel-oneapi: | |
# parallel debug build with Intel oneAPI including MPI and MKL | |
# | |
# Based on https://github.com/oneapi-src/oneapi-ci | |
# For a list of Intel packages see https://oneapi-src.github.io/oneapi-ci/#linux-apt | |
name: linux debug intel oneapi | |
runs-on: [ubuntu-20.04] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: setup apt repo | |
run: | | |
# oneapi-ci/scripts/setup_apt_repo_linux.sh | |
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB | |
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB | |
echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list | |
sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/oneAPI.list" -o APT::Get::List-Cleanup="0" | |
- name: collect versioned dependencies of apt packages | |
run : | | |
# oneapi-ci/scripts/apt_depends.sh | |
apt-cache depends intel-oneapi-compiler-dpcpp-cpp \ | |
intel-oneapi-mpi-devel \ | |
intel-oneapi-mkl-devel \ | |
intel-oneapi-tbb-devel | tee dependencies.txt | |
- name: cache install | |
id: cache-install | |
uses: actions/cache@v3 | |
with: | |
path: /opt/intel/oneapi | |
key: install-${{ hashFiles('**/dependencies.txt') }} | |
- name: install | |
if: steps.cache-install.outputs.cache-hit != 'true' | |
run: | | |
# oneapi-ci/scripts/install_linux_apt.sh | |
sudo apt-get install -y intel-oneapi-compiler-dpcpp-cpp \ | |
intel-oneapi-mpi-devel \ | |
intel-oneapi-mkl-devel \ | |
intel-oneapi-tbb-devel | |
sudo apt-get clean | |
- name: info | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
export I_MPI_CXX=icpx | |
mpiicpc -v | |
cmake --version | |
- name: configure deal.II | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
mkdir build | |
cd build | |
cmake -D CMAKE_BUILD_TYPE=Debug \ | |
-D CMAKE_CXX_COMPILER=icpx \ | |
-D DEAL_II_CXX_FLAGS='-Werror -Wno-error=tautological-constant-compare' \ | |
-D DEAL_II_EARLY_DEPRECATIONS=ON \ | |
-D DEAL_II_WITH_MPI=ON \ | |
-D DEAL_II_WITH_LAPACK=ON \ | |
-D DEAL_II_WITH_TBB=ON \ | |
-D MPI_DIR=${I_MPI_ROOT} \ | |
-D BLAS_DIR=${MKLROOT} \ | |
-D LAPACK_DIR=${MKLROOT} \ | |
-D TBB_DIR=${TBBROOT} \ | |
.. | |
- name: print detailed.log | |
run: cat build/detailed.log | |
- name: build | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
cd build | |
make VERBOSE=1 -j2 | |
- name: quicktest | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
cd build | |
make test |