Add required Infrastructure for Gitlab merges
[alexxy/gromacs.git] / admin / gitlab-ci / gromacs.gitlab-ci.yml
index d0afdf10775ff723064547539ef960618a326fc3..c4017601a8b4888ad6582f59ac394b9b063cb4bb 100644 (file)
@@ -20,6 +20,12 @@ simple-build:
     CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF"
     CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF"
     BUILD_DIR: simple-build
+  only:
+    refs:
+      - web
+      - pushes
+      - schedules
+      - merge_requests
   except:
     variables:
       - $GROMACS_RELEASE
@@ -85,6 +91,12 @@ simple-build:
     - .variables:default
   cache: {}
   stage: configure-build
+  only:
+    refs:
+      - web
+      - pushes
+      - schedules
+      - merge_requests
   variables:
     KUBERNETES_CPU_LIMIT: 1
     KUBERNETES_CPU_REQUEST: 1
@@ -491,6 +503,12 @@ gromacs:clang-8:release:configure:
   # Dockerfiles are from dockerhub, user eriklindahl
   # image in admin/dockerimages/ci-docs-py27
   stage: build
+  only:
+    refs:
+      - web
+      - pushes
+      - schedules
+      - merge_requests
   script:
     - cd $BUILD_DIR
     - cmake --build . -- -j8 2>&1 | tee buildLogFile.log
@@ -806,11 +824,23 @@ gromacs:clang-8:release:build:
 # Jobs running during test stage
 
 .gromacs:base:test:
+  variables:
+    REGRESSIONTEST_TOTAL_RANK_NUMBER: 4
+    REGRESSIONTEST_OMP_RANK_NUMBER: 2
+    REGRESSIONTEST_PME_RANK_NUMBER: 1
+    REGRESSIONTEST_MPI_RUN_COMMAND: ""
+    REGRESSIONTEST_DOUBLE: ""
   stage: test
   retry:
     max: 2
   extends:
     - .variables:default
+  only:
+    refs:
+      - web
+      - pushes
+      - schedules
+      - merge_requests
   script:
     - cd $BUILD_DIR
     - ctest -D ExperimentalTest --output-on-failure | tee ctestLog.log || true
@@ -822,12 +852,18 @@ gromacs:clang-8:release:build:
       exit 1;
       fi
     - cd ..
+    - tar xzf gmx-regressiontests.tar.gz
+    - source $INSTALL_DIR/bin/GMXRC
+    - cd regressiontests
+    - echo "perl gmxtest.pl -nt $REGRESSIONTEST_TOTAL_RANK_NUMBER -ntomp $REGRESSIONTEST_OMP_RANK_NUMBER -npme $REGRESSIONTEST_PME_RANK_NUMBER $REGRESSIONTEST_DOUBLE $REGRESSIONTEST_MPI_RUN_COMMAND"
+    - perl gmxtest.pl -nt $REGRESSIONTEST_TOTAL_RANK_NUMBER -ntomp $REGRESSIONTEST_OMP_RANK_NUMBER -npme $REGRESSIONTEST_PME_RANK_NUMBER $REGRESSIONTEST_DOUBLE $REGRESSIONTEST_MPI_RUN_COMMAND -xml all
   artifacts:
     reports:
       junit: $BUILD_DIR/JUnitTestResults.xml
     paths:
       - $BUILD_DIR/Testing
       - $BUILD_DIR/tests
+      - regressiontests
     when: always
     expire_in: 1 week
 
@@ -839,6 +875,7 @@ gromacs:gcc-7:test:
     - job: simple-build
       artifacts: false
     - job: gromacs:gcc-7:build
+    - job: prepare-regressiontests
   except:
     variables:
       - $GROMACS_RELEASE
@@ -871,6 +908,7 @@ gromacs:gcc-7-simd-sse41:test:
     - job: simple-build
       artifacts: false
     - job: gromacs:gcc-7-simd-sse41:build
+    - job: prepare-regressiontests
   except:
     variables:
       - $GROMACS_RELEASE
@@ -879,10 +917,13 @@ gromacs:gcc-7-double:test:
   extends:
     - .gromacs:base:test
     - .use-gcc7
+  variables:
+    REGRESSIONTEST_DOUBLE: "-double"
   needs:
     - job: simple-build
       artifacts: false
     - job: gromacs:gcc-7-double:build
+    - job: prepare-regressiontests
   except:
     variables:
       - $GROMACS_RELEASE
@@ -916,6 +957,7 @@ gromacs:gcc-7:test-gmxapi:
     - job: simple-build
       artifacts: false
     - job: gromacs:gcc-7:build-gmxapi
+    - job: prepare-regressiontests
   except:
     variables:
       - $GROMACS_RELEASE
@@ -949,6 +991,7 @@ gromacs:gcc-8:test:
     - job: simple-build
       artifacts: false
     - job: gromacs:gcc-8:build
+    - job: prepare-regressiontests
   except:
     variables:
       - $GROMACS_RELEASE
@@ -981,10 +1024,15 @@ gromacs:gcc-8-cuda-10.2:test:
     - .gromacs:base:test
     - .use-cuda
     - .use-gcc8:cuda-10.2
+  variables:
+    REGRESSIONTEST_PME_RANK_NUMBER: 0
+    REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
+    REGRESSIONTEST_OMP_RANK_NUMBER: 1
   needs:
     - job: simple-build
       artifacts: false
     - job: gromacs:gcc-8-cuda-10.2:build
+    - job: prepare-regressiontests
   except:
     variables:
       - $GROMACS_RELEASE
@@ -993,10 +1041,13 @@ gromacs:clang-6:test:
   extends:
     - .gromacs:base:test
     - .use-clang6
+  variables:
+    REGRESSIONTEST_OMP_RANK_NUMBER: 0
   needs:
     - job: simple-build
       artifacts: false
     - job: gromacs:clang-6:build
+    - job: prepare-regressiontests
   except:
     variables:
       - $GROMACS_RELEASE
@@ -1009,6 +1060,7 @@ gromacs:clang-7:test:
     - job: simple-build
       artifacts: false
     - job: gromacs:clang-7:build
+    - job: prepare-regressiontests
   except:
     variables:
       - $GROMACS_RELEASE
@@ -1042,6 +1094,7 @@ gromacs:clang-7:test-gmxapi:
     - job: simple-build
       artifacts: false
     - job: gromacs:clang-7:build-gmxapi
+    - job: prepare-regressiontests
   except:
     variables:
       - $GROMACS_RELEASE
@@ -1075,6 +1128,7 @@ gromacs:clang-8:test:
     - job: simple-build
       artifacts: false
     - job: gromacs:clang-8:build
+    - job: prepare-regressiontests
   except:
     variables:
       - $GROMACS_RELEASE