Update CI on 2020 branch
authorPaul Bauer <paul.bauer.q@gmail.com>
Wed, 30 Sep 2020 13:22:48 +0000 (13:22 +0000)
committerJoe Jordan <ejjordan12@gmail.com>
Wed, 30 Sep 2020 13:22:48 +0000 (13:22 +0000)
Now uses similar settings as master.

Change-Id: I2df3ab916930108afaa63830b7fd92680d837584

16 files changed:
.gitlab-ci.yml
admin/gitlab-ci/archive.gitlab-ci.yml
admin/gitlab-ci/documentation.gitlab-ci.yml
admin/gitlab-ci/global.gitlab-ci.yml
admin/gitlab-ci/gromacs.gitlab-ci.yml
admin/gitlab-ci/lint.gitlab-ci.yml
admin/gitlab-ci/python-gmxapi.gitlab-ci.yml
admin/gitlab-ci/rules.gitlab-ci.yml [new file with mode: 0644]
admin/gitlab-ci/sample_restraint-regression.gitlab-ci.yml
admin/gitlab-ci/sample_restraint.gitlab-ci.yml
docs/doxygen/suppressions.txt
src/gromacs/compat/tests/pointers.cpp
src/gromacs/gmxpreprocess/tests/readir.cpp
src/gromacs/utility/tests/enumerationhelpers.cpp
src/programs/mdrun/tests/densityfittingmodule.cpp
src/testutils/testasserts.h

index 60dd3c5c6aa81d31697cdfa7a0c28d19351c965c..ee10cc660d7d4d405288c21090725d6811f9588a 100644 (file)
@@ -37,13 +37,10 @@ stages:
   # Deploy stage for release builds
   - release-deploy
 
-default:
-  tags:
-    - k8s-scilifelab
-
 include:
   # Mix-in helper job definitions of general utility.
   - local: '/admin/gitlab-ci/global.gitlab-ci.yml'
+  - local: '/admin/gitlab-ci/rules.gitlab-ci.yml'
   # gmxapi Python package.
   - local: '/admin/gitlab-ci/python-gmxapi.gitlab-ci.yml'
   # Further API validation and usability of sample gmxapi extension package.
index 0d4901cfbef1f69940f40183a022f9ef5ef2354d..5ff56fa279fd9200b3263f6642e6164d0a2eb928 100644 (file)
@@ -7,16 +7,14 @@ prepare-release-version:
   cache: {}
   # Docker image uploaded to dockerhub by user eriklindahl
   # TODO: Get DockerFile for admin/dockerfiles
-  image: biophysics/gcc-gromacs
+  image: gromacs/ci-docs-llvm:2020
   stage: configure-build
-
   variables:
     KUBERNETES_CPU_LIMIT: 1
     KUBERNETES_CPU_REQUEST: 1
-    KUBERNETES_MEMORY_LIMIT: 2Gi
+    KUBERNETES_MEMORY_REQUEST: 2Gi
   script:
     - cmake -P cmake/gmxVersionInfo.cmake &> version.json
-
   artifacts:
     paths:
       - version.json
@@ -27,18 +25,26 @@ prepare-release-version:
 regressiontests:prepare:
   extends:
     - .variables:default
-    - .rules:merge-requests
+    - .rules:merge-and-post-merge-acceptance
   cache: {}
-  image: biophysics/gcc-gromacs
+  image: gromacs/ci-docs-llvm:2020
   stage: configure-build
-
   variables:
     KUBERNETES_CPU_LIMIT: 1
     KUBERNETES_CPU_REQUEST: 1
-    KUBERNETES_MEMORY_LIMIT: 2Gi
+    KUBERNETES_MEMORY_REQUEST: 2Gi
   # Always clone the default version for this branch, master in this case
   script:
     - export REGTESTBRANCH=release-2020
+    - if [[ ! -z $REGRESSIONTESTBRANCH ]] ; then
+      export REGTESTBRANCH=$REGRESSIONTESTBRANCH ;
+      echo "Using $REGTESTBRANCH instead of default" ;
+      fi
+    - export CHECKOUTCOMMIT=FETCH_HEAD
+    - if [[ ! -z $REGRESSIONTESTCOMMIT ]] ; then
+      export CHECKOUTCOMMIT=$REGRESSIONTESTCOMMIT ;
+      echo "Using $CHECKOUTCOMMIT instead of head of $REGTESTBRANCH" ;
+      fi
     - if [[ ! -d regressiontests ]] ; then
         mkdir regressiontests ;
         cd regressiontests ;
@@ -47,7 +53,7 @@ regressiontests:prepare:
       fi
     - cd regressiontests
     - git fetch https://gitlab.com/gromacs/gromacs-regressiontests.git $REGTESTBRANCH
-    - git checkout -qf FETCH_HEAD
+    - git checkout -qf $CHECKOUTCOMMIT
     - git clean -ffdxq
     - git gc
     - git archive -o gmx-regressiontests.tar.gz --prefix regressiontests/ -9 HEAD
@@ -65,13 +71,12 @@ regressiontests:package:
   cache: {}
   # Docker image uploaded to dockerhub by user eriklindahl
   # TODO: Get DockerFile for admin/dockerfiles
-  image: biophysics/gcc-gromacs
+  image: gromacs/ci-docs-llvm:2020
   stage: release-package
-
   variables:
     KUBERNETES_CPU_LIMIT: 1
     KUBERNETES_CPU_REQUEST: 1
-    KUBERNETES_MEMORY_LIMIT: 2Gi
+    KUBERNETES_MEMORY_REQUEST: 2Gi
   needs:
     - job: prepare-release-version
   script:
@@ -144,7 +149,7 @@ archive:configure:release:
   variables:
     KUBERNETES_CPU_LIMIT: 4
     KUBERNETES_CPU_REQUEST: 2
-    KUBERNETES_MEMORY_LIMIT: 4Gi
+    KUBERNETES_MEMORY_REQUEST: 4Gi
   script:
     - rm -rf gromacs*tar.gz
     - cd $BUILD_DIR
@@ -203,7 +208,7 @@ archive:package:
     BUILD_DIR: build-package
 
 release-verify:
-  image: biophysics/gcc-gromacs
+  image: gromacs/ci-docs-llvm:2020
   stage: release-verify
   extends:
     - .variables:default
@@ -213,7 +218,7 @@ release-verify:
   variables:
     KUBERNETES_CPU_LIMIT: 1
     KUBERNETES_CPU_REQUEST: 1
