Normalize gmxapi related release-2020 job logic.
authorM. Eric Irrgang <ericirrgang@gmail.com>
Mon, 13 Apr 2020 17:05:13 +0000 (20:05 +0300)
committerM. Eric Irrgang <ericirrgang@gmail.com>
Thu, 21 May 2020 08:31:34 +0000 (11:31 +0300)
Use rules definied in global.gitlab-ci.yml for gmxapi related jobs.

Refs #3475

admin/gitlab-ci/global.gitlab-ci.yml
admin/gitlab-ci/python-gmxapi.gitlab-ci.yml
admin/gitlab-ci/sample_restraint-regression.gitlab-ci.yml
admin/gitlab-ci/sample_restraint.gitlab-ci.yml

index 5734819560dae6c29979888d0cf67e659dc96de8..3c291c29e48eb90d8a0c44021a96310f6d032073 100644 (file)
     - 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.
index 4d51fe5935a82b8e9b9c6d658e4e2d44f9468532..c332f8a699738895c343ae878ab7207a91271e6a 100644 (file)
     - job: gromacs:clang-8:build
       artifacts: true
 
+gmxapi-0.1:clang-8:py-3.5.9:
+  extends:
+    - .gmxapi-0.1:clang-8
+    - .rules:merge-requests:release-2020
+  variables:
+    VENVPATH: "/root/venv/py3.5"
+    PY_VER: "3.5.9"
+
 gmxapi-0.1:clang-8:py-3.6.10:
   extends:
     - .gmxapi-0.1:clang-8
-    - .rules:merge-requests
+    - .rules:merge-requests:release-2020
   variables:
     VENVPATH: "/root/venv/py3.6"
     PY_VER: "3.6.10"
@@ -42,7 +50,7 @@ gmxapi-0.1:clang-8:py-3.6.10:
 gmxapi-0.1:clang-8:py-3.7.7:
   extends:
     - .gmxapi-0.1:clang-8
-    - .rules:merge-requests
+    - .rules:merge-requests:release-2020
   variables:
     VENVPATH: "/root/venv/py3.7"
     PY_VER: "3.7.7"
@@ -50,7 +58,7 @@ gmxapi-0.1:clang-8:py-3.7.7:
 gmxapi-0.1:clang-8:py-3.8.2:
   extends:
     - .gmxapi-0.1:clang-8
-    - .rules:merge-requests
+    - .rules:merge-requests:release-2020
   variables:
     VENVPATH: "/root/venv/py3.8"
     PY_VER: "3.8.2"
@@ -86,7 +94,7 @@ gmxapi-0.1:clang-8:py-3.8.2:
 gmxapi-0.2:clang-8:gmx2021:py-3.6.10:
   extends:
     - .gmxapi-0.2:clang-8:gmx2021
-    - .rules:merge-requests
+    - .rules:merge-requests:master
   variables:
     VENVPATH: "/root/venv/py3.6"
     PY_VER: "3.6.10"
@@ -94,7 +102,7 @@ gmxapi-0.2:clang-8:gmx2021:py-3.6.10:
 gmxapi-0.2:clang-8:gmx2021:py-3.7.7:
   extends:
     - .gmxapi-0.2:clang-8:gmx2021
-    - .rules:merge-requests
+    - .rules:merge-requests:master
   variables:
     VENVPATH: "/root/venv/py3.7"
     PY_VER: "3.7.7"
@@ -102,7 +110,7 @@ gmxapi-0.2:clang-8:gmx2021:py-3.7.7:
 gmxapi-0.2:clang-8:gmx2021:py-3.8.2:
   extends:
     - .gmxapi-0.2:clang-8:gmx2021
-    - .rules:merge-requests
+    - .rules:merge-requests:master
   variables:
     VENVPATH: "/root/venv/py3.8"
     PY_VER: "3.8.2"
index 2b6885eb4de450e7d2fd72a7182cb35278d82e27..3b9317e5e6a46d2c03efc8ed837e02996fc802aa 100644 (file)
     - job: gromacs:clang-8:build
       artifacts: true
 
+sample_restraint:clang-8:gmx2020:3.5.9:
+  extends:
+    - .sample_restraint:clang-8:gmx2020
+    - .rules:merge-requests:release-2020
+  variables:
+    VENVPATH: "/root/venv/py3.5"
+    PY_VER: "3.5.9"
+
 sample_restraint:clang-8:gmx2020:py-3.6.10:
   extends:
     - .sample_restraint:clang-8:gmx2020
-    - .rules:merge-requests
+    - .rules:merge-requests:release-2020
   variables:
     VENVPATH: "/root/venv/py3.6"
     PY_VER: "3.6.10"
@@ -39,7 +47,7 @@ sample_restraint:clang-8:gmx2020:py-3.6.10:
 sample_restraint:clang-8:gmx2020:py-3.7.7:
   extends:
     - .sample_restraint:clang-8:gmx2020
-    - .rules:merge-requests
+    - .rules:merge-requests:release-2020
   variables:
     VENVPATH: "/root/venv/py3.7"
     PY_VER: "3.7.7"
@@ -47,7 +55,7 @@ sample_restraint:clang-8:gmx2020:py-3.7.7:
 sample_restraint:clang-8:gmx2020:py-3.8.2:
   extends:
     - .sample_restraint:clang-8:gmx2020
-    - .rules:merge-requests
+    - .rules:merge-requests:release-2020
   variables:
     VENVPATH: "/root/venv/py3.8"
     PY_VER: "3.8.2"
index f4909bc61df8a31001c15a895d076f94f72a6894..73d9caf63b49715f64377a8529a2b79f9fdf6ff9 100644 (file)
@@ -26,7 +26,7 @@
 sample_restraint:clang-8:gmx2021:py-3.6.10:
   extends:
     - .sample_restraint:clang-8:gmx2021
-    - .rules:merge-requests
+    - .rules:merge-requests:master
   variables:
     VENVPATH: "/root/venv/py3.6"
     PY_VER: "3.6.10"
@@ -34,7 +34,7 @@ sample_restraint:clang-8:gmx2021:py-3.6.10:
 sample_restraint:clang-8:gmx2021:py-3.7.7:
   extends:
     - .sample_restraint:clang-8:gmx2021
-    - .rules:merge-requests
+    - .rules:merge-requests:master
   variables:
     VENVPATH: "/root/venv/py3.7"
     PY_VER: "3.7.7"
@@ -42,7 +42,7 @@ sample_restraint:clang-8:gmx2021:py-3.7.7:
 sample_restraint:clang-8:gmx2021:py-3.8.2:
   extends:
     - .sample_restraint:clang-8:gmx2021
-    - .rules:merge-requests
+    - .rules:merge-requests:master
   variables:
     VENVPATH: "/root/venv/py3.8"
     PY_VER: "3.8.2"