Check version names to be correct for release
authorPaul Bauer <paul.bauer.q@gmail.com>
Wed, 3 Mar 2021 18:52:43 +0000 (18:52 +0000)
committerSzilárd Páll <pall.szilard@gmail.com>
Wed, 3 Mar 2021 18:52:43 +0000 (18:52 +0000)
Adds a check during release verification that the version names coming
from CMake and the actual name in the binary match.

Prevents issues with calculation of verified checksum.

Refs #3862

.gitlab-ci.yml
admin/gitlab-ci/archive.gitlab-ci.yml

index 61a480878599dc246589d664df588ebaf91bcba5..5512be09efb9eef388bb9dc0815e6b1e313d7eb0 100644 (file)
@@ -24,14 +24,14 @@ stages:
   - nightly-deploy
   # Release work for packaging code
   - release-package
-  # Release checksum verification
-  - release-verify
   # Configure code for release builds
   - release-configure
   # Release work for packaging code
   - release-build
   # Tests for release code
   - release-tests
+  # Release checksum verification
+  - release-verify
   # Prepare for deploying artifacts
   - release-prepare-deploy
   # Deploy stage for release builds
index 67c51d7f3b27691df0677bc624d55f8676d5d825..e6f86417d7b7149331d364ee065165561d53d7a8 100644 (file)
@@ -182,7 +182,9 @@ archive:configure:release:
     when: always
     expire_in: 1 week
     paths:
-      - $BUILD_DIR/*log
+      - $BUILD_DIR/*logs
+      - $BUILD_DIR/bin
+      - $BUILD_DIR/lib
       - gromacs*tar.gz
 
 archive:build:
@@ -205,7 +207,7 @@ archive:package:
   variables:
     BUILD_DIR: build-package
 
-release-verify:
+checksum-verify:
   image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-7-docs
   stage: release-verify
   extends:
@@ -217,25 +219,30 @@ release-verify:
     KUBERNETES_CPU_LIMIT: 1
     KUBERNETES_CPU_REQUEST: 1
     KUBERNETES_MEMORY_REQUEST: 2Gi
+    BUILD_DIR: build-package
   script:
+    - VALID_BUILD=true
     - VERSION=`cat version.json |
       python3 -c "import json,sys; print(json.load(sys.stdin)['version'])"`
-    - if [[ $GROMACS_RELEASE != "true" ]] ; then
-      VERSION=$VERSION-dev ;
+    - 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}'`
+    - 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:
@@ -243,6 +250,40 @@ release-verify:
     - regressiontests:package
     - prepare-release-version
 
+version-verify:
+  image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.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=`cat version.json |
+      python3 -c "import json,sys; print(json.load(sys.stdin)['version'])"`
+    - 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