-    KUBERNETES_MEMORY_LIMIT: 2Gi
+    KUBERNETES_MEMORY_REQUEST: 2Gi
   script:
     - VERSION=`cat version.json |
       python3 -c "import json,sys; print(json.load(sys.stdin)['version'])"`
index 21679c0c823db96292661aef80aee00dcd3c9a57..1fcdd113da2aae54d471abba90340c99f8c8baad 100644 (file)
@@ -12,9 +12,8 @@
   variables:
     KUBERNETES_CPU_LIMIT: 1
     KUBERNETES_CPU_REQUEST: 1
-    KUBERNETES_MEMORY_LIMIT: 2Gi
+    KUBERNETES_MEMORY_REQUEST: 2Gi
     CMAKE_COMPILER_SCRIPT: "-DCMAKE_C_COMPILER=clang-7 -DCMAKE_CXX_COMPILER=clang++-7"
-    CMAKE_EXTRA_OPTIONS: ""
     CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=None"
     CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=OFF"
     CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
@@ -79,9 +78,8 @@
   variables:
     KUBERNETES_CPU_LIMIT: 1
     KUBERNETES_CPU_REQUEST: 1
-    KUBERNETES_MEMORY_LIMIT: 2Gi
+    KUBERNETES_MEMORY_REQUEST: 2Gi
     CMAKE_COMPILER_SCRIPT: "-DCMAKE_C_COMPILER=clang-7 -DCMAKE_CXX_COMPILER=clang++-7"
-    CMAKE_EXTRA_OPTIONS: ""
     CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=None"
     CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=ON"
     CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
@@ -178,7 +176,6 @@ docs:configure:
   extends:
     - .docs:configure
     - .rules:basic-push
-  tags: []
   variables:
     BUILD_DIR: build-docs
     CMAKE_EXTRA_OPTIONS: -DGMX_BUILD_HELP=on -DGMX_BUILD_MANUAL=on
@@ -206,7 +203,6 @@ docs:build:
     - .before_script:default
     - .rules:basic-push
   stage: documentation
-  tags: []
   needs:
     - job: docs:configure
   variables:
@@ -231,7 +227,7 @@ docs:build:
   variables:
     KUBERNETES_CPU_LIMIT: 4
     KUBERNETES_CPU_REQUEST: 2
-    KUBERNETES_MEMORY_LIMIT: 4Gi
+    KUBERNETES_MEMORY_REQUEST: 4Gi
   script:
     - cd $BUILD_DIR
     - cmake --build . --target manual -- -j4 | tee docs/manual/all-output.log
@@ -263,7 +259,6 @@ webpage:build:
     - .webpage:build
     - .rules:basic-push
   stage: post-test
-  tags: []
   needs:
     - job: docs:build
     - job: check-source
@@ -276,6 +271,8 @@ webpage:configure:
     - .docs:configure:release
     - .rules:nightly-only-for-release
   cache: {}
+  tags:
+    - k8s-scilifelab
   dependencies:
     - archive:package
     - regressiontests:package
@@ -293,6 +290,8 @@ webpage:dependencies:
     - .before_script:default
     - .rules:nightly-only-for-release
   stage: release-build
+  tags:
+    - k8s-scilifelab
   needs:
     - job: webpage:configure
   variables:
@@ -302,9 +301,11 @@ webpage:build:release:
   extends:
     - .webpage:build
     - .rules:nightly-only-for-release
+  stage: release-prepare-deploy
+  tags:
+    - k8s-scilifelab
   dependencies:
     - webpage:dependencies
     - webpage:configure
-  stage: release-prepare-deploy
   variables:
     BUILD_DIR: release-doc-builds
index 3c291c29e48eb90d8a0c44021a96310f6d032073..302a58e05efe6987ea812544f6c54b4f6f40d5d7 100644 (file)
@@ -1,19 +1,24 @@
 # Mix-in job definitions.
+# The (hidden) job definitions in this file are available to the regular job
+# definitions in other files because this file is first in the *include* list
+# in the root `.gitlab-ci.yml` file.
 
 # Centralized definitions of common job parameter values.
+# Parameters with many optional configurations may be in separate files.
+# Refer to the Infrastructure section of the GROMACS Developer Guide.
 
 .variables:default:
   variables:
     KUBERNETES_CPU_LIMIT: 8
     KUBERNETES_CPU_REQUEST: 4
+    KUBERNETES_MEMORY_REQUEST: 4Gi
     KUBERNETES_MEMORY_LIMIT: 8Gi
     KUBERNETES_EXTENDED_RESOURCE_NAME: ""
     KUBERNETES_EXTENDED_RESOURCE_LIMIT: 0
     CACHE_FALLBACK_KEY: "$CI_JOB_NAME-$CI_JOB_STAGE-release-2020"
     BUILD_DIR: build
     INSTALL_DIR: install
-    CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF"
-# TODO: Get these from updated Docker images.
+    CMAKE_GMXAPI_OPTIONS: ""
 
 # Our generic before_script to install dependencies and prepare the ccache directory.
 .before_script:default:
     - export CCACHE_BASEDIR=${PWD}
     - export CCACHE_DIR=${PWD}/ccache
 
