# 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
- .rules:nightly-only-for-release
cache: {}
- image: gromacs/ci-ubuntu-18.04-llvm-7-docs
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-llvm-7-docs
stage: configure-build
variables:
KUBERNETES_CPU_LIMIT: 1
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
- .variables:default
- .rules:merge-and-post-merge-acceptance
cache: {}
- image: gromacs/ci-ubuntu-18.04-llvm-7-docs
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-llvm-7-docs
stage: configure-build
variables:
KUBERNETES_CPU_LIMIT: 1
KUBERNETES_CPU_REQUEST: 1
KUBERNETES_MEMORY_REQUEST: 2Gi
- # Always clone the default version for this branch, 2021 in this case
+ # Always clone the default version for this branch, master in this case
script:
- - export REGTESTBRANCH=release-2021
+ - export REGTESTBRANCH=master
- if [[ ! -z $REGRESSIONTESTBRANCH ]] ; then
export REGTESTBRANCH=$REGRESSIONTESTBRANCH ;
echo "Using $REGTESTBRANCH instead of default" ;
cache: {}
# Docker image uploaded to dockerhub by user eriklindahl
# TODO: Get DockerFile for admin/dockerfiles
- image: gromacs/ci-ubuntu-18.04-llvm-7-docs
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-llvm-7-docs
stage: release-package
variables:
KUBERNETES_CPU_LIMIT: 1
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 ;
fi
- - export REGTESTBRANCH=release-2021
+ - export REGTESTBRANCH=master
- if [[ $CI_COMMIT_REF_NAME == "master" || $CI_COMMIT_REF_NAME == "release-20"[1-2][0-9] ]] ; then
export REGTESTBRANCH=$CI_COMMIT_REF_NAME ;
fi
- 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:
- .use-ccache
- .before_script:default
- .docs:build
- image: gromacs/ci-ubuntu-18.04-llvm-7-docs
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-llvm-7-docs
variables:
KUBERNETES_CPU_LIMIT: 4
KUBERNETES_CPU_REQUEST: 2
when: always
expire_in: 1 week
paths:
- - $BUILD_DIR/*log
+ - $BUILD_DIR/*logs
+ - $BUILD_DIR/bin
+ - $BUILD_DIR/lib
- gromacs*tar.gz
archive:build:
variables:
BUILD_DIR: build-package
-release-verify:
- image: gromacs/ci-ubuntu-18.04-llvm-7-docs
+checksum-verify:
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-llvm-7-docs
stage: release-verify
extends:
- .variables:default
KUBERNETES_CPU_LIMIT: 1
KUBERNETES_CPU_REQUEST: 1
KUBERNETES_MEMORY_REQUEST: 2Gi
+ BUILD_DIR: build-package
script:
- - VERSION=`cat version.json |
- python3 -c "import json,sys; print(json.load(sys.stdin)['version'])"`
- - if [[ $GROMACS_RELEASE != "true" ]] ; then
- VERSION=$VERSION-dev ;
+ - VALID_BUILD=true
+ - 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'])"`
- - SOURCENAME=gromacs-$VERSION
- - SOURCETARBALL=$SOURCENAME.tar.gz
- - SOURCE_MD5SUM=`md5sum $SOURCETARBALL | awk '{print $1}'`
- - REGTESTNAME=regressiontests-$VERSION
- - REGTESTTARBALL=$REGTESTNAME.tar.gz
- - REGTEST_MD5SUM=`md5sum $REGTESTTARBALL | awk '{print $1}'`
+ - 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}'`
+ - REGTESTNAME=regressiontests-"$VERSION"
+ - REGTESTTARBALL="$REGTESTNAME".tar.gz
+ - REGTEST_MD5SUM=`md5sum "$REGTESTTARBALL" | awk '{print $1}'`
- echo "$SOURCETARBALL md5sum = $SOURCE_MD5SUM"
- echo "$REGTESTTARBALL md5sum = $REGTEST_MD5SUM"
- echo "$REGTESTTARBALL reference md5sum = $REGTEST_COMPARE"
- - if [[ $REGTEST_COMPARE != $REGTEST_MD5SUM && $GROMACS_RELEASE == "true" ]] ; then
+ - if [[ "$REGTEST_COMPARE" != "$REGTEST_MD5SUM" && "$GROMACS_RELEASE" == "true" ]] ; then
echo "Mismatch in regressiontest md5sums";
+ VALID_BUILD=false;
+ fi
+ - if [[ "$VALID_BUILD" != "true" ]] ; then
exit 1;
fi
dependencies:
- regressiontests:package
- prepare-release-version
+version-verify:
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-llvm-7-docs
+ stage: release-verify
+ extends:
+ - .variables:default
+ - .rules:nightly-only-for-release
+ cache: {}
+
+ variables:
+ KUBERNETES_CPU_LIMIT: 1
+ KUBERNETES_CPU_REQUEST: 1
+ KUBERNETES_MEMORY_REQUEST: 2Gi
+ BUILD_DIR: release-doc-builds
+ script:
+ - VALID_BUILD=true
+ - VERSION=`sed -n -e '/GMX_VERSION_STRING\b/ s/.*"\(.*\)")/\1/p' VersionInfo-partial.cmake.cmakein`
+ - if [[ "$GROMACS_RELEASE" != "true" ]] ; then
+ VERSION="$VERSION"-dev ;
+ fi
+ - VERSION_FROM_BINARY=`"${BUILD_DIR}"/bin/gmx --version | grep "GROMACS version" | awk '{print $3}'`
+ - echo "Version name from CMake = $VERSION"
+ - echo "Version name from binary = $VERSION_FROM_BINARY"
+ - if [[ "$VERSION" != "$VERSION_FROM_BINARY" && "$GROMACS_RELEASE" == "true" ]] ; then
+ echo "Version names don't match";
+ VALID_BUILD=false;
+ fi
+ - if [[ "$VALID_BUILD" != "true" ]] ; then
+ exit 1;
+ fi
+ dependencies:
+ - webpage:dependencies
+ - prepare-release-version
+
archive:nightly-webpage:
extends:
- .webpage:build
- job: webpage:build
variables:
BUILD_DIR: build-docs
+ before_script:
+ - eval $(ssh-agent -s)
+ - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
+ - mkdir -p ~/.ssh
+ - chmod 700 ~/.ssh
+ - ssh-keyscan manual.gromacs.org > ~/.ssh/known_hosts # Force overwrite the known hosts so we only have that one key in it.
+ - chmod 644 ~/.ssh/known_hosts
script:
- tar czf webpage.tar.gz $BUILD_DIR/docs/html/
+ - rsync --chmod=u+rwX,g+rwX,o+rX -av $BUILD_DIR/docs/html/* $BUILD_DIR/docs/html/.[a-z]* pbauer@manual.gromacs.org:/var/www/manual/nightly/
artifacts:
when: always