Support oneAPI in gitlab CI
[alexxy/gromacs.git] / admin / gitlab-ci / gromacs.gitlab-ci.yml
index 28a7392c8ad7ea6e0a3fb7df6fe0f43b35b101d3..5edb6be4335f27845eac163f8027b0acec3e8007 100644 (file)
@@ -290,6 +290,20 @@ gromacs:clang-ASAN:configure:
     COMPILER_MAJOR_VERSION: 8
     CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=ASAN"
 
+gromacs:oneapi-2021.1-beta08:configure:
+  extends:
+   - .gromacs:base:configure
+   - .use-oneapi:base
+   - .rules:merge-requests
+  image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master
+  variables:
+    COMPILER_MAJOR_VERSION: 2021
+  before_script:
+    # Necessary to override gitlab default 'set -e' which breaks Intel's
+    # setvar.sh script
+    - set +e
+    - source /opt/intel/oneapi/setvars.sh
+
 gromacs:clang-UBSAN:configure:
   extends:
     - .gromacs:base:configure
@@ -363,6 +377,21 @@ gromacs:clang-8-cuda-10.1:release:configure:
     RELEASE_BUILD_DIR: release-builds-clang
     CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert"
 
+gromacs:oneapi-2021.1-beta08:release:configure:
+  extends:
+   - .gromacs:base:release:configure
+   - .use-oneapi:base
+   - .rules:nightly-only-for-release
+  image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master
+  variables:
+    COMPILER_MAJOR_VERSION: 2021
+    RELEASE_BUILD_DIR: release-builds-oneapi
+  before_script:
+    # Necessary to override gitlab default 'set -e' which breaks Intel's
+    # setvar.sh script
+    - set +e
+    - source /opt/intel/oneapi/setvars.sh
+
 # Jobs running during build stage
 
 .gromacs:base:build:
@@ -483,6 +512,22 @@ gromacs:clang-8:build:
   needs:
     - job: gromacs:clang-8:configure
 
+gromacs:oneapi-2021.1-beta08:build:
+  extends:
+    - .variables:default
+    - .gromacs:base:build
+    - .use-ccache
+    - .before_script:default
+    - .rules:merge-requests
+  image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master
+  needs:
+    - job: gromacs:oneapi-2021.1-beta08:configure
+  before_script:
+    # Necessary to override gitlab default 'set -e' which breaks Intel's
+    # setvar.sh script
+    - set +e
+    - source /opt/intel/oneapi/setvars.sh
+
 gromacs:clang-9-mpi:build:
   extends:
     - .variables:default
@@ -550,6 +595,27 @@ gromacs:clang-8-cuda-10.1:release:build:
   needs:
     - job: gromacs:clang-8-cuda-10.1:release:configure
 
+gromacs:oneapi-2021.1-beta08:release:build:
+  extends:
+    - .variables:default
+    - .gromacs:base:build
+    - .use-oneapi:base
+    - .before_script:default
+    - .use-ccache
+    - .rules:nightly-only-for-release
+  stage: release-build
+  variables:
+    BUILD_DIR: release-builds-oneapi
+    COMPILER_MAJOR_VERSION: 2021
+  image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master
+  needs:
+    - job: gromacs:oneapi-2021.1-beta08:release:configure
+  before_script:
+    # Necessary to override gitlab default 'set -e' which breaks Intel's
+    # setvar.sh script
+    - set +e
+    - source /opt/intel/oneapi/setvars.sh
+
 # Jobs running during test stage
 
 .gromacs:base:test:
@@ -685,6 +751,19 @@ gromacs:clang-UBSAN:test:
   needs:
     - job: gromacs:clang-UBSAN:build
 
+gromacs:oneapi-2021.1-beta08:test:
+  extends:
+    - .gromacs:base:test
+    - .rules:merge-requests
+  image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master
+  needs:
+    - job: gromacs:oneapi-2021.1-beta08:build
+  before_script:
+    # Necessary to override gitlab default 'set -e' which breaks Intel's
+    # setvar.sh script
+    - set +e
+    - source /opt/intel/oneapi/setvars.sh
+
 gromacs:clang-9-mpi:test:
   extends:
     - .gromacs:base:test
@@ -777,6 +856,20 @@ gromacs:clang-9:regressiontest:
     - job: gromacs:clang-9-mpi:build
     - job: regressiontests:prepare
 
+gromacs:oneapi-2021.1-beta08:regressiontest:
+  extends:
+    - .gromacs:base:regressiontest
+    - .rules:merge-requests
+  image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master
+  needs:
+    - job: gromacs:oneapi-2021.1-beta08:build
+    - job: regressiontests:prepare
+  before_script:
+    # Necessary to override gitlab default 'set -e' which breaks Intel's
+    # setvar.sh script
+    - set +e
+    - source /opt/intel/oneapi/setvars.sh
+
 gromacs:gcc-8-cuda-10.1:release:test:
   extends:
     - .gromacs:base:test
@@ -833,6 +926,23 @@ gromacs:clang-8-cuda-10.1:release:test:
     - job: gromacs:clang-8-cuda-10.1:release:configure
     - job: gromacs:clang-8-cuda-10.1:release:build
 
+gromacs:oneapi-2021.1-beta08:release:test:
+  extends:
+    - .gromacs:base:test
+    - .rules:nightly-only-for-release
+  stage: release-tests
+  image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master
+  variables:
+    BUILD_DIR: release-builds-oneapi
+  needs:
+    - job: gromacs:oneapi-2021.1-beta08:release:configure
+    - job: gromacs:oneapi-2021.1-beta08:release:build
+  before_script:
+    # Necessary to override gitlab default 'set -e' which breaks Intel's
+    # setvar.sh script
+    - set +e
+    - source /opt/intel/oneapi/setvars.sh
+
 gromacs:gcc-7:release:regressiontest:
   extends:
     - .gromacs:base:regressiontest
@@ -882,3 +992,22 @@ gromacs:clang-8-cuda-10.1:release:regressiontest:
     - job: gromacs:clang-8-cuda-10.1:release:build
     - job: regressiontests:package
 
+gromacs:oneapi-2021.1-beta08:release:regressiontest:
+  extends:
+    - .gromacs:base:regressiontest
+    - .rules:nightly-only-for-release
+  stage: release-tests
+  image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master
+  variables:
+    BUILD_DIR: release-builds-oneapi
+    REGRESSIONTEST_PME_RANK_NUMBER: 0
+    REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
+    REGRESSIONTEST_OMP_RANK_NUMBER: 1
+  needs:
+    - job: gromacs:oneapi-2021.1-beta08:release:build
+    - job: regressiontests:package
+  before_script:
+    # Necessary to override gitlab default 'set -e' which breaks Intel's
+    # setvar.sh script
+    - set +e
+    - source /opt/intel/oneapi/setvars.sh