Skip to content

WIP: Adios io

WIP: Adios io #2913

Workflow file for this run

name: Tests
on: [push, pull_request]
defaults:
run:
shell: bash
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
standard_tests:
timeout-minutes: 60
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.os }}
env:
BOUT_TEST_TIMEOUT: "6m"
PETSC_DIR: /usr/lib/petscdir/petsc3.12/x86_64-linux-gnu-real
PETSC_ARCH: ""
SLEPC_DIR: /usr/lib/slepcdir/slepc3.12/x86_64-linux-gnu-real/
SLEPC_ARCH: ""
OMP_NUM_THREADS: ${{ matrix.config.omp_num_threads }}
PYTHONPATH: ${{ github.workspace }}/tools/pylib
OMPI_MCA_rmaps_base_oversubscribe: yes
MPIRUN: mpiexec -np
strategy:
fail-fast: false
matrix:
# Need this to be able to exclude the coverage job
is_master_or_next:
- ${{ github.ref == 'refs/heads/master' || github.ref == 'refs/heads/next' || github.base_ref == 'master' || github.base_ref == 'next' }}
config:
- name: "Default options, Ubuntu 20.04"
os: ubuntu-20.04
configure_options: ""
script_flags: "-uim"
- name: "Optimised, shared, Python"
os: ubuntu-20.04
configure_options: "--enable-shared
--enable-checks=no
--enable-optimize=3
--disable-signal
--disable-track
--disable-backtrace
--with-petsc
--with-slepc
--with-sundials=/home/runner/local"
script_flags: "-uim -t shared -t python"
omp_num_threads: 1
- name: "Debug, shared"
os: ubuntu-20.04
configure_options: "--enable-shared
--enable-sigfpe
--enable-debug
--enable-track
--with-petsc
--with-slepc
--with-sundials=/home/runner/local"
script_flags: "-uim"
omp_num_threads: 1
- name: "CMake, shared, release"
os: ubuntu-latest
cmake_options: "-DBUILD_SHARED_LIBS=ON
-DBOUT_ENABLE_OPENMP=ON
-DCMAKE_BUILD_TYPE=Release
-DBOUT_USE_PETSC=ON
-DBOUT_USE_SLEPC=ON
-DBOUT_USE_SUNDIALS=ON
-DBOUT_BUILD_DOCS=OFF
-DSUNDIALS_ROOT=/home/runner/local"
omp_num_threads: 2
- name: "CMake, shared, OpenMP, 3D metrics"
os: ubuntu-latest
cmake_options: "-DBUILD_SHARED_LIBS=ON
-DBOUT_ENABLE_METRIC_3D=ON
-DBOUT_ENABLE_OPENMP=ON
-DBOUT_USE_PETSC=ON
-DBOUT_USE_SLEPC=ON
-DBOUT_USE_SUNDIALS=ON
-DBOUT_ENABLE_PYTHON=ON
-DSUNDIALS_ROOT=/home/runner/local"
omp_num_threads: 2
- name: "CMake, new PETSc"
os: ubuntu-20.04
cmake_options: "-DBUILD_SHARED_LIBS=ON
-DBOUT_ENABLE_METRIC_3D=ON
-DBOUT_ENABLE_OPENMP=ON
-DBOUT_USE_PETSC=ON
-DBOUT_USE_SLEPC=ON
-DBOUT_USE_SUNDIALS=ON
-DBOUT_ENABLE_PYTHON=ON
-DSUNDIALS_ROOT=/home/runner/local
-DPETSC_DIR=/home/runner/local/petsc
-DSLEPC_DIR=/home/runner/local/slepc"
build_petsc: -petsc
- name: "Coverage"
os: ubuntu-20.04
configure_options: "--enable-shared
--enable-code-coverage
--enable-debug
--enable-track
--with-lapack
--with-petsc
--with-slepc
--with-sundials=/home/runner/local"
omp_num_threads: 1
script_flags: "-u"
exclude:
# Don't run the coverage tests if the branch isn't master or next
- is_master_or_next: false
config:
name: "Coverage"
steps:
- name: Job information
run: |
echo Build: ${{ matrix.config.name }}, ${{ matrix.config.os }}
echo Configure options: ${{ matrix.config.configure_options }}
echo CMake options: ${{ matrix.config.cmake_options }}
- name: Install dependencies
run: sudo apt update &&
sudo apt install -y
libfftw3-dev
libnetcdf-dev
libnetcdf-c++4-dev
netcdf-bin
python3
python3-pip
python3-pytest
python3-numpy
python3-scipy
lcov
openmpi-bin
libopenmpi-dev
petsc-dev
slepc-dev
liblapack-dev
libparpack2-dev
- uses: actions/checkout@v3
with:
submodules: true
- name: Install pip packages
run: |
./.pip_install_for_ci.sh 'cython~=0.29' 'netcdf4~=1.5' 'sympy~=1.5' 'gcovr' 'cmake' 'h5py' 'zoidberg' 'natsort'
# Add the pip install location to the runner's PATH
echo ~/.local/bin >> $GITHUB_PATH
- name: Cache SUNDIALS build
uses: actions/cache@v2
with:
path: /home/runner/local
key: bout-sundials-${{ matrix.config.os }}${{ matrix.config.build_petsc }}
- name: Build SUNDIALS
run: ./.build_sundials_for_ci.sh
- name: Build PETSc
run: BUILD_PETSC=${{ matrix.config.build_petsc }} ./.build_petsc_for_ci.sh
- name: Build (configure)
if: ${{ ! contains(matrix.config.name, 'CMake') }}
run: ./.ci_script.sh ${{ matrix.config.script_flags }}
env:
LD_LIBRARY_PATH: /home/runner/local/lib:$LD_LIBRARY_PATH
CONFIGURE_OPTIONS: ${{ matrix.config.configure_options }}
- name: Build (CMake)
if: ${{ contains(matrix.config.name, 'CMake') }}
run: ./.ci_with_cmake.sh ${{ matrix.config.cmake_options }}
- name: Capture coverage
if: ${{ matrix.config.name == 'Coverage' }}
# Explicitly run the coverage capture target, because
# ci_script.sh also does the upload, and we're going to do
# that ourselves in the next step
run: |
# Ensure that there is a corresponding .gcda file for every .gcno file
# This is to try and make the coverage report slightly more accurate
# It still won't include, e.g. any solvers we don't build with though
find . -name "*.gcno" -exec sh -c 'touch -a "${1%.gcno}.gcda"' _ {} \;
make code-coverage-capture
- name: Upload coverage
if: ${{ matrix.config.name == 'Coverage' }}
uses: codecov/codecov-action@v1
Fedora:
# This is its own job as it doesn't use most of the steps of the
# standard_tests
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Build Fedora rawhide
run: ./.ci_fedora.sh setup openmpi rawhide
shell: bash
env:
TRAVIS_BUILD_DIR: ${{ github.workspace }}