-# Jobs that run for new commits and pipelines triggered by schedules or
-# through the web interface, unless GROMACS_RELEASE is set. Excluded from
-# extra pipelines generated by merge request events.
-# Includes non-gromacs projects. Note that jobs using this rule are
-# eligible to run on non-gromacs project infrastructure, and should therefore
-# override the default *tag* parameter to exclude tags specific to the GROMACS
-# GitLab Runner infrastructure. I.e. in the job definition, set `tags: []`
-.rules:basic-push:
-  rules:
-    - if: '$GROMACS_RELEASE'
-      when: never
-    - if: '$CI_PIPELINE_SOURCE == "web"'
-      when: always
-    - if: '$CI_PIPELINE_SOURCE == "push"'
-      when: always
-    - if: '$CI_PIPELINE_SOURCE == "schedule"'
-      when: always
-    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
-      when: never
-
-# Jobs that run for merge requests and schedules, but not when GROMACS_RELEASE
-# is set. Excludes non-gromacs projects.
-.rules:merge-requests:
-  rules:
-    - if: '$CI_PROJECT_NAMESPACE != "gromacs"'
-      when: never
-    - if: '$GROMACS_RELEASE'
-      when: never
-    - if: '$CI_PIPELINE_SOURCE == "web"'
-      when: always
-    - if: '$CI_PIPELINE_SOURCE == "push"'
-      when: never
-    - if: '$CI_PIPELINE_SOURCE == "schedule"'
-      when: always
-    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
-      when: always
-
-# Jobs that run for merge requests and schedules for branch `master`,
-# but not when GROMACS_RELEASE is set.
-# Excludes non-gromacs projects.
-.rules:merge-requests:master:
-  rules:
-    - if: '$CI_PROJECT_NAMESPACE != "gromacs"'
-      when: never
-    - if: '$GROMACS_RELEASE'
-      when: never
-    # This rule catches "push" and other events in branches other than `master`
-    # but allows merge_request_events for merge requests targeting master.
-    # This rule is before "web" so the web interface won't include jobs that can't succeed
-    # (and would not ordinarily be run). Such jobs are hard to identify in a way that is
-    # sufficiently general for a global rules definition.
-    # If extra coverage is needed through a web-triggered job in merge request branches,
-    # we could provide an additional short-circuiting rule based on an environment variable
-    # to be provided through the web interface.
-    - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME != "master" && $CI_COMMIT_REF_NAME != "master"'
-      when: never
-    - if: '$CI_PIPELINE_SOURCE == "web"'
-      when: always
-    - if: '$CI_PIPELINE_SOURCE == "schedule"'
-      when: always
-    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
-      when: always
-
-# Jobs that run for merge requests and schedules for branch `release-2020`,
-# but not when GROMACS_RELEASE is set.
-# Excludes non-gromacs projects.
-.rules:merge-requests:release-2020:
-  rules:
-    - if: '$CI_PROJECT_NAMESPACE != "gromacs"'
-      when: never
-    - if: '$GROMACS_RELEASE'
-      when: never
-    - if: '$CI_PIPELINE_SOURCE == "web"'
-      when: always
-    # This next rule catches "push" and other events in branches other than `release-2020`
-    # but allows merge_request_events for merge requests targeting `release-2020`.
-    - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME != "release-2020" && $CI_COMMIT_REF_NAME != "release-2020"'
-      when: never
-    - if: '$CI_PIPELINE_SOURCE == "schedule"'
-      when: always
-    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
-      when: always
-
-# Rule to run a job only in nightly release-preparation pipelines.
-# Checks if the GROMACS_RELEASE variable was set (typically through the GitLab web interface).
-# Excludes merge_requests and non-gromacs projects.
-# TODO: Update to *rules* syntax.
-.rules:nightly-only-for-release:
-  rules:
-    - if: '$CI_PROJECT_NAMESPACE != "gromacs"'
-      when: never
-    - if: '$GROMACS_RELEASE && $CI_PIPELINE_SOURCE == "web"'
-      when: always
-    - if: '$GROMACS_RELEASE && $CI_PIPELINE_SOURCE == "schedule"'
-      when: always
-
-# Jobs that run on schedules, but not for merge requests or when GROMACS_RELEASE
-# is set. Excludes non-gromacs projects.
-.rules:nightly-not-for-release:
-  rules:
-    - if: '$CI_PROJECT_NAMESPACE != "gromacs"'
-      when: never
-    - if: '$GROMACS_RELEASE'
-      when: never
-    - if: '$CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "schedule"'
-      when: always
-
 # Behavioral templates
 
 # Use a persistent compiler cache to speed up rebuilds for a single job.
index 0a62869f774277b72777e6afe0bcc4b557b58014..4d0faf04e9092078b8b335342fb7890389242198 100644 (file)
@@ -9,11 +9,10 @@ simple-build:
     - .rules:basic-push
   stage: pre-build
   image: gromacs/cmake-3.9.6-gcc-5-cuda-9.0-openmpi:2020
-  tags: []
   variables:
     KUBERNETES_CPU_LIMIT: 8
     KUBERNETES_CPU_REQUEST: 4
-    KUBERNETES_MEMORY_LIMIT: 8Gi
+    KUBERNETES_MEMORY_REQUEST: 8Gi
     CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=None"
     CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=ON"
     CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
@@ -53,8 +52,8 @@ simple-build:
       2>&1 | tee cmakeLog.log
     - awk '/CMake Warning/,/^--|^$/' cmakeLog.log | tee cmakeErrors.log
     - if [ -s cmakeErrors.log  ] ; then echo "Found CMake warning while processing build"; cat cmakeErrors.log ; exit 1; fi
-    - cmake --build . -- -j8 2>&1 | tee buildLogFile.log
-    - cmake --build . --target tests -- -j8 2>&1 | tee testBuildLogFile.log
+    - cmake --build . -- -j$KUBERNETES_CPU_LIMIT 2>&1 | tee buildLogFile.log
+    - cmake --build . --target tests -- -j$KUBERNETES_CPU_LIMIT 2>&1 | tee testBuildLogFile.log
     - awk '/warning/,/warning.*generated|^$/' buildLogFile.log testBuildLogFile.log
       | grep -v "CMake" | tee buildErrors.log || true
     - grep "cannot be built" buildLogFile.log testBuildLogFile.log | tee -a buildErrors.log || true
@@ -87,10 +86,10 @@ simple-build:
   variables:
     KUBERNETES_CPU_LIMIT: 1
     KUBERNETES_CPU_REQUEST: 1
-    KUBERNETES_MEMORY_LIMIT: 2Gi
+    KUBERNETES_MEMORY_REQUEST: 2Gi
     CMAKE_COMPILER_SCRIPT: ""
     CMAKE_EXTRA_OPTIONS: ""
-    CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=AUTO"
+    CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=AVX2_256"
     CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=ON"
     CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
     CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=Debug"
@@ -139,10 +138,10 @@ simple-build:
   variables:
     KUBERNETES_CPU_LIMIT: 1
     KUBERNETES_CPU_REQUEST: 1
-    KUBERNETES_MEMORY_LIMIT: 2Gi
+    KUBERNETES_MEMORY_REQUEST: 2Gi
     CMAKE_COMPILER_SCRIPT: ""
     CMAKE_EXTRA_OPTIONS: ""
-    CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=AUTO"
+    CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=AVX2_256"
     CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=ON"
     CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
     CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert"
@@ -221,7 +220,7 @@ gromacs:gcc-7:configure:
   extends:
     - .gromacs:base:configure
     - .use-gcc:base
-    - .rules:merge-requests
+    - .rules:merge-and-post-merge-acceptance
   image: gromacs/cmake-3.9.6-gcc-7-amdopencl-clfft-openmpi:2020
   variables:
     CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=AVX2_256"
