1 # Build, test, and install variously configured GROMACS installations.
3 # Initial build that always needs to pass before follow-up stages run
11 image: gromacs/cmake-3.15.7-llvm-9-openmpi-master
13 KUBERNETES_CPU_LIMIT: 8
14 KUBERNETES_CPU_REQUEST: 4
15 KUBERNETES_MEMORY_REQUEST: 8Gi
16 CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=None"
17 CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=ON"
18 CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
19 CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=Debug"
20 CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF"
21 CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF"
22 COMPILER_MAJOR_VERSION: 9
23 BUILD_DIR: simple-build
25 - echo $CMAKE_COMPILER_SCRIPT
26 - echo $CMAKE_EXTRA_OPTIONS
27 - echo $CMAKE_SIMD_OPTIONS
28 - echo $CMAKE_GPU_OPTIONS
29 - echo $CMAKE_MPI_OPTIONS
30 - echo $CMAKE_PRECISION_OPTIONS
31 - echo $CMAKE_BUILD_TYPE_OPTIONS
32 - echo $CMAKE_GMXAPI_OPTIONS
33 - if [[ -d $BUILD_DIR ]] ; then
34 echo "Cleaning up build directory" ;
35 rm -rf $BUILD_DIR && mkdir $BUILD_DIR ;
37 echo "Preparing new build directory" ;
42 -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
43 $CMAKE_COMPILER_SCRIPT
47 $CMAKE_PRECISION_OPTIONS
48 $CMAKE_BUILD_TYPE_OPTIONS
51 -DCMAKE_INSTALL_PREFIX=../$INSTALL_DIR -DGMX_COMPILER_WARNINGS=ON
52 2>&1 | tee cmakeLog.log
53 - awk '/CMake Warning/,/^--|^$/' cmakeLog.log | tee cmakeErrors.log
54 - if [ -s cmakeErrors.log ] ; then echo "Found CMake warning while processing build"; cat cmakeErrors.log ; exit 1; fi
55 - cmake --build . -- -j$KUBERNETES_CPU_LIMIT 2>&1 | tee buildLogFile.log
56 - cmake --build . --target tests -- -j$KUBERNETES_CPU_LIMIT 2>&1 | tee testBuildLogFile.log
57 - awk '/warning/,/warning.*generated|^$/' buildLogFile.log testBuildLogFile.log
58 | grep -v "CMake" | tee buildErrors.log || true
59 - grep "cannot be built" buildLogFile.log testBuildLogFile.log | tee -a buildErrors.log || true
60 - cmake --build . --target install 2>&1 | tee installBuildLogFile.log
61 - if [ -s buildErrors.log ] ; then echo "Found compiler warning during build"; cat buildErrors.log; exit 1; fi
62 - ctest -D ExperimentalTest --output-on-failure | tee ctestLog.log || true
63 - awk '/The following tests FAILED/,/^Errors while running CTest|^$/'
64 ctestLog.log | tee ctestErrors.log
65 - xsltproc $CI_PROJECT_DIR/scripts/CTest2JUnit.xsl Testing/`head -n 1 < Testing/TAG`/Test.xml > JUnitTestResults.xml
66 - if [ -s ctestErrors.log ] ; then
67 echo "Error during running ctest";
73 junit: $BUILD_DIR/JUnitTestResults.xml
79 # Jobs running in first pre-build stage
81 .gromacs:base:configure:
84 stage: configure-build
87 KUBERNETES_CPU_LIMIT: 1
88 KUBERNETES_CPU_REQUEST: 1
89 KUBERNETES_MEMORY_REQUEST: 2Gi
90 CMAKE_COMPILER_SCRIPT: ""
91 CMAKE_EXTRA_OPTIONS: ""
92 CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=AVX2_256"
93 CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=ON"
94 CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
95 CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=Debug"
96 CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF"
98 - echo $CMAKE_COMPILER_SCRIPT
99 - echo $CMAKE_EXTRA_OPTIONS
100 - echo $CMAKE_SIMD_OPTIONS
101 - echo $CMAKE_GPU_OPTIONS
102 - echo $CMAKE_MPI_OPTIONS
103 - echo $CMAKE_PRECISION_OPTIONS
104 - echo $CMAKE_BUILD_TYPE_OPTIONS
105 - echo $CMAKE_GMXAPI_OPTIONS
106 - if [[ -d $BUILD_DIR ]] ; then
107 rm -rf $BUILD_DIR && mkdir $BUILD_DIR ;
109 echo "Preparing new build directory" ;
114 -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
115 $CMAKE_COMPILER_SCRIPT
119 $CMAKE_PRECISION_OPTIONS
120 $CMAKE_BUILD_TYPE_OPTIONS
122 $CMAKE_GMXAPI_OPTIONS
123 -DCMAKE_INSTALL_PREFIX=../$INSTALL_DIR -DGMX_COMPILER_WARNINGS=ON
124 2>&1 | tee cmakeLog.log
125 - awk '/CMake Warning/,/^--|^$/' cmakeLog.log | tee cmakeErrors.log
126 - if [ -s cmakeErrors.log ] ; then echo "Found CMake warning while processing build"; cat cmakeErrors.log ; exit 1; fi
133 .gromacs:base:release:configure:
136 stage: release-configure
139 KUBERNETES_CPU_LIMIT: 1
140 KUBERNETES_CPU_REQUEST: 1
141 KUBERNETES_MEMORY_REQUEST: 2Gi
142 CMAKE_COMPILER_SCRIPT: ""
143 CMAKE_EXTRA_OPTIONS: ""
144 CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=AVX2_256"
145 CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=ON"
146 CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
147 CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert"
148 CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF"
149 CMAKE_REGRESSIONTEST_OPTIONS: "-DREGRESSIONTEST_PATH=../\\$RELEASE_REGRESSIONTESTS"
150 RELEASE_BUILD_DIR: release-builds
151 RELEASE_SOURCE: release-source-from-tarball
152 RELEASE_REGRESSIONTESTS: release-regressiontests-from-tarball
154 - VERSION=`cat version.json |
155 python3 -c "import json,sys; print(json.load(sys.stdin)['version'])"`
156 - if [[ $GROMACS_RELEASE != "true" ]] ; then
157 VERSION=$VERSION-dev ;
159 - SOURCENAME=gromacs-$VERSION
160 - SOURCETARBALL=$SOURCENAME.tar.gz
161 - REGTESTNAME=regressiontests-$VERSION
162 - REGTESTTARBALL=$REGTESTNAME.tar.gz
163 - echo "$SOURCETARBALL"
164 - echo "$REGTESTTARBALL"
165 - RELEASE_TARBALLS=release-tarballs
166 - rm -rf $RELEASE_TARBALLS $RELEASE_SOURCE $RELEASE_REGRESSIONTESTS && mkdir $RELEASE_TARBALLS
167 - mv $SOURCETARBALL $RELEASE_TARBALLS
168 - mv $REGTESTTARBALL $RELEASE_TARBALLS
169 - cd $RELEASE_TARBALLS
170 # We rename the source and regressiontest directories
171 # to have names for them that don't change for different versions.
172 - tar -xf $SOURCETARBALL
173 - mv $SOURCENAME ../$RELEASE_SOURCE
174 - tar -xf $REGTESTTARBALL
175 - mv $REGTESTNAME ../$RELEASE_REGRESSIONTESTS
176 - rm $SOURCETARBALL $REGTESTTARBALL
178 - echo $CMAKE_COMPILER_SCRIPT
179 - echo $CMAKE_EXTRA_OPTIONS
180 - echo $CMAKE_SIMD_OPTIONS
181 - echo $CMAKE_GPU_OPTIONS
182 - echo $CMAKE_MPI_OPTIONS
183 - echo $CMAKE_PRECISION_OPTIONS
184 - echo $CMAKE_BUILD_TYPE_OPTIONS
185 - echo $CMAKE_GMXAPI_OPTIONS
186 - if [[ -d $RELEASE_BUILD_DIR ]] ; then
187 echo "Cleaning up build directory" ;
188 rm -rf $RELEASE_BUILD_DIR && mkdir $RELEASE_BUILD_DIR ;
190 echo "Preparing new build directory" ;
191 mkdir $RELEASE_BUILD_DIR ;
193 - cd $RELEASE_BUILD_DIR
194 - cmake ../$RELEASE_SOURCE/
195 -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
196 $CMAKE_COMPILER_SCRIPT
200 $CMAKE_PRECISION_OPTIONS
201 $CMAKE_BUILD_TYPE_OPTIONS
203 $CMAKE_GMXAPI_OPTIONS
204 $CMAKE_REGRESSIONTEST_OPTIONS
205 -DCMAKE_INSTALL_PREFIX=../$INSTALL_DIR
206 2>&1 | tee cmakeLog.log
207 - awk '/CMake Warning/,/^--|^$/' cmakeLog.log | tee cmakeErrors.log
208 - if [ -s cmakeErrors.log ] ; then echo "Found CMake warning while processing build"; cat cmakeErrors.log ; exit 1; fi
214 - $RELEASE_REGRESSIONTESTS
217 # Templates for configuration stage
219 gromacs:gcc-7:configure:
221 - .gromacs:base:configure
224 - .rules:merge-requests
225 image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi-master
227 CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=AVX2_256"
228 CMAKE_EXTRA_OPTIONS: "-DGMX_EXTERNAL_CLFFT=ON"
229 COMPILER_MAJOR_VERSION: 7
231 gromacs:gcc-8-cuda-11.0:configure:
233 - .gromacs:base:configure
236 - .rules:merge-requests
237 image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master
239 CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=SSE4.1"
240 COMPILER_MAJOR_VERSION: 8
242 gromacs:clang-TSAN:configure:
244 - .gromacs:base:configure
246 - .rules:merge-requests
247 image: gromacs/cmake-3.13.0-llvm-8-tsan-master
249 COMPILER_MAJOR_VERSION: 8
250 CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=TSAN"
252 gromacs:clang-8:configure:
254 - .gromacs:base:configure
256 - .rules:merge-requests
257 image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020
259 COMPILER_MAJOR_VERSION: 8
261 gromacs:clang-9-mpi:configure:
263 - .gromacs:base:configure
266 - .rules:merge-requests
267 image: gromacs/cmake-3.15.7-llvm-9-openmpi-master
269 COMPILER_MAJOR_VERSION: 9
270 CMAKE_PRECISION_OPTIONS: -DGMX_DOUBLE=ON
272 gromacs:clang-static-analyzer:configure:
274 - .gromacs:base:configure
276 - .rules:merge-requests
277 image: gromacs/cmake-3.13.0-llvm-8-tsan-master
279 CMAKE_COMPILER_SCRIPT: "-DCMAKE_CXX_COMPILER=/usr/local/libexec/c++-analyzer -DCMAKE_C_COMPILER=gcc"
280 CMAKE_EXTRA_OPTIONS: "-DGMX_CLANG_ANALYZER=ON -DGMX_OPENMP=OFF -DGMX_USE_RDTSCP=OFF -DGMX_FFT_LIBRARY=fftpack -DGMX_DEVELOPER_BUILD=ON"
281 CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=None"
283 gromacs:clang-ASAN:configure:
285 - .gromacs:base:configure
287 - .rules:merge-requests
288 image: gromacs/cmake-3.13.0-llvm-8-tsan-master
290 COMPILER_MAJOR_VERSION: 8
291 CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=ASAN"
293 gromacs:oneapi-2021.1-beta08:configure:
295 - .gromacs:base:configure
297 - .rules:merge-requests
298 image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master
300 COMPILER_MAJOR_VERSION: 2021
302 # Necessary to override gitlab default 'set -e' which breaks Intel's
305 - source /opt/intel/oneapi/setvars.sh
307 gromacs:clang-UBSAN:configure:
309 - .gromacs:base:configure
311 - .rules:merge-requests
312 image: gromacs/cmake-3.13.0-llvm-8-tsan-master
314 COMPILER_MAJOR_VERSION: 8
315 CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=UBSAN"
317 gromacs:gcc-8-cuda-11.0:release:configure:
319 - .gromacs:base:release:configure
323 - .rules:nightly-only-for-release
324 image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master
326 COMPILER_MAJOR_VERSION: 8
327 RELEASE_BUILD_DIR: release-builds-gcc
328 CMAKE_EXTRA_OPTIONS: "-DGMX_BUILD_MDRUN_ONLY=ON"
329 CMAKE_BUILD_TYPE_OPTIONS : "-DCMAKE_BUILD_TYPE=RelWithAssert"
330 CMAKE_REGRESSIONTEST_OPTIONS: ""
333 - regressiontests:package
334 - prepare-release-version
336 gromacs:gcc-7:release:configure:
338 - .gromacs:base:release:configure
340 - .rules:nightly-only-for-release
341 image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi-master
343 COMPILER_MAJOR_VERSION: 7
344 RELEASE_BUILD_DIR: release-builds-gcc
345 CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert"
348 - regressiontests:package
349 - prepare-release-version
351 gromacs:clang-9:release:configure:
353 - .gromacs:base:release:configure
356 - .rules:nightly-only-for-release
357 image: gromacs/cmake-3.15.7-llvm-9-openmpi-master
359 COMPILER_MAJOR_VERSION: 9
360 RELEASE_BUILD_DIR: release-builds-clang
361 CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=ON"
362 CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert"
365 - regressiontests:package
366 - prepare-release-version
368 gromacs:clang-8-cuda-10.1:release:configure:
370 - .gromacs:base:release:configure
373 - .rules:nightly-only-for-release
374 image: gromacs/cmake-3.15.7-llvm-8-cuda-10.1-openmpi-master
376 COMPILER_MAJOR_VERSION: 8
377 RELEASE_BUILD_DIR: release-builds-clang
378 CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert"
380 gromacs:oneapi-2021.1-beta08:release:configure:
382 - .gromacs:base:release:configure
384 - .rules:nightly-only-for-release
385 image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master
387 COMPILER_MAJOR_VERSION: 2021
388 RELEASE_BUILD_DIR: release-builds-oneapi
390 # Necessary to override gitlab default 'set -e' which breaks Intel's
393 - source /opt/intel/oneapi/setvars.sh
395 # Jobs running during build stage
401 - cmake --build . -- -j$KUBERNETES_CPU_LIMIT 2>&1 | tee buildLogFile.log
402 - cmake --build . --target tests -- -j$KUBERNETES_CPU_LIMIT 2>&1 | tee testBuildLogFile.log
403 - awk '/warning/,/warning.*generated|^$/' buildLogFile.log testBuildLogFile.log
404 | grep -v "CMake" | tee buildErrors.log || true
405 - grep "cannot be built" buildLogFile.log testBuildLogFile.log | tee -a buildErrors.log || true
406 - cmake --build . --target install 2>&1 | tee installBuildLogFile.log
407 - if [ -s buildErrors.log ] ; then echo "Found compiler warning during build"; cat buildErrors.log; exit 1; fi
408 - for file in `find . -mindepth 1 -name "*.o" ! -type l` ; do echo $file ; rm $file ; done 2>&1 > remove-build-objects.log
416 .gromacs:static-analyzer-build:
420 - scan-build -o scan_html cmake --build . -- -j8 2>&1 | tee buildLogFile.log
421 - awk '/warning/,/warning.*generated|^$/' buildLogFile.log
422 | grep -v "CMake" | tee buildErrors.log || true
423 - grep "cannot be built" buildLogFile.log | tee -a buildErrors.log || true
424 - if [ -s buildErrors.log ] ; then echo "Found compiler warning during build"; cat buildErrors.log; exit 1; fi
429 - $BUILD_DIR/scan_html
434 - .gromacs:base:build
435 - .before_script:default
437 - .rules:merge-requests
438 image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi-master
440 - job: gromacs:gcc-7:configure
443 gromacs:gcc-8-cuda-11.0:build:
446 - .gromacs:base:build
447 - .before_script:default
449 - .rules:merge-requests
450 image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master
452 - job: gromacs:gcc-8-cuda-11.0:configure
454 gromacs:clang-TSAN:build:
457 - .gromacs:base:build
460 - .rules:merge-requests
461 image: gromacs/cmake-3.13.0-llvm-8-tsan-master
463 - job: gromacs:clang-TSAN:configure
465 gromacs:clang-ASAN:build:
468 - .gromacs:base:build
471 - .rules:merge-requests
472 image: gromacs/cmake-3.13.0-llvm-8-tsan-master
476 - job: gromacs:clang-ASAN:configure
478 gromacs:clang-UBSAN:build:
481 - .gromacs:base:build
484 - .rules:merge-requests
485 image: gromacs/cmake-3.13.0-llvm-8-tsan-master
489 - job: gromacs:clang-UBSAN:configure
491 gromacs:clang-static-analyzer:build:
494 - .gromacs:static-analyzer-build
497 - .rules:merge-requests
498 image: gromacs/cmake-3.13.0-llvm-8-tsan-master
502 - job: gromacs:clang-static-analyzer:configure
504 gromacs:clang-8:build:
507 - .gromacs:base:build
508 - .before_script:default
510 - .rules:merge-requests
511 image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020
513 - job: gromacs:clang-8:configure
515 gromacs:oneapi-2021.1-beta08:build:
518 - .gromacs:base:build
520 - .before_script:default
521 - .rules:merge-requests
522 image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master
524 - job: gromacs:oneapi-2021.1-beta08:configure
526 # Necessary to override gitlab default 'set -e' which breaks Intel's
529 - source /opt/intel/oneapi/setvars.sh
531 gromacs:clang-9-mpi:build:
534 - .gromacs:base:build
535 - .before_script:default
537 - .rules:merge-requests
538 image: gromacs/cmake-3.15.7-llvm-9-openmpi-master
540 - job: gromacs:clang-9-mpi:configure
542 gromacs:gcc-8-cuda-11.0:release:build:
545 - .gromacs:base:build
546 - .before_script:default
548 - .rules:nightly-only-for-release
551 BUILD_DIR: release-builds-gcc
552 image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master
554 - job: gromacs:gcc-8-cuda-11.0:release:configure
556 gromacs:gcc-7:release:build:
559 - .gromacs:base:build
560 - .before_script:default
562 - .rules:nightly-only-for-release
565 BUILD_DIR: release-builds-gcc
566 image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi-master
568 - job: gromacs:gcc-7:release:configure
570 gromacs:clang-9:release:build:
573 - .gromacs:base:build
574 - .before_script:default
576 - .rules:nightly-only-for-release
579 BUILD_DIR: release-builds-clang
580 image: gromacs/cmake-3.15.7-llvm-9-openmpi-master
582 - job: gromacs:clang-9:release:configure
584 gromacs:clang-8-cuda-10.1:release:build:
587 - .gromacs:base:build
588 - .before_script:default
590 - .rules:nightly-only-for-release
593 BUILD_DIR: release-builds-clang
594 image: gromacs/cmake-3.15.7-llvm-8-cuda-10.1-openmpi-master
596 - job: gromacs:clang-8-cuda-10.1:release:configure
598 gromacs:oneapi-2021.1-beta08:release:build:
601 - .gromacs:base:build
603 - .before_script:default
605 - .rules:nightly-only-for-release
608 BUILD_DIR: release-builds-oneapi
609 COMPILER_MAJOR_VERSION: 2021
610 image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master
612 - job: gromacs:oneapi-2021.1-beta08:release:configure
614 # Necessary to override gitlab default 'set -e' which breaks Intel's
617 - source /opt/intel/oneapi/setvars.sh
619 # Jobs running during test stage
629 CTEST_RUN_MODE: "ExperimentalTest"
632 - export UBSAN_OPTIONS=halt_on_error=1:print_stacktrace=1:suppressions=$CI_PROJECT_DIR/admin/ubsan-suppressions.txt
633 # Needed to run MPI enabled code in the docker images, until we set up different users
634 - export OMPI_ALLOW_RUN_AS_ROOT=1
635 - export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
636 - export ASAN_OPTIONS="check_initialization_order=1:detect_invalid_pointer_pairs=1:strict_init_order=true:strict_string_checks=true:detect_stack_use_after_return=true"
637 - ctest -D $CTEST_RUN_MODE --output-on-failure | tee ctestLog.log || true
638 - awk '/The following tests FAILED/,/^Errors while running CTest|^$/'
639 ctestLog.log | tee ctestErrors.log
640 - xsltproc $CI_PROJECT_DIR/scripts/CTest2JUnit.xsl Testing/`head -n 1 < Testing/TAG`/*.xml > JUnitTestResults.xml
641 - if [ -s ctestErrors.log ] ; then
642 echo "Error during running ctest";
648 junit: $BUILD_DIR/JUnitTestResults.xml
655 .gromacs:base:regressiontest:
659 KUBERNETES_CPU_LIMIT: 4
660 KUBERNETES_CPU_REQUEST: 4
661 KUBERNETES_MEMORY_REQUEST: 4Gi
662 REGRESSIONTEST_TOTAL_RANK_NUMBER: 4
663 REGRESSIONTEST_OMP_RANK_NUMBER: 2
664 REGRESSIONTEST_PME_RANK_NUMBER: 1
665 REGRESSIONTEST_MPI_RUN_COMMAND: ""
666 REGRESSIONTEST_DOUBLE: ""
667 REGRESSIONTEST_PARALLEL: "-nt"
673 - export LSAN_OPTIONS="suppressions=$CI_PROJECT_DIR/admin/lsan-suppressions.txt:print_suppressions=0"
674 - export ASAN_OPTIONS="check_initialization_order=1:detect_invalid_pointer_pairs=1:strict_init_order=true:strict_string_checks=true:detect_stack_use_after_return=true"
675 # Needed to run MPI enabled code in the docker images, until we set up different users
676 - export OMPI_ALLOW_RUN_AS_ROOT=1
677 - export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
678 - tar xzf gmx-regressiontests.tar.gz
679 - source $INSTALL_DIR/bin/GMXRC
681 - perl gmxtest.pl $REGRESSIONTEST_PARALLEL $REGRESSIONTEST_TOTAL_RANK_NUMBER -ntomp $REGRESSIONTEST_OMP_RANK_NUMBER -npme $REGRESSIONTEST_PME_RANK_NUMBER $REGRESSIONTEST_DOUBLE $REGRESSIONTEST_MPI_RUN_COMMAND -xml all
684 - regressiontests/gmxtest.xml
691 - .rules:merge-requests
692 image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi-master
694 KUBERNETES_EXTENDED_RESOURCE_NAME: "amd.com/gpu"
695 KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
699 - job: gromacs:gcc-7:build
701 gromacs:gcc-8-cuda-11.0:test:
704 - .rules:merge-requests
705 image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master
707 KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
708 KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
712 - job: gromacs:gcc-8-cuda-11.0:build
714 gromacs:clang-8:test:
717 - .rules:merge-requests
718 image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020
720 - job: gromacs:clang-8:build
722 gromacs:clang-TSAN:test:
725 - .rules:merge-requests
726 image: gromacs/cmake-3.13.0-llvm-8-tsan-master
728 - job: gromacs:clang-TSAN:build
730 gromacs:clang-ASAN:test:
734 - .rules:merge-requests
735 image: gromacs/cmake-3.13.0-llvm-8-tsan-master
737 CTEST_RUN_MODE: "ExperimentalMemCheck"
741 - job: gromacs:clang-ASAN:build
743 gromacs:clang-UBSAN:test:
747 - .rules:merge-requests
748 image: gromacs/cmake-3.13.0-llvm-8-tsan-master
752 - job: gromacs:clang-UBSAN:build
754 gromacs:oneapi-2021.1-beta08:test:
757 - .rules:merge-requests
758 image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master
760 - job: gromacs:oneapi-2021.1-beta08:build
762 # Necessary to override gitlab default 'set -e' which breaks Intel's
765 - source /opt/intel/oneapi/setvars.sh
767 gromacs:clang-9-mpi:test:
770 - .rules:merge-requests
771 image: gromacs/cmake-3.15.7-llvm-9-openmpi-master
775 - job: gromacs:clang-9-mpi:build
777 gromacs:gcc-7:regressiontest:
779 - .gromacs:base:regressiontest
780 - .rules:merge-requests
781 image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi-master
783 KUBERNETES_EXTENDED_RESOURCE_NAME: "amd.com/gpu"
784 KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
785 REGRESSIONTEST_PME_RANK_NUMBER: 0
786 REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
787 REGRESSIONTEST_OMP_RANK_NUMBER: 1
791 - job: gromacs:gcc-7:build
792 - job: regressiontests:prepare
794 gromacs:gcc-8-cuda-11.0:regressiontest:
796 - .gromacs:base:regressiontest
797 - .rules:merge-requests
798 image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master
800 KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
801 KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
802 REGRESSIONTEST_PME_RANK_NUMBER: 0
803 REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
804 REGRESSIONTEST_OMP_RANK_NUMBER: 1
808 - job: gromacs:gcc-8-cuda-11.0:build
809 - job: regressiontests:prepare
811 gromacs:clang-8:regressiontest:
813 - .gromacs:base:regressiontest
814 - .rules:merge-requests
815 image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020
819 - job: gromacs:clang-8:build
820 - job: regressiontests:prepare
822 gromacs:clang-TSAN:regressiontest:
824 - .gromacs:base:regressiontest
825 - .rules:merge-requests
826 image: gromacs/cmake-3.13.0-llvm-8-tsan-master
830 - job: gromacs:clang-TSAN:build
831 - job: regressiontests:prepare
833 gromacs:clang-ASAN:regressiontest:
835 - .gromacs:base:regressiontest
837 - .rules:merge-requests
838 image: gromacs/cmake-3.13.0-llvm-8-tsan-master
842 - job: gromacs:clang-ASAN:build
843 - job: regressiontests:prepare
845 gromacs:clang-9:regressiontest:
847 - .gromacs:base:regressiontest
848 - .rules:merge-requests
849 image: gromacs/cmake-3.15.7-llvm-9-openmpi-master
851 REGRESSIONTEST_DOUBLE: "-double"
852 REGRESSIONTEST_PARALLEL: "-np"
856 - job: gromacs:clang-9-mpi:build
857 - job: regressiontests:prepare
859 gromacs:oneapi-2021.1-beta08:regressiontest:
861 - .gromacs:base:regressiontest
862 - .rules:merge-requests
863 image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master
865 - job: gromacs:oneapi-2021.1-beta08:build
866 - job: regressiontests:prepare
868 # Necessary to override gitlab default 'set -e' which breaks Intel's
871 - source /opt/intel/oneapi/setvars.sh
873 gromacs:gcc-8-cuda-11.0:release:test:
876 - .rules:nightly-only-for-release
878 image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master
880 KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
881 KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
882 BUILD_DIR: release-builds-gcc
886 - job: gromacs:gcc-8-cuda-11.0:release:configure
887 - job: gromacs:gcc-8-cuda-11.0:release:build
889 gromacs:gcc-7:release:test:
892 - .rules:nightly-only-for-release
894 image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi-master
896 BUILD_DIR: release-builds-gcc
898 - job: gromacs:gcc-7:release:configure
899 - job: gromacs:gcc-7:release:build
901 gromacs:clang-9:release:test:
904 - .rules:nightly-only-for-release
906 image: gromacs/cmake-3.15.7-llvm-9-openmpi-master
908 BUILD_DIR: release-builds-clang
910 - job: gromacs:clang-9:release:configure
911 - job: gromacs:clang-9:release:build
913 gromacs:clang-8-cuda-10.1:release:test:
916 - .rules:nightly-only-for-release
918 image: gromacs/cmake-3.15.7-llvm-8-cuda-10.1-openmpi-master
920 KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
921 KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
922 BUILD_DIR: release-builds-clang
926 - job: gromacs:clang-8-cuda-10.1:release:configure
927 - job: gromacs:clang-8-cuda-10.1:release:build
929 gromacs:oneapi-2021.1-beta08:release:test:
932 - .rules:nightly-only-for-release
934 image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master
936 BUILD_DIR: release-builds-oneapi
938 - job: gromacs:oneapi-2021.1-beta08:release:configure
939 - job: gromacs:oneapi-2021.1-beta08:release:build
941 # Necessary to override gitlab default 'set -e' which breaks Intel's
944 - source /opt/intel/oneapi/setvars.sh
946 gromacs:gcc-7:release:regressiontest:
948 - .gromacs:base:regressiontest
949 - .rules:nightly-only-for-release
951 image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi-master
953 BUILD_DIR: release-builds-gcc
957 - job: gromacs:gcc-7:release:build
958 - job: regressiontests:package
960 gromacs:clang-9:release:regressiontest:
962 - .gromacs:base:regressiontest
963 - .rules:nightly-only-for-release
965 image: gromacs/cmake-3.15.7-llvm-9-openmpi-master
967 BUILD_DIR: release-builds-clang
968 REGRESSIONTEST_DOUBLE: "-double"
969 REGRESSIONTEST_PARALLEL: "-np"
973 - job: gromacs:clang-9:release:build
974 - job: regressiontests:package
976 gromacs:clang-8-cuda-10.1:release:regressiontest:
978 - .gromacs:base:regressiontest
979 - .rules:nightly-only-for-release
981 image: gromacs/cmake-3.15.7-llvm-8-cuda-10.1-openmpi-master
983 BUILD_DIR: release-builds-clang
984 KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
985 KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
986 REGRESSIONTEST_PME_RANK_NUMBER: 0
987 REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
988 REGRESSIONTEST_OMP_RANK_NUMBER: 1
992 - job: gromacs:clang-8-cuda-10.1:release:build
993 - job: regressiontests:package
995 gromacs:oneapi-2021.1-beta08:release:regressiontest:
997 - .gromacs:base:regressiontest
998 - .rules:nightly-only-for-release
1000 image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master
1002 BUILD_DIR: release-builds-oneapi
1003 REGRESSIONTEST_PME_RANK_NUMBER: 0
1004 REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
1005 REGRESSIONTEST_OMP_RANK_NUMBER: 1
1007 - job: gromacs:oneapi-2021.1-beta08:release:build
1008 - job: regressiontests:package
1010 # Necessary to override gitlab default 'set -e' which breaks Intel's
1013 - source /opt/intel/oneapi/setvars.sh