2 .simple-build-template:
3 # Docker images are from dockerhub, user eriklindahl
5 image: biophysics/gcc-gromacs
7 KUBERNETES_CPU_LIMIT: 8
8 KUBERNETES_CPU_REQUEST: 4
9 KUBERNETES_MEMORY_LIMIT: 8Gi
10 CMAKE_COMPILER_SCRIPT: ""
11 CMAKE_EXTRA_OPTIONS: ""
12 CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=None"
13 CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=ON"
14 CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
15 CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=Debug"
16 CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF"
17 CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF"
20 - echo $CMAKE_COMPILER_SCRIPT
21 - echo $CMAKE_EXTRA_OPTIONS
22 - echo $CMAKE_SIMD_OPTIONS
23 - echo $CMAKE_GPU_OPTIONS
24 - echo $CMAKE_MPI_OPTIONS
25 - echo $CMAKE_PRECISION_OPTIONS
26 - echo $CMAKE_BUILD_TYPE_OPTIONS
27 - echo $CMAKE_GMXAPI_OPTIONS
28 - if [[ -d $BUILD_DIR ]] ; then
29 echo "Cleaning up build directory" ;
30 rm -rf $BUILD_DIR && mkdir $BUILD_DIR ;
32 echo "Preparing new build directory" ;
37 -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
38 $CMAKE_COMPILER_SCRIPT
42 $CMAKE_PRECISION_OPTIONS
43 $CMAKE_BUILD_TYPE_OPTIONS
46 -DCMAKE_INSTALL_PREFIX=../$INSTALL_DIR -DGMX_COMPILER_WARNINGS=ON
47 2>&1 | tee cmakeLog.log
48 - awk '/CMake Warning/,/^--|^$/' cmakeLog.log | tee cmakeErrors.log
49 - if [ -s cmakeErrors.log ] ; then echo "Found CMake warning while processing build"; cat cmakeErrors.log ; exit 1; fi
50 - cmake --build . -- -j8 2>&1 | tee buildLogFile.log
51 - cmake --build . --target tests -- -j8 2>&1 | tee testBuildLogFile.log
52 - awk '/warning/,/warning.*generated|^$/' buildLogFile.log testBuildLogFile.log
53 | grep -v "CMake" | tee buildErrors.log || true
54 - grep "cannot be built" buildLogFile.log testBuildLogFile.log | tee -a buildErrors.log || true
55 - cmake --build . --target install 2>&1 | tee installBuildLogFile.log
56 - if [ -s buildErrors.log ] ; then echo "Found compiler warning during build"; cat buildErrors.log; exit 1; fi
57 - ctest -D ExperimentalTest --output-on-failure | tee ctestLog.log || true
58 - awk '/The following tests FAILED/,/^Errors while running CTest|^$/'
59 ctestLog.log | tee ctestErrors.log
60 - xsltproc scripts/CTest2JUnit.xsl Testing/`head -n 1 < Testing/TAG`/Test.xml > JUnitTestResults.xml
61 - if [ -s ctestErrors.log ] ; then
62 echo "Error during running ctest";
68 junit: $BUILD_DIR/JUnitTestResults.xml
74 # Initial build that always needs to pass before follow-up stages run
77 - .simple-build-template
82 BUILD_DIR: simple-build
87 # Jobs running in first pre-build stage
88 .configure-build-template:
89 # Docker image uploaded to dockerhub by user eriklindahl
90 # TODO: Get DockerFile for admin/dockerfiles
91 stage: configure-build
92 image: biophysics/gcc-gromacs
94 KUBERNETES_CPU_LIMIT: 1
95 KUBERNETES_CPU_REQUEST: 1
96 KUBERNETES_MEMORY_LIMIT: 2Gi
97 CMAKE_COMPILER_SCRIPT: ""
98 CMAKE_EXTRA_OPTIONS: ""
99 CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=AUTO"
100 CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=ON"
101 CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
102 CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=Debug"
103 CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF"
104 CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF"
107 - echo $CMAKE_COMPILER_SCRIPT
108 - echo $CMAKE_EXTRA_OPTIONS
109 - echo $CMAKE_SIMD_OPTIONS
110 - echo $CMAKE_GPU_OPTIONS
111 - echo $CMAKE_MPI_OPTIONS
112 - echo $CMAKE_PRECISION_OPTIONS
113 - echo $CMAKE_BUILD_TYPE_OPTIONS
114 - echo $CMAKE_GMXAPI_OPTIONS
115 - if [[ -d $BUILD_DIR ]] ; then
116 rm -rf $BUILD_DIR && mkdir $BUILD_DIR ;
118 echo "Preparing new build directory" ;
123 -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
124 $CMAKE_COMPILER_SCRIPT
128 $CMAKE_PRECISION_OPTIONS
129 $CMAKE_BUILD_TYPE_OPTIONS
131 $CMAKE_GMXAPI_OPTIONS
132 -DCMAKE_INSTALL_PREFIX=../$INSTALL_DIR -DGMX_COMPILER_WARNINGS=ON
133 2>&1 | tee cmakeLog.log
134 - awk '/CMake Warning/,/^--|^$/' cmakeLog.log | tee cmakeErrors.log
135 - if [ -s cmakeErrors.log ] ; then echo "Found CMake warning while processing build"; cat cmakeErrors.log ; exit 1; fi
142 .configure-build-release-template:
143 # Dockerfiles are from dockerhub, user eriklindahl
144 # image in admin/dockerimages/ci-docs-py27
145 stage: release-configure
146 image: biophysics/gcc-gromacs
148 KUBERNETES_CPU_LIMIT: 1
149 KUBERNETES_CPU_REQUEST: 1
150 KUBERNETES_MEMORY_LIMIT: 2Gi
151 CMAKE_COMPILER_SCRIPT: ""
152 CMAKE_EXTRA_OPTIONS: ""
153 CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=AUTO"
154 CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=ON"
155 CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
156 CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert"
157 CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF"
158 CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF"
159 RELEASE_BUILD_DIR: release-builds
160 RELEASE_SOURCE: release-source-from-tarball
161 RELEASE_REGRESSIONTESTS: release-regressiontests-from-tarball
171 - VERSION=`cat version.json |
172 python3 -c "import json,sys; print(json.load(sys.stdin)['version'])"`
173 - if [[ $GROMACS_RELEASE != "true" ]] ; then
174 VERSION=$VERSION-dev ;
176 - SOURCENAME=gromacs-$VERSION
177 - SOURCETARBALL=$SOURCENAME.tar.gz
178 - REGTESTNAME=regressiontests-$VERSION
179 - REGTESTTARBALL=$REGTESTNAME.tar.gz
180 - echo "$SOURCETARBALL"
181 - echo "$REGTESTTARBALL"
182 - RELEASE_TARBALLS=release-tarballs
183 - rm -rf $RELEASE_TARBALLS $RELEASE_SOURCE $RELEASE_REGRESSIONTESTS && mkdir $RELEASE_TARBALLS
184 - mv $SOURCETARBALL $RELEASE_TARBALLS
185 - mv $REGTESTTARBALL $RELEASE_TARBALLS
186 - cd $RELEASE_TARBALLS
187 # We rename the source and regressiontest directories
188 # to have names for them that don't change for different versions.
189 - tar -xf $SOURCETARBALL
190 - mv $SOURCENAME ../$RELEASE_SOURCE
191 - tar -xf $REGTESTTARBALL
192 - mv $REGTESTNAME ../$RELEASE_REGRESSIONTESTS
193 - rm $SOURCETARBALL $REGTESTTARBALL
195 - echo $CMAKE_COMPILER_SCRIPT
196 - echo $CMAKE_EXTRA_OPTIONS
197 - echo $CMAKE_SIMD_OPTIONS
198 - echo $CMAKE_GPU_OPTIONS
199 - echo $CMAKE_MPI_OPTIONS
200 - echo $CMAKE_PRECISION_OPTIONS
201 - echo $CMAKE_BUILD_TYPE_OPTIONS
202 - echo $CMAKE_GMXAPI_OPTIONS
203 - if [[ -d $RELEASE_BUILD_DIR ]] ; then
204 echo "Cleaning up build directory" ;
205 rm -rf $RELEASE_BUILD_DIR && mkdir $RELEASE_BUILD_DIR ;
207 echo "Preparing new build directory" ;
208 mkdir $RELEASE_BUILD_DIR ;
210 - cd $RELEASE_BUILD_DIR
211 - cmake ../$RELEASE_SOURCE/
212 -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
213 $CMAKE_COMPILER_SCRIPT
217 $CMAKE_PRECISION_OPTIONS
218 $CMAKE_BUILD_TYPE_OPTIONS
220 $CMAKE_GMXAPI_OPTIONS
221 "-DREGRESSIONTEST_PATH=../$RELEASE_REGRESSIONTESTS"
222 -DCMAKE_INSTALL_PREFIX=../$INSTALL_DIR -DGMX_COMPILER_WARNINGS=ON
223 2>&1 | tee cmakeLog.log
224 - awk '/CMake Warning/,/^--|^$/' cmakeLog.log | tee cmakeErrors.log
225 - if [ -s cmakeErrors.log ] ; then echo "Found CMake warning while processing build"; cat cmakeErrors.log ; exit 1; fi
231 - $RELEASE_REGRESSIONTESTS
234 .configure-extends-template:
236 - .configure-build-template
240 .configure-release-extends-template:
242 - .configure-build-release-template
246 # Templates for configuration stage
249 - .configure-extends-template
251 .configure-gcc-release:
253 - .configure-release-extends-template
271 configure-gcc-7-release:
273 - .configure-gcc-release
277 RELEASE_BUILD_DIR: release-builds-gcc
286 - package-archive-release
287 - package-regressiontests-release
288 - prepare-release-version
290 configure-gcc-7-simd-sse41:
298 CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=SSE4.1"
303 configure-gcc-7-double:
311 CMAKE_PRECISION_OPTIONS: -DGMX_DOUBLE=ON
316 configure-gcc-7-double-release:
318 - .configure-gcc-release
322 CMAKE_PRECISION_OPTIONS: -DGMX_DOUBLE=ON
323 RELEASE_BUILD_DIR: release-builds-gcc
332 - package-archive-release
333 - package-regressiontests-release
334 - prepare-release-version
336 configure-gcc-7-gmxapi:
339 - .configure-gmxapi-template
348 configure-gcc-7-gmxapi-release:
350 - .configure-gcc-release
351 - .configure-gmxapi-template
355 RELEASE_BUILD_DIR: release-builds-gcc
364 - package-archive-release
365 - package-regressiontests-release
366 - prepare-release-version
379 configure-gcc-8-release:
381 - .configure-gcc-release
385 RELEASE_BUILD_DIR: release-builds-gcc
394 - package-archive-release
395 - package-regressiontests-release
396 - prepare-release-version
398 configure-gcc-8-cuda-10.2:
400 - .configure-gcc-cuda
401 - .use-gcc8:cuda-10.2
411 - .configure-extends-template
413 .configure-clang-release:
415 - .configure-release-extends-template
417 # For version of clang before 7, we need to always provide the full version
418 # Use something like this instead in the download script:
419 # APT_COMPILER_VERSION=$(($COMPILER_MAJOR_VERSION < 7 ? "${COMPILER_MAJOR_VERSION}.0" : $COMPILER_MAJOR_VERSION))
428 COMPILER_MAJOR_VERSION: "6.0"
429 CMAKE_MPI_OPTIONS: -DGMX_OPENMP=OFF
445 configure-clang-7-release:
447 - .configure-clang-release
451 RELEASE_BUILD_DIR: release-builds-clang
460 - package-archive-release
461 - package-regressiontests-release
462 - prepare-release-version
464 configure-clang-7-gmxapi:
467 - .configure-gmxapi-template
476 configure-clang-7-gmxapi-release:
478 - .configure-clang-release
479 - .configure-gmxapi-template
483 RELEASE_BUILD_DIR: release-builds-clang
492 - package-archive-release
493 - package-regressiontests-release
494 - prepare-release-version
507 configure-clang-8-release:
509 - .configure-clang-release
513 RELEASE_BUILD_DIR: release-builds-clang
522 - package-archive-release
523 - package-regressiontests-release
524 - prepare-release-version
526 # Jobs running during build stage
528 .binary-build-template:
529 # Dockerfiles are from dockerhub, user eriklindahl
530 # image in admin/dockerimages/ci-docs-py27
532 image: biophysics/gcc-gromacs
537 - cmake --build . -- -j8 2>&1 | tee buildLogFile.log
538 - cmake --build . --target tests -- -j8 2>&1 | tee testBuildLogFile.log
539 - awk '/warning/,/warning.*generated|^$/' buildLogFile.log testBuildLogFile.log
540 | grep -v "CMake" | tee buildErrors.log || true
541 - grep "cannot be built" buildLogFile.log testBuildLogFile.log | tee -a buildErrors.log || true
542 - cmake --build . --target install 2>&1 | tee installBuildLogFile.log
543 - if [ -s buildErrors.log ] ; then echo "Found compiler warning during build"; cat buildErrors.log; exit 1; fi
551 .build-extends-template:
553 - .binary-build-template
559 - .build-extends-template
573 - job: configure-gcc-7
585 BUILD_DIR: release-builds-gcc
587 - job: configure-gcc-7-release
597 build-gcc-7-simd-sse41:
604 - job: configure-gcc-7-simd-sse41
617 - job: configure-gcc-7-double
626 - .gmxapi-extra-installs
631 - job: configure-gcc-7-gmxapi
637 build-gcc-7-double-release:
643 BUILD_DIR: release-builds-gcc
645 - job: configure-gcc-7-double-release
655 build-gcc-7-gmxapi-release:
658 - .gmxapi-extra-installs
662 BUILD_DIR: release-builds-gcc
664 - job: configure-gcc-7-gmxapi-release
681 - job: configure-gcc-8
693 BUILD_DIR: release-builds-gcc
695 - job: configure-gcc-8-release
705 build-gcc-8-cuda-10.2:
708 - .use-gcc8:cuda-10.2
712 - job: configure-gcc-8-cuda-10.2
720 - .build-extends-template
729 - job: configure-clang-6
742 - job: configure-clang-7
748 build-clang-7-release:
754 BUILD_DIR: release-builds-clang
756 - job: configure-clang-7-release
766 build-clang-7-gmxapi:
769 - .gmxapi-extra-installs
774 - job: configure-clang-7-gmxapi
780 build-clang-7-gmxapi-release:
783 - .gmxapi-extra-installs
787 BUILD_DIR: release-builds-clang
789 - job: configure-clang-7-gmxapi-release
806 - job: configure-clang-8
812 build-clang-8-release:
818 BUILD_DIR: release-builds-clang
820 - job: configure-clang-8-release
831 # Jobs running during test stage
835 # Docker image uploaded to dockerhub by user eriklindahl
836 # TODO: Get DockerFile for admin/dockerfiles
837 image: biophysics/gcc-gromacs
842 .test-script-template:
845 - ctest -D ExperimentalTest --output-on-failure | tee ctestLog.log || true
846 - awk '/The following tests FAILED/,/^Errors while running CTest|^$/'
847 ctestLog.log | tee ctestErrors.log
848 - xsltproc scripts/CTest2JUnit.xsl Testing/`head -n 1 < Testing/TAG`/Test.xml > JUnitTestResults.xml
849 - if [ -s ctestErrors.log ] ; then
850 echo "Error during running ctest";
856 junit: $BUILD_DIR/JUnitTestResults.xml
863 .test-extends-template:
865 - .test-base-template
866 - .test-script-template
875 - .test-extends-template
901 BUILD_DIR: release-builds-gcc
903 - job: configure-gcc-7-release
905 - job: build-gcc-7-release
915 test-gcc-7-simd-sse41:
922 - job: build-gcc-7-simd-sse41
934 - job: build-gcc-7-double
939 test-gcc-7-double-release:
945 BUILD_DIR: release-builds-gcc
947 - job: configure-gcc-7-double-release
949 - job: build-gcc-7-double-release
962 - .gmxapi-extra-installs
967 - job: build-gcc-7-gmxapi
972 test-gcc-7-gmxapi-release:
975 - .gmxapi-extra-installs
979 BUILD_DIR: release-builds-gcc
981 - job: configure-gcc-7-gmxapi-release
983 - job: build-gcc-7-gmxapi-release
1009 stage: release-tests
1011 BUILD_DIR: release-builds-gcc
1013 - job: configure-gcc-8-release
1015 - job: build-gcc-8-release
1025 test-gcc-8-cuda-10.2:
1027 KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
1028 KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
1031 - .use-gcc8:cuda-10.2
1035 - job: build-gcc-8-cuda-10.2
1040 .test-clang-template:
1042 BUILD_DIR: build-clang
1046 - .test-extends-template
1047 - .test-clang-template
1056 - job: build-clang-6
1068 - job: build-clang-7
1073 test-clang-7-release:
1077 stage: release-tests
1079 BUILD_DIR: release-builds-clang
1081 - job: configure-clang-7-release
1083 - job: build-clang-7-release
1093 test-clang-7-gmxapi:
1096 - .gmxapi-extra-installs
1101 - job: build-clang-7-gmxapi
1106 test-clang-7-gmxapi-release:
1109 - .gmxapi-extra-installs
1111 stage: release-tests
1113 BUILD_DIR: release-builds-clang
1115 - job: configure-clang-7-gmxapi-release
1117 - job: build-clang-7-gmxapi-release
1134 - job: build-clang-8
1139 test-clang-8-release:
1143 stage: release-tests
1145 BUILD_DIR: release-builds-clang
1147 - job: configure-clang-8-release
1149 - job: build-clang-8-release