@@ -233,7 +232,7 @@ gromacs:gcc-6:configure:
     - .gromacs:base:configure
     - .use-gcc:base
     - .use-opencl
-    - .rules:merge-requests
+    - .rules:merge-and-post-merge-acceptance
   image: gromacs/cmake-3.9.6-gcc-6-cuda-10.1-nvidiaopencl-clfft-openmpi:2020
   variables:
     CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=SSE4.1"
@@ -244,7 +243,7 @@ gromacs:clang-TSAN:configure:
   extends:
     - .gromacs:base:configure
     - .use-clang:base
-    - .rules:merge-requests
+    - .rules:merge-and-post-merge-acceptance
   image: gromacs/cmake-3.15.7-llvm-8-tsan:2020
   variables:
     COMPILER_MAJOR_VERSION: 8
@@ -304,7 +303,7 @@ gromacs:gcc-6:release:configure:
     COMPILER_MAJOR_VERSION: 6
     RELEASE_BUILD_DIR: release-builds-gcc
     CMAKE_EXTRA_OPTIONS: "-DGMX_BUILD_MDRUN_ONLY=ON"
-    CMAKE_BUILD_TYPE_OPTIONS : "-DCMAKE_BUILD_TYPE=RelWithDebInfo"
+    CMAKE_BUILD_TYPE_OPTIONS : "-DCMAKE_BUILD_TYPE=RelWithAssert"
     CMAKE_REGRESSIONTEST_OPTIONS: ""
   dependencies:
     - archive:package
@@ -355,7 +354,7 @@ gromacs:clang-8:release:configure:
   variables:
     COMPILER_MAJOR_VERSION: 8
     RELEASE_BUILD_DIR: release-builds-clang
-    CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithDebInfo"
+    CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert"
 
 # Jobs running during build stage
 
@@ -363,13 +362,14 @@ gromacs:clang-8:release:configure:
   stage: build
   script:
     - cd $BUILD_DIR
-    - cmake --build . -- -j8 2>&1 | tee buildLogFile.log
-    - cmake --build . --target tests -- -j8 2>&1 | tee testBuildLogFile.log
+    - cmake --build . -- -j$KUBERNETES_CPU_LIMIT 2>&1 | tee buildLogFile.log
+    - cmake --build . --target tests -- -j$KUBERNETES_CPU_LIMIT 2>&1 | tee testBuildLogFile.log
     - awk '/warning/,/warning.*generated|^$/' buildLogFile.log testBuildLogFile.log
       | grep -v "CMake" | tee buildErrors.log || true
     - grep "cannot be built" buildLogFile.log testBuildLogFile.log | tee -a buildErrors.log || true
     - cmake --build . --target install 2>&1 | tee installBuildLogFile.log
     - if [ -s buildErrors.log ] ; then echo "Found compiler warning during build"; cat buildErrors.log; exit 1; fi
+    - for file in `find . -mindepth 1 -name "*.o" ! -type l` ; do echo $file ; rm $file ; done 2>&1 > remove-build-objects.log
     - cd ..
   artifacts:
     when: always
@@ -398,7 +398,7 @@ gromacs:gcc-7:build:
     - .gromacs:base:build
     - .before_script:default
     - .use-ccache
-    - .rules:merge-requests
+    - .rules:merge-and-post-merge-acceptance
   image: gromacs/cmake-3.9.6-gcc-7-amdopencl-clfft-openmpi:2020
   needs:
     - job: gromacs:gcc-7:configure
@@ -410,7 +410,7 @@ gromacs:gcc-6:build:
     - .gromacs:base:build
     - .before_script:default
     - .use-ccache
-    - .rules:merge-requests
+    - .rules:merge-and-post-merge-acceptance
   image: gromacs/cmake-3.9.6-gcc-6-cuda-10.1-nvidiaopencl-clfft-openmpi:2020
   needs:
     - job: gromacs:gcc-6:configure
@@ -421,7 +421,7 @@ gromacs:clang-TSAN:build:
     - .gromacs:base:build
     - .use-clang:base
     - .use-ccache
-    - .rules:merge-requests
+    - .rules:merge-and-post-merge-acceptance
   image: gromacs/cmake-3.15.7-llvm-8-tsan:2020
   needs:
     - job: gromacs:clang-TSAN:configure
@@ -434,6 +434,8 @@ gromacs:clang-ASAN:build:
     - .use-ccache
     - .rules:merge-requests
   image: gromacs/cmake-3.15.7-llvm-8-tsan:2020
+  tags:
+    - k8s-scilifelab
   needs:
     - job: gromacs:clang-ASAN:configure
 
@@ -445,6 +447,8 @@ gromacs:clang-static-analyzer:build:
     - .use-ccache
     - .rules:merge-requests
   image: gromacs/cmake-3.15.7-llvm-8-tsan:2020
+  tags:
+    - k8s-scilifelab
   needs:
     - job: gromacs:clang-static-analyzer:configure
 
@@ -564,6 +568,9 @@ gromacs:clang-8:release:build:
   extends:
     - .variables:default
   variables:
+    KUBERNETES_CPU_LIMIT: 4
+    KUBERNETES_CPU_REQUEST: 4
+    KUBERNETES_MEMORY_REQUEST: 4Gi
     REGRESSIONTEST_TOTAL_RANK_NUMBER: 4
     REGRESSIONTEST_OMP_RANK_NUMBER: 2
     REGRESSIONTEST_PME_RANK_NUMBER: 1
@@ -598,6 +605,9 @@ gromacs:gcc-7:test:
   variables:
     KUBERNETES_EXTENDED_RESOURCE_NAME: "amd.com/gpu"
     KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
+    LD_LIBRARY_PATH: "/opt/rocm-3.5.0/opencl/lib"
+  tags:
+    - k8s-scilifelab
   needs:
     - job: gromacs:gcc-7:build
 
@@ -609,6 +619,8 @@ gromacs:gcc-6:test:
   variables:
     KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
     KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
+  tags:
+    - k8s-scilifelab
   needs:
     - job: gromacs:gcc-6:build
 
@@ -623,7 +635,7 @@ gromacs:clang-8:test:
 gromacs:clang-TSAN:test:
   extends:
     - .gromacs:base:test
-    - .rules:merge-requests
+    - .rules:post-merge-acceptance
   image: gromacs/cmake-3.15.7-llvm-8-tsan:2020
   needs:
     - job: gromacs:clang-TSAN:build
