1 # Packages, exported artifacts, and release engineering processes.
3 prepare-release-version:
7 # Docker image uploaded to dockerhub by user eriklindahl
8 # TODO: Get DockerFile for admin/dockerfiles
9 image: biophysics/gcc-gromacs
10 stage: configure-build
13 KUBERNETES_CPU_LIMIT: 1
14 KUBERNETES_CPU_REQUEST: 1
15 KUBERNETES_MEMORY_LIMIT: 2Gi
25 - cmake -P cmake/gmxVersionInfo.cmake &> version.json
31 # Special job to package regressiontest files and have them available for testing
32 # Runs during pre-build
33 # Set up to only fetch the files and prepare everything for merge requests
34 prepare-regressiontests:
38 image: biophysics/gcc-gromacs
39 stage: configure-build
42 KUBERNETES_CPU_LIMIT: 1
43 KUBERNETES_CPU_REQUEST: 1
44 KUBERNETES_MEMORY_LIMIT: 2Gi
54 # Always clone the default version for this branch, master in this case
56 - export REGTESTBRANCH=master
57 - if [[ ! -d regressiontests ]] ; then
58 mkdir regressiontests ;
64 - git fetch https://gitlab.com/gromacs/gromacs-regressiontests.git $REGTESTBRANCH
65 - git checkout -qf FETCH_HEAD
68 - git archive -o gmx-regressiontests.tar.gz --prefix regressiontests/ -9 HEAD
69 - echo "Build regressiontests for branch $REGTESTBRANCH"
70 - mv gmx-regressiontests.tar.gz ..
74 - gmx-regressiontests.tar.gz
76 package-regressiontests-release:
80 # Docker image uploaded to dockerhub by user eriklindahl
81 # TODO: Get DockerFile for admin/dockerfiles
82 image: biophysics/gcc-gromacs
83 stage: release-package
86 KUBERNETES_CPU_LIMIT: 1
87 KUBERNETES_CPU_REQUEST: 1
88 KUBERNETES_MEMORY_LIMIT: 2Gi
90 - job: prepare-release-version
100 - VERSION=`cat version.json |
101 python3 -c "import json,sys; print(json.load(sys.stdin)['version'])"`
102 - REGTESTNAME="regressiontests-"$VERSION
103 - if [[ $GROMACS_RELEASE != "true" ]] ; then
104 REGTESTNAME=$REGTESTNAME-dev ;
106 - export REGTESTBRANCH=master
107 - if [[ $CI_COMMIT_REF_NAME == "master" || $CI_COMMIT_REF_NAME == "release-20"[1-2][0-9] ]] ; then
108 export REGTESTBRANCH=$CI_COMMIT_REF_NAME ;
110 - if [[ ! -d regressiontests ]] ; then
111 mkdir regressiontests ;
117 - git fetch https://gitlab.com/gromacs/gromacs-regressiontests.git $REGTESTBRANCH
118 - git checkout -qf FETCH_HEAD
121 - git archive -o $REGTESTNAME.tar.gz --prefix $REGTESTNAME/ -9 HEAD
122 - mv $REGTESTNAME.tar.gz ..
123 - echo "Build regressiontests for branch $REGTESTBRANCH"
127 - regressiontests-*.tar.gz
129 configure-archive-nightly:
130 stage: nightly-configure
144 BUILD_DIR: build-package
145 CMAKE_SIMD_OPTIONS: -DGMX_SIMD=None
146 CMAKE_EXTRA_OPTIONS: -DGMX_BUILD_HELP=on -DGMX_USE_RDTSCP=OFF
147 CMAKE_MPI_OPTIONS: -DGMX_THREAD_MPI=OFF -DGMX_OPENMP=OFF
149 configure-archive-release:
160 BUILD_DIR: build-package
161 CMAKE_SIMD_OPTIONS: -DGMX_SIMD=None
162 CMAKE_EXTRA_OPTIONS: -DGMX_BUILD_HELP=on -DGMX_USE_RDTSCP=OFF
163 CMAKE_MPI_OPTIONS: -DGMX_THREAD_MPI=OFF -DGMX_OPENMP=OFF
165 # Right now we need to use an ugly hack to move the original build directory
166 # and the ccache files out of the build archive, as it is not possible to use
167 # the custom build directory due to https://gitlab.com/gitlab-org/gitlab-runner/issues/4203
168 # As soon as this is resolved we should use the separate build directories instead of
169 # manually hacking things. TODO: #3361
172 - .gromacs:base:build
175 - .documentation-before-script-template
176 - .build-docs-binary-template
177 # Dockerfiles are from dockerhub, user eriklindahl
178 image: gromacs/ci-docs-clang:master
186 KUBERNETES_CPU_LIMIT: 4
187 KUBERNETES_CPU_REQUEST: 2
188 KUBERNETES_MEMORY_LIMIT: 4Gi
190 - rm -rf gromacs*tar.gz
192 - cmake --build . --target gmx -- -j4 2>&1 | tee buildLogFile.log
193 - cmake --build . --target man -- -j4 2>&1 | tee manBuildLogFile.log
194 - cmake --build . --target completion -- -j4 2>&1 | tee completionBuildLogFile.log
195 - cmake --build . --target install-guide -- -j4 2>&1 | tee installGuideBuildLogFile.log
196 - cmake --build . --target reference_checksum -- -j4 2>&1 | tee checksumBuildLogFile.log
197 - cmake --build . --target package_source -- -j4 2>&1 | tee packageBuildLogFile.log
198 - awk '/warning/,/warning.*generated|^$/' buildLogFile.log manBuildLogFile.log
199 completionBuildLogFile.log installGuideBuildLogFile.log checksumBuildLogFile.log
200 packageBuildLogFile.log | grep -v "CMake" | tee buildErrors.log || true
201 - grep "cannot be built" buildLogFile.log manBuildLogFile.log
202 completionBuildLogFile.log installGuideBuildLogFile.log checksumBuildLogFile.log
203 packageBuildLogFile.log | tee -a buildErrors.log || true
204 - if [ -s buildErrors.log ] ; then echo "Found warnings during build"; cat buildErrors.log; exit 1; fi
205 - mv gromacs*tar.gz ..
207 # ugly hack begins here
209 - SOURCETARBALL=`ls gromacs*tar.gz`
210 - mv $SOURCETARBALL tempdir
212 - tar -xf $SOURCETARBALL
213 - rm -rf gromacs-*/$BUILD_DIR
214 - tar -c --gzip -f $SOURCETARBALL gromacs-*/
215 - mv $SOURCETARBALL ..
226 build-archive-nightly:
233 - job: configure-archive-nightly
243 BUILD_DIR: build-package
245 package-archive-release:
248 stage: release-package
250 - job: configure-archive-release
260 BUILD_DIR: build-package
263 image: biophysics/gcc-gromacs
264 stage: release-verify
270 KUBERNETES_CPU_LIMIT: 1
271 KUBERNETES_CPU_REQUEST: 1
272 KUBERNETES_MEMORY_LIMIT: 2Gi
282 - VERSION=`cat version.json |
283 python3 -c "import json,sys; print(json.load(sys.stdin)['version'])"`
284 - if [[ $GROMACS_RELEASE != "true" ]] ; then
285 VERSION=$VERSION-dev ;
287 - REGTEST_COMPARE=`cat version.json |
288 python3 -c "import json,sys; print(json.load(sys.stdin)['regressiontest-md5sum'])"`
289 - SOURCENAME=gromacs-$VERSION
290 - SOURCETARBALL=$SOURCENAME.tar.gz
291 - SOURCE_MD5SUM=`md5sum $SOURCETARBALL | awk '{print $1}'`
292 - REGTESTNAME=regressiontests-$VERSION
293 - REGTESTTARBALL=$REGTESTNAME.tar.gz
294 - REGTEST_MD5SUM=`md5sum $REGTESTTARBALL | awk '{print $1}'`
295 - echo "$SOURCETARBALL md5sum = $SOURCE_MD5SUM"
296 - echo "$REGTESTTARBALL md5sum = $REGTEST_MD5SUM"
297 - echo "$REGTESTTARBALL reference md5sum = $REGTEST_COMPARE"
298 - if [[ $REGTEST_COMPARE != $REGTEST_MD5SUM && $GROMACS_RELEASE == "true" ]] ; then
299 echo "Mismatch in regressiontest md5sums";
303 - package-archive-release
304 - package-regressiontests-release
305 - prepare-release-version
307 webpage-archive-release:
309 - .build-docs-webpage
310 stage: release-deploy
319 - webpage-build-release
320 - package-archive-release
321 - package-regressiontests-release
323 BUILD_DIR: release-doc-builds
325 - tar czf webpage.tar.gz $BUILD_DIR/docs/html/
331 - regressiontests-*tar.gz