# Build, test, and install variously configured GROMACS installations. # Initial build that always needs to pass before follow-up stages run simple-build: extends: - .use-ccache - .variables:default - .use-gcc7 stage: pre-build variables: KUBERNETES_CPU_LIMIT: 8 KUBERNETES_CPU_REQUEST: 4 KUBERNETES_MEMORY_LIMIT: 8Gi CMAKE_COMPILER_SCRIPT: "" CMAKE_EXTRA_OPTIONS: "" CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=None" CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=ON" CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF" CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=Debug" CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF" CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF" BUILD_DIR: simple-build only: refs: - web - pushes - schedules - merge_requests except: variables: - $GROMACS_RELEASE script: - echo $CMAKE_COMPILER_SCRIPT - echo $CMAKE_EXTRA_OPTIONS - echo $CMAKE_SIMD_OPTIONS - echo $CMAKE_GPU_OPTIONS - echo $CMAKE_MPI_OPTIONS - echo $CMAKE_PRECISION_OPTIONS - echo $CMAKE_BUILD_TYPE_OPTIONS - echo $CMAKE_GMXAPI_OPTIONS - if [[ -d $BUILD_DIR ]] ; then echo "Cleaning up build directory" ; rm -rf $BUILD_DIR && mkdir $BUILD_DIR ; else echo "Preparing new build directory" ; mkdir $BUILD_DIR ; fi - cd $BUILD_DIR - cmake .. -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache $CMAKE_COMPILER_SCRIPT $CMAKE_EXTRA_OPTIONS $CMAKE_SIMD_OPTIONS $CMAKE_MPI_OPTIONS $CMAKE_PRECISION_OPTIONS $CMAKE_BUILD_TYPE_OPTIONS $CMAKE_GPU_OPTIONS $CMAKE_GMXAPI_OPTIONS -DCMAKE_INSTALL_PREFIX=../$INSTALL_DIR -DGMX_COMPILER_WARNINGS=ON 2>&1 | tee cmakeLog.log - awk '/CMake Warning/,/^--|^$/' cmakeLog.log | tee cmakeErrors.log - if [ -s cmakeErrors.log ] ; then echo "Found CMake warning while processing build"; cat cmakeErrors.log ; exit 1; fi - cmake --build . -- -j8 2>&1 | tee buildLogFile.log - cmake --build . --target tests -- -j8 2>&1 | tee testBuildLogFile.log - awk '/warning/,/warning.*generated|^$/' buildLogFile.log testBuildLogFile.log | grep -v "CMake" | tee buildErrors.log || true - grep "cannot be built" buildLogFile.log testBuildLogFile.log | tee -a buildErrors.log || true - cmake --build . --target install 2>&1 | tee installBuildLogFile.log - if [ -s buildErrors.log ] ; then echo "Found compiler warning during build"; cat buildErrors.log; exit 1; fi - ctest -D ExperimentalTest --output-on-failure | tee ctestLog.log || true - awk '/The following tests FAILED/,/^Errors while running CTest|^$/' ctestLog.log | tee ctestErrors.log - xsltproc scripts/CTest2JUnit.xsl Testing/`head -n 1 < Testing/TAG`/Test.xml > JUnitTestResults.xml - if [ -s ctestErrors.log ] ; then echo "Error during running ctest"; exit 1; fi - cd .. artifacts: reports: junit: $BUILD_DIR/JUnitTestResults.xml paths: - $BUILD_DIR/*log when: always expire_in: 1 week # Jobs running in first pre-build stage .gromacs:base:configure: extends: - .variables:default cache: {} stage: configure-build only: refs: - web - pushes - schedules - merge_requests variables: KUBERNETES_CPU_LIMIT: 1 KUBERNETES_CPU_REQUEST: 1 KUBERNETES_MEMORY_LIMIT: 2Gi CMAKE_COMPILER_SCRIPT: "" CMAKE_EXTRA_OPTIONS: "" CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=AUTO" CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=ON" CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF" CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=Debug" CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF" CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF" script: - echo $CMAKE_COMPILER_SCRIPT - echo $CMAKE_EXTRA_OPTIONS - echo $CMAKE_SIMD_OPTIONS - echo $CMAKE_GPU_OPTIONS - echo $CMAKE_MPI_OPTIONS - echo $CMAKE_PRECISION_OPTIONS - echo $CMAKE_BUILD_TYPE_OPTIONS - echo $CMAKE_GMXAPI_OPTIONS - if [[ -d $BUILD_DIR ]] ; then rm -rf $BUILD_DIR && mkdir $BUILD_DIR ; else echo "Preparing new build directory" ; mkdir $BUILD_DIR ; fi - cd $BUILD_DIR - cmake .. -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache $CMAKE_COMPILER_SCRIPT $CMAKE_EXTRA_OPTIONS $CMAKE_SIMD_OPTIONS $CMAKE_MPI_OPTIONS $CMAKE_PRECISION_OPTIONS $CMAKE_BUILD_TYPE_OPTIONS $CMAKE_GPU_OPTIONS $CMAKE_GMXAPI_OPTIONS -DCMAKE_INSTALL_PREFIX=../$INSTALL_DIR -DGMX_COMPILER_WARNINGS=ON 2>&1 | tee cmakeLog.log - awk '/CMake Warning/,/^--|^$/' cmakeLog.log | tee cmakeErrors.log - if [ -s cmakeErrors.log ] ; then echo "Found CMake warning while processing build"; cat cmakeErrors.log ; exit 1; fi - cd .. artifacts: when: always paths: - $BUILD_DIR .gromacs:base:release:configure: extends: - .variables:default cache: {} stage: release-configure variables: KUBERNETES_CPU_LIMIT: 1 KUBERNETES_CPU_REQUEST: 1 KUBERNETES_MEMORY_LIMIT: 2Gi CMAKE_COMPILER_SCRIPT: "" CMAKE_EXTRA_OPTIONS: "" CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=AUTO" CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=ON" CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF" CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert" CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF" CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF" RELEASE_BUILD_DIR: release-builds RELEASE_SOURCE: release-source-from-tarball RELEASE_REGRESSIONTESTS: release-regressiontests-from-tarball only: refs: - web - schedules - triggers variables: - $GROMACS_RELEASE script: - VERSION=`cat version.json | python3 -c "import json,sys; print(json.load(sys.stdin)['version'])"` - if [[ $GROMACS_RELEASE != "true" ]] ; then VERSION=$VERSION-dev ; fi - SOURCENAME=gromacs-$VERSION - SOURCETARBALL=$SOURCENAME.tar.gz - REGTESTNAME=regressiontests-$VERSION - REGTESTTARBALL=$REGTESTNAME.tar.gz - echo "$SOURCETARBALL" - echo "$REGTESTTARBALL" - RELEASE_TARBALLS=release-tarballs - rm -rf $RELEASE_TARBALLS $RELEASE_SOURCE $RELEASE_REGRESSIONTESTS && mkdir $RELEASE_TARBALLS - mv $SOURCETARBALL $RELEASE_TARBALLS - mv $REGTESTTARBALL $RELEASE_TARBALLS - cd $RELEASE_TARBALLS # We rename the source and regressiontest directories # to have names for them that don't change for different versions. - tar -xf $SOURCETARBALL - mv $SOURCENAME ../$RELEASE_SOURCE - tar -xf $REGTESTTARBALL - mv $REGTESTNAME ../$RELEASE_REGRESSIONTESTS - rm $SOURCETARBALL $REGTESTTARBALL - cd .. - echo $CMAKE_COMPILER_SCRIPT - echo $CMAKE_EXTRA_OPTIONS - echo $CMAKE_SIMD_OPTIONS - echo $CMAKE_GPU_OPTIONS - echo $CMAKE_MPI_OPTIONS - echo $CMAKE_PRECISION_OPTIONS - echo $CMAKE_BUILD_TYPE_OPTIONS - echo $CMAKE_GMXAPI_OPTIONS - if [[ -d $RELEASE_BUILD_DIR ]] ; then echo "Cleaning up build directory" ; rm -rf $RELEASE_BUILD_DIR && mkdir $RELEASE_BUILD_DIR ; else echo "Preparing new build directory" ; mkdir $RELEASE_BUILD_DIR ; fi - cd $RELEASE_BUILD_DIR - cmake ../$RELEASE_SOURCE/ -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache $CMAKE_COMPILER_SCRIPT $CMAKE_EXTRA_OPTIONS $CMAKE_SIMD_OPTIONS $CMAKE_MPI_OPTIONS $CMAKE_PRECISION_OPTIONS $CMAKE_BUILD_TYPE_OPTIONS $CMAKE_GPU_OPTIONS $CMAKE_GMXAPI_OPTIONS "-DREGRESSIONTEST_PATH=../$RELEASE_REGRESSIONTESTS" -DCMAKE_INSTALL_PREFIX=../$INSTALL_DIR -DGMX_COMPILER_WARNINGS=ON 2>&1 | tee cmakeLog.log - awk '/CMake Warning/,/^--|^$/' cmakeLog.log | tee cmakeErrors.log - if [ -s cmakeErrors.log ] ; then echo "Found CMake warning while processing build"; cat cmakeErrors.log ; exit 1; fi - cd .. artifacts: when: always paths: - $RELEASE_BUILD_DIR - $RELEASE_REGRESSIONTESTS - $RELEASE_SOURCE # Templates for configuration stage gromacs:gcc-7:configure: extends: - .gromacs:base:configure - .use-gcc7 needs: - job: simple-build artifacts: false except: variables: - $GROMACS_RELEASE gromacs:gcc-7:release:configure: extends: - .gromacs:base:release:configure - .use-gcc7 cache: {} variables: RELEASE_BUILD_DIR: release-builds-gcc only: refs: - web - schedules - triggers variables: - $GROMACS_RELEASE dependencies: - package-archive-release - package-regressiontests-release - prepare-release-version gromacs:gcc-7-simd-sse41:configure: extends: - .gromacs:base:configure - .use-gcc7 needs: - job: simple-build artifacts: false variables: CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=SSE4.1" except: variables: - $GROMACS_RELEASE gromacs:gcc-7-double:configure: extends: - .gromacs:base:configure - .use-gcc7 needs: - job: simple-build artifacts: false variables: CMAKE_PRECISION_OPTIONS: -DGMX_DOUBLE=ON except: variables: - $GROMACS_RELEASE gromacs:gcc-7-double:release:configure: extends: - .gromacs:base:release:configure - .use-gcc7 cache: {} variables: CMAKE_PRECISION_OPTIONS: -DGMX_DOUBLE=ON RELEASE_BUILD_DIR: release-builds-gcc only: refs: - web - schedules - triggers variables: - $GROMACS_RELEASE dependencies: - package-archive-release - package-regressiontests-release - prepare-release-version gromacs:gcc-7:configure-gmxapi: extends: - .gromacs:base:configure - .configure-gmxapi-template - .use-gcc7 needs: - job: simple-build artifacts: false except: variables: - $GROMACS_RELEASE gromacs:gcc-7:release:configure-gmxapi: extends: - .gromacs:base:release:configure - .configure-gmxapi-template - .use-gcc7 cache: {} variables: RELEASE_BUILD_DIR: release-builds-gcc only: refs: - web - schedules - triggers variables: - $GROMACS_RELEASE dependencies: - package-archive-release - package-regressiontests-release - prepare-release-version gromacs:gcc-8:configure: extends: - .gromacs:base:configure - .use-gcc8 needs: - job: simple-build artifacts: false except: variables: - $GROMACS_RELEASE gromacs:gcc-8:release:configure: extends: - .gromacs:base:release:configure - .use-gcc8 cache: {} variables: RELEASE_BUILD_DIR: release-builds-gcc only: refs: - web - schedules - triggers variables: - $GROMACS_RELEASE dependencies: - package-archive-release - package-regressiontests-release - prepare-release-version gromacs:gcc-8-cuda-10.2:configure: extends: - .gromacs:base:configure - .use-cuda - .use-gcc8:cuda-10.2 needs: - job: simple-build artifacts: false except: variables: - $GROMACS_RELEASE # For version of clang before 7, we need to always provide the full version # Use something like this instead in the download script: # APT_COMPILER_VERSION=$(($COMPILER_MAJOR_VERSION < 7 ? "${COMPILER_MAJOR_VERSION}.0" : $COMPILER_MAJOR_VERSION)) gromacs:clang-6:configure: extends: - .gromacs:base:configure - .use-clang6 needs: - job: simple-build artifacts: false variables: COMPILER_MAJOR_VERSION: "6.0" CMAKE_MPI_OPTIONS: -DGMX_OPENMP=OFF except: variables: - $GROMACS_RELEASE gromacs:clang-7:configure: extends: - .gromacs:base:configure - .use-clang7 needs: - job: simple-build artifacts: false except: variables: - $GROMACS_RELEASE gromacs:clang-7:release:configure: extends: - .gromacs:base:release:configure - .use-clang7 cache: {} variables: RELEASE_BUILD_DIR: release-builds-clang only: refs: - web - schedules - triggers variables: - $GROMACS_RELEASE dependencies: - package-archive-release - package-regressiontests-release - prepare-release-version gromacs:clang-7:configure-gmxapi: extends: - .gromacs:base:configure - .configure-gmxapi-template - .use-clang7 needs: - job: simple-build artifacts: false except: variables: - $GROMACS_RELEASE gromacs:clang-7:release:configure-gmxapi: extends: - .gromacs:base:release:configure - .configure-gmxapi-template - .use-clang7 cache: {} variables: RELEASE_BUILD_DIR: release-builds-clang only: refs: - web - schedules - triggers variables: - $GROMACS_RELEASE dependencies: - package-archive-release - package-regressiontests-release - prepare-release-version gromacs:clang-8:configure: extends: - .gromacs:base:configure - .use-clang8 needs: - job: simple-build artifacts: false except: variables: - $GROMACS_RELEASE gromacs:clang-8:release:configure: extends: - .gromacs:base:release:configure - .use-clang8 cache: {} variables: RELEASE_BUILD_DIR: release-builds-clang only: refs: - web - schedules - triggers variables: - $GROMACS_RELEASE dependencies: - package-archive-release - package-regressiontests-release - prepare-release-version # Jobs running during build stage .gromacs:base:build: # Dockerfiles are from dockerhub, user eriklindahl # image in admin/dockerimages/ci-docs-py27 stage: build only: refs: - web - pushes - schedules - merge_requests script: - cd $BUILD_DIR - cmake --build . -- -j8 2>&1 | tee buildLogFile.log - cmake --build . --target tests -- -j8 2>&1 | tee testBuildLogFile.log - awk '/warning/,/warning.*generated|^$/' buildLogFile.log testBuildLogFile.log | grep -v "CMake" | tee buildErrors.log || true - grep "cannot be built" buildLogFile.log testBuildLogFile.log | tee -a buildErrors.log || true - cmake --build . --target install 2>&1 | tee installBuildLogFile.log - if [ -s buildErrors.log ] ; then echo "Found compiler warning during build"; cat buildErrors.log; exit 1; fi - cd .. artifacts: when: always paths: - $BUILD_DIR - $INSTALL_DIR/ gromacs:gcc-7:build: extends: - .gromacs:base:build - .use-ccache - .variables:default - .use-gcc7 needs: - job: simple-build artifacts: false - job: gromacs:gcc-7:configure artifacts: true except: variables: - $GROMACS_RELEASE gromacs:gcc-7:release:build: extends: - .gromacs:base:build - .use-ccache - .variables:default - .use-gcc7 stage: release-build variables: BUILD_DIR: release-builds-gcc needs: - job: gromacs:gcc-7:release:configure artifacts: true only: refs: - web - schedules - triggers variables: - $GROMACS_RELEASE gromacs:gcc-7-simd-sse41:build: extends: - .gromacs:base:build - .use-ccache - .variables:default - .use-gcc7 needs: - job: simple-build artifacts: false - job: gromacs:gcc-7-simd-sse41:configure artifacts: true except: variables: - $GROMACS_RELEASE gromacs:gcc-7-double:build: extends: - .gromacs:base:build - .use-ccache - .variables:default - .use-gcc7 needs: - job: simple-build artifacts: false - job: gromacs:gcc-7-double:configure artifacts: true except: variables: - $GROMACS_RELEASE gromacs:gcc-7:build-gmxapi: extends: - .gromacs:base:build - .use-ccache - .variables:default - .gmxapi-extra-installs - .use-gcc7 needs: - job: simple-build artifacts: false - job: gromacs:gcc-7:configure-gmxapi artifacts: true except: variables: - $GROMACS_RELEASE gromacs:gcc-7-double:release:build: extends: - .gromacs:base:build - .use-ccache - .variables:default - .use-gcc7 stage: release-build variables: BUILD_DIR: release-builds-gcc needs: - job: gromacs:gcc-7-double:release:configure artifacts: true only: refs: - web - schedules - triggers variables: - $GROMACS_RELEASE gromacs:gcc-7:release:build-gmxapi: extends: - .gromacs:base:build - .use-ccache - .variables:default - .gmxapi-extra-installs - .use-gcc7 stage: release-build variables: BUILD_DIR: release-builds-gcc needs: - job: gromacs:gcc-7:release:configure-gmxapi artifacts: true only: refs: - web - schedules - triggers variables: - $GROMACS_RELEASE gromacs:gcc-8:build: extends: - .gromacs:base:build - .use-ccache - .variables:default - .use-gcc8 needs: - job: simple-build artifacts: false - job: gromacs:gcc-8:configure artifacts: true except: variables: - $GROMACS_RELEASE gromacs:gcc-8:release:build: extends: - .gromacs:base:build - .use-ccache - .variables:default - .use-gcc8 stage: release-build variables: BUILD_DIR: release-builds-gcc needs: - job: gromacs:gcc-8:release:configure artifacts: true only: refs: - web - schedules - triggers variables: - $GROMACS_RELEASE gromacs:gcc-8-cuda-10.2:build: extends: - .gromacs:base:build - .use-ccache - .variables:default - .use-cuda - .use-gcc8:cuda-10.2 needs: - job: simple-build artifacts: false - job: gromacs:gcc-8-cuda-10.2:configure artifacts: true except: variables: - $GROMACS_RELEASE gromacs:clang-6:build: extends: - .gromacs:base:build - .use-ccache - .variables:default - .use-clang6 needs: - job: simple-build artifacts: false - job: gromacs:clang-6:configure artifacts: true except: variables: - $GROMACS_RELEASE gromacs:clang-7:build: extends: - .gromacs:base:build - .use-ccache - .variables:default - .use-clang7 needs: - job: simple-build artifacts: false - job: gromacs:clang-7:configure artifacts: true except: variables: - $GROMACS_RELEASE gromacs:clang-7:release:build: extends: - .gromacs:base:build - .use-ccache - .variables:default - .use-clang7 stage: release-build variables: BUILD_DIR: release-builds-clang needs: - job: gromacs:clang-7:release:configure artifacts: true only: refs: - web - schedules - triggers variables: - $GROMACS_RELEASE gromacs:clang-7:build-gmxapi: extends: - .gromacs:base:build - .use-ccache - .variables:default - .gmxapi-extra-installs - .use-clang7 needs: - job: simple-build artifacts: false - job: gromacs:clang-7:configure-gmxapi artifacts: true except: variables: - $GROMACS_RELEASE gromacs:clang-7:release:build-gmxapi: extends: - .gromacs:base:build - .use-ccache - .variables:default - .gmxapi-extra-installs - .use-clang7 stage: release-build variables: BUILD_DIR: release-builds-clang needs: - job: gromacs:clang-7:release:configure-gmxapi artifacts: true only: refs: - web - schedules - triggers variables: - $GROMACS_RELEASE gromacs:clang-8:build: extends: - .gromacs:base:build - .use-ccache - .variables:default - .use-clang8 needs: - job: simple-build artifacts: false - job: gromacs:clang-8:configure artifacts: true except: variables: - $GROMACS_RELEASE gromacs:clang-8:release:build: extends: - .gromacs:base:build - .use-ccache - .variables:default - .use-clang8 stage: release-build variables: BUILD_DIR: release-builds-clang needs: - job: gromacs:clang-8:release:configure artifacts: true only: refs: - web - schedules - triggers variables: - $GROMACS_RELEASE # Jobs running during test stage .gromacs:base:test: variables: REGRESSIONTEST_TOTAL_RANK_NUMBER: 4 REGRESSIONTEST_OMP_RANK_NUMBER: 2 REGRESSIONTEST_PME_RANK_NUMBER: 1 REGRESSIONTEST_MPI_RUN_COMMAND: "" REGRESSIONTEST_DOUBLE: "" stage: test retry: max: 2 extends: - .variables:default only: refs: - web - pushes - schedules - merge_requests script: - cd $BUILD_DIR - ctest -D ExperimentalTest --output-on-failure | tee ctestLog.log || true - awk '/The following tests FAILED/,/^Errors while running CTest|^$/' ctestLog.log | tee ctestErrors.log - xsltproc scripts/CTest2JUnit.xsl Testing/`head -n 1 < Testing/TAG`/Test.xml > JUnitTestResults.xml - if [ -s ctestErrors.log ] ; then echo "Error during running ctest"; exit 1; fi - cd .. - tar xzf gmx-regressiontests.tar.gz - source $INSTALL_DIR/bin/GMXRC - cd regressiontests - echo "perl gmxtest.pl -nt $REGRESSIONTEST_TOTAL_RANK_NUMBER -ntomp $REGRESSIONTEST_OMP_RANK_NUMBER -npme $REGRESSIONTEST_PME_RANK_NUMBER $REGRESSIONTEST_DOUBLE $REGRESSIONTEST_MPI_RUN_COMMAND" - perl gmxtest.pl -nt $REGRESSIONTEST_TOTAL_RANK_NUMBER -ntomp $REGRESSIONTEST_OMP_RANK_NUMBER -npme $REGRESSIONTEST_PME_RANK_NUMBER $REGRESSIONTEST_DOUBLE $REGRESSIONTEST_MPI_RUN_COMMAND -xml all artifacts: reports: junit: $BUILD_DIR/JUnitTestResults.xml paths: - $BUILD_DIR/Testing - $BUILD_DIR/tests - regressiontests when: always expire_in: 1 week gromacs:gcc-7:test: extends: - .gromacs:base:test - .use-gcc7 needs: - job: simple-build artifacts: false - job: gromacs:gcc-7:build - job: prepare-regressiontests except: variables: - $GROMACS_RELEASE gromacs:gcc-7:release:test: extends: - .gromacs:base:test - .use-gcc7 stage: release-tests variables: BUILD_DIR: release-builds-gcc needs: - job: gromacs:gcc-7:release:configure artifacts: true - job: gromacs:gcc-7:release:build artifacts: true only: refs: - triggers - web - schedules variables: - $GROMACS_RELEASE gromacs:gcc-7-simd-sse41:test: extends: - .gromacs:base:test - .use-gcc7 needs: - job: simple-build artifacts: false - job: gromacs:gcc-7-simd-sse41:build - job: prepare-regressiontests except: variables: - $GROMACS_RELEASE gromacs:gcc-7-double:test: extends: - .gromacs:base:test - .use-gcc7 variables: REGRESSIONTEST_DOUBLE: "-double" needs: - job: simple-build artifacts: false - job: gromacs:gcc-7-double:build - job: prepare-regressiontests except: variables: - $GROMACS_RELEASE gromacs:gcc-7-double:release:test: extends: - .gromacs:base:test - .use-gcc7 stage: release-tests variables: BUILD_DIR: release-builds-gcc needs: - job: gromacs:gcc-7-double:release:configure artifacts: true - job: gromacs:gcc-7-double:release:build artifacts: true only: refs: - triggers - web - schedules variables: - $GROMACS_RELEASE gromacs:gcc-7:test-gmxapi: extends: - .gromacs:base:test - .gmxapi-extra-installs - .use-gcc7 needs: - job: simple-build artifacts: false - job: gromacs:gcc-7:build-gmxapi - job: prepare-regressiontests except: variables: - $GROMACS_RELEASE gromacs:gcc-7:release:test-gmxapi: extends: - .gromacs:base:test - .gmxapi-extra-installs - .use-gcc7 stage: release-tests variables: BUILD_DIR: release-builds-gcc needs: - job: gromacs:gcc-7:release:configure-gmxapi artifacts: true - job: gromacs:gcc-7:release:build-gmxapi artifacts: true only: refs: - triggers - web - schedules variables: - $GROMACS_RELEASE gromacs:gcc-8:test: extends: - .gromacs:base:test - .use-gcc8 needs: - job: simple-build artifacts: false - job: gromacs:gcc-8:build - job: prepare-regressiontests except: variables: - $GROMACS_RELEASE gromacs:gcc-8:release:test: extends: - .gromacs:base:test - .use-gcc8 stage: release-tests variables: BUILD_DIR: release-builds-gcc needs: - job: gromacs:gcc-8:release:configure artifacts: true - job: gromacs:gcc-8:release:build artifacts: true only: refs: - triggers - web - schedules variables: - $GROMACS_RELEASE gromacs:gcc-8-cuda-10.2:test: variables: KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu" KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1 extends: - .gromacs:base:test - .use-cuda - .use-gcc8:cuda-10.2 variables: REGRESSIONTEST_PME_RANK_NUMBER: 0 REGRESSIONTEST_TOTAL_RANK_NUMBER: 2 REGRESSIONTEST_OMP_RANK_NUMBER: 1 needs: - job: simple-build artifacts: false - job: gromacs:gcc-8-cuda-10.2:build - job: prepare-regressiontests except: variables: - $GROMACS_RELEASE gromacs:clang-6:test: extends: - .gromacs:base:test - .use-clang6 variables: REGRESSIONTEST_OMP_RANK_NUMBER: 0 needs: - job: simple-build artifacts: false - job: gromacs:clang-6:build - job: prepare-regressiontests except: variables: - $GROMACS_RELEASE gromacs:clang-7:test: extends: - .gromacs:base:test - .use-clang7 needs: - job: simple-build artifacts: false - job: gromacs:clang-7:build - job: prepare-regressiontests except: variables: - $GROMACS_RELEASE gromacs:clang-7:release:test: extends: - .gromacs:base:test - .use-clang7 stage: release-tests variables: BUILD_DIR: release-builds-clang needs: - job: gromacs:clang-7:release:configure artifacts: true - job: gromacs:clang-7:release:build artifacts: true only: refs: - triggers - web - schedules variables: - $GROMACS_RELEASE gromacs:clang-7:test-gmxapi: extends: - .gromacs:base:test - .gmxapi-extra-installs - .use-clang7 needs: - job: simple-build artifacts: false - job: gromacs:clang-7:build-gmxapi - job: prepare-regressiontests except: variables: - $GROMACS_RELEASE gromacs:clang-7:release:test-gmxapi: extends: - .gromacs:base:test - .gmxapi-extra-installs - .use-clang7 stage: release-tests variables: BUILD_DIR: release-builds-clang needs: - job: gromacs:clang-7:release:configure-gmxapi artifacts: true - job: gromacs:clang-7:release:build-gmxapi artifacts: true only: refs: - triggers - web - schedules variables: - $GROMACS_RELEASE gromacs:clang-8:test: extends: - .gromacs:base:test - .use-clang8 needs: - job: simple-build artifacts: false - job: gromacs:clang-8:build - job: prepare-regressiontests except: variables: - $GROMACS_RELEASE gromacs:clang-8:release:test: extends: - .gromacs:base:test - .use-clang8 stage: release-tests variables: BUILD_DIR: release-builds-clang needs: - job: gromacs:clang-8:release:configure artifacts: true - job: gromacs:clang-8:release:build artifacts: true only: refs: - triggers - web - schedules variables: - $GROMACS_RELEASE