# Comment line(s) preceding each configuration document the main
# intent behind that configuration, so that we can correctly judge
# whether to preserve that during maintenance decisions.
#
# Other configurations might coincidentally test such configurations
# (e.g. because they are the current default), but it is appropriate
# to intend to teach each feature (or a feature combination) exactly
# once, and for the intent to be reflected precisely in the
# configuration syntax, so that the configurations are stable even
# if the defaults change in future.
#
# The phrase "at time of release" refers to either the initial
# GROMACS release from that branch, or the next expected release
# from that branch. (We will tend not to retroactively support
# newer infrastructure in CI, unless it's either easy or of
# high impact.)
#
# These configurations will be used to build and test the tarballs
# before the releases. These all build in release mode (ie with
# minimal assertions, as we intend the code to be built and used
# by end users).

# Test mpi support
# Test mdrun-only build
gcc-9 mpi mdrun-only release

# Test static linking with gcc
# Test newest gcc at time of release
gcc-9 static release

# Test double precision
# Test with newest supported Intel compiler
icc-19 double release

# Test static linking with clang
# Test double precision
# Test newest supported clang version
clang-8 static double release cmake-3.10.0

# Test oldest supported gcc at time of release
# Test with GPU support
# Test with newest CUDA at time of release
gcc-5 gpuhw=nvidia cuda-10.0 release

# Test with OpenCL support
gcc-8 simd=avx2_256 gpuhw=amd opencl-1.2 release

# TODO items
# Avoid specifying cmake versions just to move jobs away from bs_nix-amd