@@ -636,6 +648,8 @@ gromacs:clang-ASAN:test:
   image: gromacs/cmake-3.15.7-llvm-8-tsan:2020
   variables:
     CTEST_RUN_MODE: "ExperimentalMemCheck"
+  tags:
+    - k8s-scilifelab
   needs:
     - job: gromacs:clang-ASAN:build
 
@@ -650,7 +664,7 @@ gromacs:clang-3.6:test:
 gromacs:gcc-7:regressiontest:
   extends:
     - .gromacs:base:regressiontest
-    - .rules:merge-requests
+    - .rules:post-merge-acceptance
   image: gromacs/cmake-3.9.6-gcc-7-amdopencl-clfft-openmpi:2020
   variables:
     KUBERNETES_EXTENDED_RESOURCE_NAME: "amd.com/gpu"
@@ -658,6 +672,9 @@ gromacs:gcc-7:regressiontest:
     REGRESSIONTEST_PME_RANK_NUMBER: 0
     REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
     REGRESSIONTEST_OMP_RANK_NUMBER: 1
+    LD_LIBRARY_PATH: "/opt/rocm-3.5.0/opencl/lib"
+  tags:
+    - k8s-scilifelab
   needs:
     - job: gromacs:gcc-7:build
     - job: regressiontests:prepare
@@ -673,6 +690,8 @@ gromacs:gcc-6:regressiontest:
     REGRESSIONTEST_PME_RANK_NUMBER: 0
     REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
     REGRESSIONTEST_OMP_RANK_NUMBER: 1
+  tags:
+    - k8s-scilifelab
   needs:
     - job: gromacs:gcc-6:build
     - job: regressiontests:prepare
@@ -682,6 +701,8 @@ gromacs:clang-8:regressiontest:
     - .gromacs:base:regressiontest
     - .rules:merge-requests
   image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020
+  tags:
+    - k8s-scilifelab
   needs:
     - job: gromacs:clang-8:build
     - job: regressiontests:prepare
@@ -689,8 +710,10 @@ gromacs:clang-8:regressiontest:
 gromacs:clang-TSAN:regressiontest:
   extends:
     - .gromacs:base:regressiontest
-    - .rules:merge-requests
+    - .rules:post-merge-acceptance
   image: gromacs/cmake-3.15.7-llvm-8-tsan:2020
+  tags:
+    - k8s-scilifelab
   needs:
     - job: gromacs:clang-TSAN:build
     - job: regressiontests:prepare
@@ -701,6 +724,8 @@ gromacs:clang-ASAN:regressiontest:
     - .use-clang:base
     - .rules:merge-requests
   image: gromacs/cmake-3.15.7-llvm-8-tsan:2020
+  tags:
+    - k8s-scilifelab
   needs:
     - job: gromacs:clang-ASAN:build
     - job: regressiontests:prepare
@@ -714,6 +739,8 @@ gromacs:clang-3.6:regressiontest:
     REGRESSIONTEST_DOUBLE: "-double"
     REGRESSIONTEST_OMP_RANK_NUMBER: 0
     REGRESSIONTEST_PARALLEL: "-np"
+  tags:
+    - k8s-scilifelab
   needs:
     - job: gromacs:clang-3.6:build
     - job: regressiontests:prepare
@@ -725,7 +752,11 @@ gromacs:gcc-6:release:test:
   stage: release-tests
   image: gromacs/cmake-3.9.6-gcc-6-cuda-10.1-nvidiaopencl-clfft-openmpi:2020
   variables:
+    KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
+    KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
     BUILD_DIR: release-builds-gcc
+  tags:
+    - k8s-scilifelab
   needs:
     - job: gromacs:gcc-6:release:configure
     - job: gromacs:gcc-6:release:build
@@ -738,6 +769,11 @@ gromacs:gcc-7:release:test:
   image: gromacs/cmake-3.9.6-gcc-7-amdopencl-clfft-openmpi:2020
   variables:
     BUILD_DIR: release-builds-gcc
+    KUBERNETES_EXTENDED_RESOURCE_NAME: "amd.com/gpu"
+    KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
+    LD_LIBRARY_PATH: "/opt/rocm-3.5.0/opencl/lib"
+  tags:
+    - k8s-scilifelab
   needs:
     - job: gromacs:gcc-7:release:configure
     - job: gromacs:gcc-7:release:build
@@ -761,7 +797,11 @@ gromacs:clang-8:release:test:
   stage: release-tests
   image: gromacs/cmake-3.15.7-llvm-8-cuda-10.1-openmpi:2020
   variables:
+    KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
+    KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
     BUILD_DIR: release-builds-clang
+  tags:
+    - k8s-scilifelab
   needs:
     - job: gromacs:clang-8:release:configure
     - job: gromacs:clang-8:release:build
@@ -789,6 +829,8 @@ gromacs:clang-3.6:release:regressiontest:
     REGRESSIONTEST_DOUBLE: "-double"
     REGRESSIONTEST_OMP_RANK_NUMBER: 0
     REGRESSIONTEST_PARALLEL: "-np"
+  tags:
+    - k8s-scilifelab
   needs:
     - job: gromacs:clang-3.6:release:build
     - job: regressiontests:package
@@ -806,7 +848,8 @@ gromacs:clang-8:release:regressiontest:
     REGRESSIONTEST_PME_RANK_NUMBER: 0
     REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
     REGRESSIONTEST_OMP_RANK_NUMBER: 1
-
+  tags:
+    - k8s-scilifelab
   needs:
     - job: gromacs:clang-8:release:build
     - job: regressiontests:package
index 3ad8266efd3a99a7f2560870f40e7969ed435ef4..0cc3391829c05a3cbee5a8de5fea9cd6264949a0 100644 (file)
@@ -6,7 +6,6 @@ clang-tidy:configure-push:
     - .use-clang:base
     - .rules:basic-push
   image: gromacs/cmake-3.11.4-llvm-8-openmpi:2020
-  tags: []
   variables:
     COMPILER_MAJOR_VERSION: 8
     BUILD_DIR: build-clang-tidy
@@ -18,7 +17,6 @@ clang-tidy:configure-schedule:
     - .use-clang:base
     - .rules:nightly-not-for-release
   image: gromacs/cmake-3.11.4-llvm-8-openmpi:2020
-  tags: []
   variables:
     COMPILER_MAJOR_VERSION: 8
     BUILD_DIR: build-clang-tidy
@@ -44,7 +42,6 @@ clang-tidy:test:
     - .rules:basic-push
   stage: source-check
   image: gromacs/cmake-3.11.4-llvm-8-openmpi:2020
