Skip to content

Commit

Permalink
Reduce CI matrix explosion slightly
Browse files Browse the repository at this point in the history
  • Loading branch information
reuterbal committed Jul 24, 2023
1 parent b64b6fa commit e755c1c
Showing 1 changed file with 22 additions and 48 deletions.
70 changes: 22 additions & 48 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,85 +27,59 @@ jobs:

matrix:

arch:
- github/ubuntu/gnu/9.4.0

io_library_flag: ['', '--with-serialbox'] # Switch between Serialbox and HDF5

mpi_flag: ['', '--with-mpi'] # Enable MPI-parallel build

prec_flag: ['', '--single-precision'] # Switch single/double precision

gpu_flag: ['', '--with-gpu'] # GPU-variants enabled

cuda_flag: [''] # Enable CUDA variants
gpu_flag: [''] # Enable GPU variants

loki_flag: ['', '--with-loki'] # Loki source-to-source translation enabled
loki_flag: [''] # Enable Loki S2S processing

claw_flag: [''] # Flag to enable CLAW-generated variants
pyiface_flag: [''] # Enable the pyiface variant

pyiface_flag: [''] # Flag to enable Python-interface variant
python_f2py_flag: [''] # Enable the f2py variant

python_f2py_flag: [''] # Flag to enable Python variants
claw_flag: ['']

ctest_exclude_pattern: ['-scc-hoist-'] # Regex to disable CTest tests

include:
# Add nvhpc build configurations with serialbox and HDF5
- arch: github/ubuntu/nvhpc/21.9
nvhpc_version: 21.9
# Plain build config (only arch specified)
- arch: 'gnu/9.4.0'

# Add pyiface build configuration for double precision, non-MPI, HDF5 only
- arch: gnu/9.4.0
io_library_flag: ''
mpi_flag: ''
prec_flag: ''
pyiface_flag: '--cloudsc-fortran-pyiface=ON'
python_f2py_flag: '--cloudsc-python-f2py=ON'

# Add Loki and GPU configurations
- arch: 'gnu/9.4.0'
gpu_flag: '--with-gpu'
cuda_flag: '--with-cuda'
loki_flag: '--with-loki'
pyiface_flag: ''
python_f2py_flag: ''
ctest_exclude_pattern: '-gpu-|-scc-|-loki-c|-cuda-' # GPU variants don't work on CPU runners, loki-c variant causes SIGFPE
- arch: github/ubuntu/nvhpc/21.9

# Add nvhpc build configurations with serialbox and HDF5
- arch: nvhpc/21.9
nvhpc_version: 21.9
io_library_flag: '--with-serialbox'
mpi_flag: ''
prec_flag: ''
gpu_flag: '--with-gpu'
cuda_flag: '--with-cuda'
loki_flag: '--with-loki'
pyiface_flag: ''
python_f2py_flag: ''
ctest_exclude_pattern: '-gpu-|-scc-|-loki-c|-cuda-' # GPU variants don't work on CPU runners, loki-c variant causes SIGFPE
- arch: github/ubuntu/nvhpc/23.5
nvhpc_version: 23.5
io_library_flag: ''
mpi_flag: ''
prec_flag: ''
gpu_flag: '--with-gpu'
cuda_flag: '--with-cuda'
loki_flag: '--with-loki'
pyiface_flag: ''
python_f2py_flag: ''
ctest_exclude_pattern: '-gpu-|-scc-|-loki-c|-loki-sca|-cuda-' # GPU variants don't work on CPU runners, loki-c variant causes SIGFPE
- arch: github/ubuntu/nvhpc/23.5

- arch: nvhpc/23.5
nvhpc_version: 23.5
io_library_flag: '--with-serialbox'
mpi_flag: ''
prec_flag: ''
gpu_flag: '--with-gpu'
cuda_flag: '--with-cuda'
loki_flag: '--with-loki'
pyiface_flag: ''
python_f2py_flag: ''
ctest_exclude_pattern: '-gpu-|-scc-|-loki-c|-loki-sca|-cuda-' # GPU variants don't work on CPU runners, loki-c variant causes SIGFPE
# Add pyiface build configuration for HDF5 only
- arch: github/ubuntu/gnu/9.4.0
io_library_flag: ''
mpi_flag: ''
prec_flag: ''
gpu_flag: ''
cuda_flag: ''
loki_flag: ''
pyiface_flag: '--cloudsc-fortran-pyiface=ON'
python_f2py_flag: '--cloudsc-python-f2py=ON'

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
Expand Down Expand Up @@ -155,7 +129,7 @@ jobs:
- name: Install HDF5 from source
if: contains( matrix.arch, 'nvhpc' ) && ! contains( matrix.io_library_flag, 'with-serialbox' )
run: |
source arch/${{ matrix.arch }}/env.sh
source arch/github/ubuntu/${{ matrix.arch }}/env.sh
FC=pgf90 .github/scripts/install-hdf5.sh
# Install Boost
Expand All @@ -171,7 +145,7 @@ jobs:
- name: Bundle build
run: |
./cloudsc-bundle build --retry-verbose \
--arch=arch/${{ matrix.arch }} ${{ matrix.prec_flag }} \
--arch=arch/github/ubuntu/${{ matrix.arch }} ${{ matrix.prec_flag }} \
${{ matrix.mpi_flag }} ${{ matrix.io_library_flag }} ${{ matrix.gpu_flag }} \
${{ matrix.claw_flag}} ${{ matrix.loki_flag }} ${{ matrix.cuda_flag }} \
${{ matrix.pyiface_flag }} ${{ matrix.python_f2py_flag }}
Expand Down

0 comments on commit e755c1c

Please sign in to comment.