# Packages, exported artifacts, and release engineering processes.
+# Special job to run cmake to output the version string and
+# regressiontest md5sum to a file
+
prepare-release-version:
extends:
- .variables:default
KUBERNETES_CPU_REQUEST: 1
KUBERNETES_MEMORY_REQUEST: 2Gi
script:
- - cmake -P cmake/gmxVersionInfo.cmake &> version.json
+ - cmake . -DGMX_BUILD_TARBALL=on
artifacts:
paths:
- - version.json
+ - VersionInfo-partial.cmake.cmakein
# Special job to package regressiontest files and have them available for testing
# Runs during pre-build
needs:
- job: prepare-release-version
script:
- - VERSION=`cat version.json |
- python3 -c "import json,sys; print(json.load(sys.stdin)['version'])"`
+ - VERSION=`sed -n -e '/GMX_VERSION_STRING\b/ s/.*"\(.*\)")/\1/p' VersionInfo-partial.cmake.cmakein`
- REGTESTNAME="regressiontests-"$VERSION
- if [[ $GROMACS_RELEASE != "true" ]] ; then
REGTESTNAME=$REGTESTNAME-dev ;
- git archive -o $REGTESTNAME.tar.gz --prefix $REGTESTNAME/ -9 HEAD
- git archive -o gmx-regressiontests.tar.gz --prefix regressiontests/ -9 HEAD
- mv $REGTESTNAME.tar.gz gmx-regressiontests.tar.gz ..
- - echo "Build regressiontests for branch $REGTESTBRANCH"
+ - echo "Build regressiontests $REGTESTNAME for branch $REGTESTBRANCH"
- cd ..
artifacts:
paths:
BUILD_DIR: build-package
script:
- VALID_BUILD=true
- - VERSION=`cat version.json |
- python3 -c "import json,sys; print(json.load(sys.stdin)['version'])"`
+ - VERSION=`sed -n -e '/GMX_VERSION_STRING\b/ s/.*"\(.*\)")/\1/p' VersionInfo-partial.cmake.cmakein`
- if [[ "$GROMACS_RELEASE" != "true" ]] ; then
VERSION="$VERSION"-dev ;
fi
- - REGTEST_COMPARE=`cat version.json |
- python3 -c "import json,sys; print(json.load(sys.stdin)['regressiontest-md5sum'])"`
+ - REGTEST_COMPARE=`sed -n -e '/REGRESSIONTEST_MD5SUM/ s/.*"\(.*\)")/\1/p' VersionInfo-partial.cmake.cmakein`
- SOURCENAME=gromacs-"$VERSION"
- SOURCETARBALL="$SOURCENAME".tar.gz
- SOURCE_MD5SUM=`md5sum "$SOURCETARBALL" | awk '{print $1}'`
BUILD_DIR: release-doc-builds
script:
- VALID_BUILD=true
- - VERSION=`cat version.json |
- python3 -c "import json,sys; print(json.load(sys.stdin)['version'])"`
+ - VERSION=`sed -n -e '/GMX_VERSION_STRING\b/ s/.*"\(.*\)")/\1/p' VersionInfo-partial.cmake.cmakein`
- if [[ "$GROMACS_RELEASE" != "true" ]] ; then
VERSION="$VERSION"-dev ;
fi
- echo $CMAKE_BUILD_TYPE_OPTIONS
- echo $CMAKE_GMXAPI_OPTIONS
- echo $REL_OPTION
- - VERSION=`cat version.json |
- python3 -c "import json,sys; print(json.load(sys.stdin)['version'])"`
+ - VERSION=`sed -n -e '/GMX_VERSION_STRING\b/ s/.*"\(.*\)")/\1/p' VersionInfo-partial.cmake.cmakein`
- if [[ $GROMACS_RELEASE != "true" ]] ; then
VERSION=$VERSION-dev ;
fi
- - REGTEST_COMPARE=`cat version.json |
- python3 -c "import json,sys; print(json.load(sys.stdin)['regressiontest-md5sum'])"`
+ - REGTEST_COMPARE=`sed -n -e '/REGRESSIONTEST_MD5SUM/ s/.*"\(.*\)")/\1/p' VersionInfo-partial.cmake.cmakein`
- SOURCENAME=gromacs-$VERSION
- SOURCETARBALL=$SOURCENAME.tar.gz
- REGTESTNAME=regressiontests-$VERSION
RELEASE_REGRESSIONTESTS: release-regressiontests-from-tarball
script:
- CMAKE=${CMAKE:-$(which cmake)}
- - VERSION=`cat version.json |
- python3 -c "import json,sys; print(json.load(sys.stdin)['version'])"`
+ - VERSION=`sed -n -e '/GMX_VERSION_STRING\b/ s/.*"\(.*\)")/\1/p' VersionInfo-partial.cmake.cmakein`
- if [[ $GROMACS_RELEASE != "true" ]] ; then
VERSION=$VERSION-dev ;
fi
#
# This file is part of the GROMACS molecular simulation package.
#
-# Copyright (c) 2014,2015,2019, by the GROMACS development team, led by
+# Copyright (c) 2014,2015,2019,2021, by the GROMACS development team, led by
# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
# and including many others, as listed in the AUTHORS file in the
# top-level source directory and at http://www.gromacs.org.
set(GMX_VERSION_CENTRAL_BASE_HASH "@GMX_VERSION_CENTRAL_BASE_HASH@")
set(GMX_RELEASE_SOURCE_FILE_CHECKSUM "@GMX_RELEASE_SOURCE_FILE_CHECKSUM@")
set(GMX_CURRENT_SOURCE_FILE_CHECKSUM "@GMX_CURRENT_SOURCE_FILE_CHECKSUM@")
+
+set(REGRESSIONTEST_MD5SUM "@REGRESSIONTEST_MD5SUM@")
\ No newline at end of file
option(GMX_BUILD_TARBALL "Build tarball without -dev version suffix" OFF)
mark_as_advanced(GMX_BUILD_TARBALL)
-# If run with cmake -P, the -dev suffix is managed elsewhere.
if (NOT SOURCE_IS_SOURCE_DISTRIBUTION AND
- NOT GMX_BUILD_TARBALL AND
- NOT CMAKE_SCRIPT_MODE_FILE)
+ NOT GMX_BUILD_TARBALL)
set(GMX_VERSION_STRING "${GMX_VERSION_STRING}-dev")
endif()
"${GMX_VERSION_MAJOR}*10000 + ${GMX_VERSION_PATCH}")
set(GMX_API_VERSION ${GMX_VERSION_NUMERIC})
-# If run with cmake -P from GitLab scripts, print out necessary version info
-# as JSON.
-if (CMAKE_SCRIPT_MODE_FILE)
- message("{ \"version\": \"${GMX_VERSION_STRING}\", \"regressiontest-md5sum\": \"${REGRESSIONTEST_MD5SUM}\" }")
- return()
-endif()
-
# Set those values only in release versions, after getting the identifiers
# from Zenodo for the manual and source code
# Has to be done by hand before every final release
# - These are again custom commands that depend on the output from
# step 1, so they get regenerated only when the static version info
# changes.
+#
+# Note that VersionInfo-partial.cmake is also used to transfer version
+# information between GitLab CI jobs for release and documentation builds.
# Check if we have all necessary python modules available
if (Python3_Interpreter_FOUND)