-  tags: []
   needs:
     - job: clang-tidy:configure-push
   variables:
@@ -53,8 +50,10 @@ clang-tidy:test:
     EXTRA_INSTALLS: clang-tidy-$COMPILER_MAJOR_VERSION
     KUBERNETES_CPU_LIMIT: 4
     KUBERNETES_CPU_REQUEST: 2
-    KUBERNETES_MEMORY_LIMIT: 4Gi
+    KUBERNETES_MEMORY_REQUEST: 4Gi
   script:
+    # Make sure that a Python interpreter can be found for `/bin/env python`
+    - test -x /usr/bin/python || update-alternatives --install /usr/bin/python python /usr/bin/python3 1
     - REV=$(git fetch -q https://gitlab.com/gromacs/gromacs.git release-2020 && git show -s --pretty=format:"%h" `git merge-base FETCH_HEAD HEAD`)
     - HEAD_REV=$(git show -s --pretty=format:"%h" HEAD)
     - if [[ "$REV" == "$HEAD_REV" ]] ; then
@@ -78,12 +77,11 @@ clang-format:
   cache: {}
   stage: pre-build
   image: gromacs/ci-docs-llvm:2020
-  tags: []
   variables:
     COMPILER_MAJOR_VERSION: 7
     KUBERNETES_CPU_LIMIT: 1
     KUBERNETES_CPU_REQUEST: 1
-    KUBERNETES_MEMORY_LIMIT: 2Gi
+    KUBERNETES_MEMORY_REQUEST: 2Gi
     EXTRA_INSTALLS: clang-format-$COMPILER_MAJOR_VERSION
   script:
     - REV=$(git fetch -q https://gitlab.com/gromacs/gromacs.git release-2020 && git show -s --pretty=format:"%h" `git merge-base FETCH_HEAD HEAD`)
@@ -109,11 +107,10 @@ copyright-check:
   cache: {}
   stage: pre-build
   image: gromacs/ci-docs-llvm:2020
-  tags: []
   variables:
     KUBERNETES_CPU_LIMIT: 1
     KUBERNETES_CPU_REQUEST: 1
-    KUBERNETES_MEMORY_LIMIT: 2Gi
+    KUBERNETES_MEMORY_REQUEST: 2Gi
   script:
     - REV=$(git fetch -q https://gitlab.com/gromacs/gromacs.git release-2020 && git show -s --pretty=format:"%h" `git merge-base FETCH_HEAD HEAD`)
     - HEAD_REV=$(git show -s --pretty=format:"%h" HEAD)
@@ -144,21 +141,22 @@ check-source:
     - .rules:basic-push
   cache: {}
   stage: source-check
-  tags: []
   needs:
     - job: docs:build
       artifacts: true
   variables:
     KUBERNETES_CPU_LIMIT: 1
     KUBERNETES_CPU_REQUEST: 1
-    KUBERNETES_MEMORY_LIMIT: 2Gi
+    KUBERNETES_MEMORY_REQUEST: 2Gi
     BUILD_DIR: build-docs
   script:
     - cd $BUILD_DIR
     - cmake --build . --target check-source
     - awk '/warning.*include style.*order/,/You can use.*rst|^$/' docs/doxygen/check-source.log | tee doxygenError.txt || true
+    - awk '/warning:.*includes/,/unnecessarily|^$/' docs/doxygen/check-source.log | tee -a doxygenError.txt || true
     - awk '/Traceback/,/.*rror|^$/' docs/doxygen/doxygen*log docs/doxygen/check-source.log | tee -a doxygenError.txt || true
     - awk '/warning:/,/in doxygen.*|^$/' docs/doxygen/doxygen*log | tee -a doxygenError.txt || true
+    - grep -i "unused cycle suppression" docs/doxygen/check-source.log | tee -a doxygenError.txt || true
     - if [ -s doxygenError.txt ] ; then echo "Found errors while running doxygen"; exit 1; fi
   artifacts:
     name: docs-artifacts-$CI_COMMIT_REF_SLUG
@@ -178,7 +176,7 @@ linkchecker:
   variables:
     KUBERNETES_CPU_LIMIT: 1
     KUBERNETES_CPU_REQUEST: 1
-    KUBERNETES_MEMORY_LIMIT: 2Gi
+    KUBERNETES_MEMORY_REQUEST: 2Gi
     BUILD_DIR: build-docs
   script:
     - cd $BUILD_DIR
index 477dff8ae8f47930bd5857d6191204d888831066..3e7a0666d102746dca267d89f648ec6fd28bc96c 100644 (file)
@@ -12,7 +12,7 @@
   variables:
     KUBERNETES_CPU_LIMIT: 2
     KUBERNETES_CPU_REQUEST: 2
-    KUBERNETES_MEMORY_LIMIT: 2Gi
+    KUBERNETES_MEMORY_REQUEST: 2Gi
     PY_UNIT_TEST_XML: $CI_PROJECT_DIR/py-JUnitTestResults.xml
     PY_MPI_UNIT_TEST_XML: $CI_PROJECT_DIR/py-mpi-JUnitTestResults.xml
     PY_ACCEPTANCE_TEST_XML: $CI_PROJECT_DIR/gmxapi-acceptance-JUnitTestResults.xml
@@ -30,6 +30,9 @@
         - $PY_MPI_ACCEPTANCE_TEST_XML
     when: always
     expire_in: 1 week
+  tags:
+    - k8s-scilifelab
+  # The dependency means we need to use the same tag restriction as upstream.
   needs:
     - job: gromacs:clang-8:build
       artifacts: true
@@ -90,6 +93,9 @@ gmxapi-0.1:clang-8:py-3.8.2:
         - $PY_MPI_ACCEPTANCE_TEST_XML
     when: always
     expire_in: 1 week
+  tags:
+    - k8s-scilifelab
+  # The dependency means we need to use the same tag restriction as upstream.
   needs:
     - job: gromacs:clang-8:build
       artifacts: true
diff --git a/admin/gitlab-ci/rules.gitlab-ci.yml b/admin/gitlab-ci/rules.gitlab-ci.yml
new file mode 100644 (file)
index 0000000..201e329
--- /dev/null
@@ -0,0 +1,199 @@
+# Mix-in definitions to inherit a standardized *rules* parameter.
+# Reference:
+# * https://docs.gitlab.com/ee/ci/yaml/#rules
+# * https://docs.gitlab.com/ee/ci/variables/README.html#syntax-of-environment-variable-expressions
+
+# GitLab CI uses a YAML array for the *rules* job parameter, but neither YAML
+# nor GitLab CI syntax provide a way to merge arrays. However, elements of
+# *rules* are mappings, and we can at least reduce the amount of copy-paste
+# syntax by providing anchors and example arrays.
+# The following YAML objects may be referenced through "anchors" as elements of
+# the *rules* array in mix-in jobs (defined later in the file).
+# The &<name> annotation is a YAML anchor that allows the annotated {"if", "when"} hash
+# to be inserted with a *<name> alias in a `rules` arrays in the current file.
+# Commonly reusable elements have anchors defined for easy copy-paste templating
+# of new rule sets. Rule elements that are unique to a single *rules* mix-in may
+# be defined with the rule set for readability, particularly when the element is
+# the main distinguishing characteristic of the mix-in.
+
+# Exclude from pipelines launched outside the "gromacs" GitLab project namespace.
+.rules-element:if-not-gromacs-then-never: &if-not-gromacs-then-never
+  if: '$CI_PROJECT_NAMESPACE != "gromacs"'
+  when: never
+
+# Exclude if the GROMACS_RELEASE variable is set.
+.rules-element:if-release-then-never: &if-release-then-never
+  if: '$GROMACS_RELEASE'
+  when: never
+
+# Exclude unless the GROMACS_RELEASE variable is set (through the web interface).
+.rules-element:if-not-release-then-never: &if-not-release-then-never
+  if: '$GROMACS_RELEASE == null'
+  when: never
+
+# Include in pipelines triggered through the web interface.
+.rules-element:if-web-then-always: &if-web-then-always
+  if: '$CI_PIPELINE_SOURCE == "web"'
+  when: always
+
+# Exclude from pipelines triggered by "push" events.
+.rules-element:if-push-then-never: &if-push-then-never
+  if: '$CI_PIPELINE_SOURCE == "push"'
+  when: never
+
+# Include in pipelines triggered by "push" events to any branch.
+.rules-element:if-push-then-always: &if-push-then-always
+  if: '$CI_PIPELINE_SOURCE == "push"'
+  when: always
+
+# Include in "schedule" pipelines (e.g. nightly jobs)
+.rules-element:if-schedule-then-always: &if-schedule-then-always
+  if: '$CI_PIPELINE_SOURCE == "schedule"'
+  when: always
+
+# Exclude from selective "schedule" pipelines, e.g. just those
+# that should run the post-merge-acceptance jobs.
+.rules-element:if-post-merge-acceptance-then-never: &if-post-merge-acceptance-then-never
+  if: '$POST_MERGE_ACCEPTANCE'
+  when: never
+
+# Include in pipelines triggered in the merge request process.
+.rules-element:if-mr-then-always: &if-mr-then-always
+  if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
+  when: always
+
+# Exclude from pipelines triggered in the merge request process, such as for
+# jobs that duplicate checks already performed for "push" events or that we
+# only want to run in scheduled / manually triggered pipelines.
+.rules-element:if-mr-then-never: &if-mr-then-never
+  if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
+  when: never
+
+# Include job when running for merge request or when pushing to protected branch.
+.rules-element:if-post-merge-acceptance-or-mr-then-always: &if-post-merge-acceptance-or-mr-then-always
+  if: '$CI_PIPELINE_SOURCE == "merge_request_event" ||
+       ($CI_PIPELINE_SOURCE == "push" &&
+        ($CI_COMMIT_REF_NAME == "master" || $CI_COMMIT_REF_NAME == "release-*"))'
+  when: always
+
+# Include job only for post submit push
+.rules-element:if-post-merge-acceptance-then-always: &if-post-merge-acceptance-then-always
+  if: '$CI_PIPELINE_SOURCE == "push" &&
+        ($CI_COMMIT_REF_NAME == "master" || $CI_COMMIT_REF_NAME == "release-*")'
+  when: always
+
+# When composing a rule set, note that the first matching rule is applied.
+# If you want later rules to be evaluated, you must make sure that the *if*
+# clause of the earlier rules does not match. This may require inverting the
+# logic of a rule element *if* and *when* clause in a new element definition
+# (above) in order to construct new rule sets.
+
+# Jobs that run for new commits and pipelines triggered by schedules or
+# through the web interface, unless GROMACS_RELEASE is set. Excluded from
+# extra pipelines generated by merge request events.
+# Includes non-gromacs projects. Note that jobs using this rule are
+# eligible to run on non-gromacs project infrastructure, and should therefore
+# override the default *tag* parameter to exclude tags specific to the GROMACS
+# GitLab Runner infrastructure. I.e. in the job definition, set `tags: []`
+.rules:basic-push:
+  rules:
+    - *if-release-then-never
+    - *if-mr-then-never
+    - *if-post-merge-acceptance-then-never
+    - *if-web-then-always
+    - *if-push-then-always
+    - *if-schedule-then-always
+
+# Jobs to run after successful merge of a new commit.
+# Only run on GROMACS infrastructure and only when merging into
+# the master or release branches.
+.rules:post-merge-acceptance:
+  rules:
+    - *if-not-gromacs-then-never
+    - *if-release-then-never
+    - *if-mr-then-never
+    - *if-post-merge-acceptance-then-always
+    - *if-web-then-always
+    - *if-schedule-then-always
+
+# Jobs that run for merge requests and schedules, but not when GROMACS_RELEASE
+# is set. Excludes non-GROMACS projects.
+# More elaborate rule sets for merge requests should be based on the same sequence.
+.rules:merge-requests:
+  rules:
+    - *if-not-gromacs-then-never
+    - *if-release-then-never
+    - *if-push-then-never
+    - *if-post-merge-acceptance-then-never
+    - *if-web-then-always
+    - *if-schedule-then-always
+    - *if-mr-then-always
+
+# Jobs running both in post submit and for merge requests
+# Excludes non-GROMACS projects.
+.rules:merge-and-post-merge-acceptance:
+  rules:
+    - *if-not-gromacs-then-never
+    - *if-release-then-never
+    - *if-web-then-always
+    - *if-schedule-then-always
+    - *if-post-merge-acceptance-or-mr-then-always
+
+# Jobs that run for merge requests and schedules for branch `master`,
+# but not when GROMACS_RELEASE is set.
+# Excludes non-gromacs projects.
+.rules:merge-requests:master:
+  rules:
+    - *if-not-gromacs-then-never
+    - *if-release-then-never
+    - *if-post-merge-acceptance-then-never
+    - *if-web-then-always
+    # This rule catches "push" and other events in branches other than `master`
+    # but allows merge_request_events for merge requests targeting master.
+    - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME != "master" && $CI_COMMIT_REF_NAME != "master"'
+      when: never
+    - *if-schedule-then-always
+    - *if-mr-then-always
+
+# Jobs that run for merge requests and schedules for branch `release-2020`,
+# but not when GROMACS_RELEASE is set.
+# Excludes non-gromacs projects.
+.rules:merge-requests:release-2020:
+  rules:
+    - *if-not-gromacs-then-never
+    - *if-release-then-never
+    - *if-post-merge-acceptance-then-never
+    # This next rule catches "push" and other events in branches other than `release-2020`
+    # but allows merge_request_events for merge requests targeting `release-2020`.
+    # This rule is before "web" so the web interface won't include jobs that can't succeed
+    # (and would not ordinarily be run). Such jobs are hard to identify in a way that is
+    # sufficiently general for a global rules definition.
+    # If extra coverage is needed through a web-triggered job in merge request branches,
+    # we could provide an additional short-circuiting rule based on an environment variable
+    # to be provided through the web interface.
+    - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME != "release-2020" && $CI_COMMIT_REF_NAME != "release-2020"'
+      when: never
+    - *if-web-then-always
+    - *if-schedule-then-always
+    - *if-mr-then-always
+
+# Rule to run a job only in nightly release-preparation pipelines.
+# Checks if the GROMACS_RELEASE variable was set (typically through the GitLab web interface).
+# Excludes merge_requests and non-gromacs projects.
+.rules:nightly-only-for-release:
+  rules:
+    - *if-not-gromacs-then-never
+    - *if-not-release-then-never
+    - *if-post-merge-acceptance-then-never
+    - *if-web-then-always
+    - *if-schedule-then-always
+
+# Jobs that run on schedules, but not for merge requests or when GROMACS_RELEASE
+# is set. Excludes non-gromacs projects.
+.rules:nightly-not-for-release:
+  rules:
+    - *if-not-gromacs-then-never
+    - *if-release-then-never
+    - *if-post-merge-acceptance-then-never
+    - *if-web-then-always
+    - *if-schedule-then-always
index cb0bc0ac518fc40ceee9f982df99087d011232e1..b54a1d8c3fd56f1d67d059f39668e0a08ff6e213 100644 (file)
@@ -10,7 +10,7 @@
   variables:
     KUBERNETES_CPU_LIMIT: 2
     KUBERNETES_CPU_REQUEST: 2
-    KUBERNETES_MEMORY_LIMIT: 2Gi
+    KUBERNETES_MEMORY_REQUEST: 2Gi
     PLUGIN_TEST_XML: $CI_PROJECT_DIR/py-JUnitTestResults.xml
     PLUGIN_MPI_TEST_XML: $CI_PROJECT_DIR/py-mpi-JUnitTestResults.xml
     EXTRA_INSTALLS: "curl libbz2-dev libffi-dev liblzma-dev libncurses5-dev libncursesw5-dev libreadline-dev libsqlite3-dev libssl-dev llvm python-openssl tk-dev zlib1g-dev"
@@ -24,6 +24,9 @@
         - $PLUGIN_MPI_TEST_XML
     when: always
     expire_in: 1 week
+  tags:
+    - k8s-scilifelab
+  # The dependency means we need to use the same tag restriction as upstream.
   needs:
     # Note: if we want to run regression tests using artifacts from the `release-2020`
     # pipelines, we could specify *project* and *ref*, but initially we are only
index 6b12fde7b0f4aa01c3ec2dbe265ece64444684d2..1c99c8fb97dc51c3d182505651c311fd192e288d 100644 (file)
@@ -19,6 +19,9 @@
         - $PLUGIN_MPI_TEST_XML
     when: always
     expire_in: 1 week
+  tags:
+    - k8s-scilifelab
+  # The dependency means we need to use the same tag restriction as upstream.
   needs:
     - job: gromacs:clang-8:build
       artifacts: true
index ab296f52508c7c81af01b4605e9b1708e00fc9e4..533e028090419083d30375477e9919af0d08a2a5 100644 (file)
@@ -44,7 +44,6 @@ src/gromacs/tables/cubicsplinetable.h: warning: includes "simd.h" unnecessarily
 src/gromacs/tables/quadraticsplinetable.h: warning: includes "simd.h" unnecessarily
 
 # These are specific to Folding@Home, and easiest to suppress here
-*: warning: includes non-local file as "corewrap.h"
 src/gmxpre.h: warning: includes non-local file as "swindirect.h"
 
 # New external API (see https://redmine.gromacs.org/issues/2586) has some unresolved
index 991f9a31725e689a28a4897956fec54717f26c3e..4131ed28993f2bbb484b3f7844ca11bc2f03177e 100644 (file)
@@ -42,8 +42,6 @@
 
 #include "gromacs/compat/pointers.h"
 
-#include "config.h"
-
 #include <memory>
 #include <vector>
 
index 80e407451b48b9619c57df2afe6942f6606a6d1c..71771bcccb91c79a7cf599aaf7ca6b265e3a6c36 100644 (file)
@@ -47,8 +47,6 @@
 
 #include "gromacs/gmxpreprocess/readir.h"
 
-#include "config.h"
-
 #include <string>
 
 #include <gtest/gtest.h>
index 9d27cc96ac576972f4c90dba2c293503ae9d22d4..9f7da6257d29fe71765529e54c46c3c15522a247 100644 (file)
@@ -42,8 +42,6 @@
 
 #include "gromacs/utility/enumerationhelpers.h"
 
-#include "config.h"
-
 #include <iostream>
 
 #include <gtest/gtest.h>
index 7149eee08b3d87a291fdd7143e6900c34bcc08a2..ab7cc8798f04c283d435349198830bcaeef0314f 100644 (file)
@@ -42,8 +42,6 @@
  */
 #include "gmxpre.h"
 
-#include "config.h"
-
 #include <string>
 
 #include <gmock/gmock.h>
index 67141294df81c6e842b5e4c71d011872e8116036..37096d143bdccf5aad0c10f45cfff1f29db434ee 100644 (file)
@@ -56,6 +56,8 @@
 #ifndef GMX_TESTUTILS_TESTASSERTS_H
 #define GMX_TESTUTILS_TESTASSERTS_H
 
+#include "config.h"
+
 #include <string>
 
 #include <gtest/gtest.h>