Enable MPI ensemble testing for gmxapi.
[gromacs.git] / admin / gitlab-ci / python-gmxapi.gitlab-ci.yml
blobe33651144f8d2d6f8e301a45b4f4d404b072fba5
2 # Jobs to test gmxapi client (Python) packages
5 # Base job definition for gmxapi 0.1 tests against GROMACS 2020 in clang-8 environments.
6 .gmxapi-0.1:clang-8:
7   extends:
8     - .variables:default
9     - .use-clang:base
10   stage: test
11   image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020
12   variables:
13     KUBERNETES_CPU_LIMIT: 2
14     KUBERNETES_CPU_REQUEST: 2
15     KUBERNETES_MEMORY_LIMIT: 2Gi
16     PY_UNIT_TEST_XML: $CI_PROJECT_DIR/py-JUnitTestResults.xml
17     PY_MPI_UNIT_TEST_XML: $CI_PROJECT_DIR/py-mpi-JUnitTestResults.xml
18     PY_ACCEPTANCE_TEST_XML: $CI_PROJECT_DIR/gmxapi-acceptance-JUnitTestResults.xml
19     PY_MPI_ACCEPTANCE_TEST_XML: $CI_PROJECT_DIR/gmxapi-acceptance-mpi-JUnitTestResults.xml
20     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"
21   script:
22     - source $INSTALL_DIR/bin/GMXRC
23     - source $VENVPATH/bin/activate && INSTALL_DIR=$PWD/$INSTALL_DIR bash admin/ci-scripts/build-and-test-py-gmxapi-0.1.sh
24   artifacts:
25     reports:
26       junit:
27         - $PY_UNIT_TEST_XML
28         - $PY_MPI_UNIT_TEST_XML
29         - $PY_ACCEPTANCE_TEST_XML
30         - $PY_MPI_ACCEPTANCE_TEST_XML
31     when: always
32     expire_in: 1 week
33   tags:
34     - k8s-scilifelab
35   # The dependency means we need to use the same tag restriction as upstream.
36   needs:
37     - job: gromacs:clang-8:build
38       artifacts: true
40 gmxapi-0.1:clang-8:py-3.5.9:
41   extends:
42     - .gmxapi-0.1:clang-8
43     - .rules:merge-requests:release-2020
44   variables:
45     VENVPATH: "/root/venv/py3.5"
46     PY_VER: "3.5.9"
48 gmxapi-0.1:clang-8:py-3.6.10:
49   extends:
50     - .gmxapi-0.1:clang-8
51     - .rules:merge-requests:release-2020
52   variables:
53     VENVPATH: "/root/venv/py3.6"
54     PY_VER: "3.6.10"
56 gmxapi-0.1:clang-8:py-3.7.7:
57   extends:
58     - .gmxapi-0.1:clang-8
59     - .rules:merge-requests:release-2020
60   variables:
61     VENVPATH: "/root/venv/py3.7"
62     PY_VER: "3.7.7"
64 gmxapi-0.1:clang-8:py-3.8.2:
65   extends:
66     - .gmxapi-0.1:clang-8
67     - .rules:merge-requests:release-2020
68   variables:
69     VENVPATH: "/root/venv/py3.8"
70     PY_VER: "3.8.2"
72 # Base job definition for gmxapi 0.2 tests against GROMACS 2021 in clang-8 environments.
73 .gmxapi-0.2:clang-8:gmx2021:
74   extends:
75     - .variables:default
76     - .use-clang:base
77   image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020
78   stage: test
79   variables:
80     PY_UNIT_TEST_XML: $CI_PROJECT_DIR/py-JUnitTestResults.xml
81     PY_MPI_UNIT_TEST_XML: $CI_PROJECT_DIR/py-mpi-JUnitTestResults.xml
82     PY_ACCEPTANCE_TEST_XML: $CI_PROJECT_DIR/gmxapi-acceptance-JUnitTestResults.xml
83     PY_MPI_ACCEPTANCE_TEST_XML: $CI_PROJECT_DIR/gmxapi-acceptance-mpi-JUnitTestResults.xml
84   script:
85     - source $INSTALL_DIR/bin/GMXRC
86     - source $VENVPATH/bin/activate && INSTALL_DIR=$PWD/$INSTALL_DIR bash admin/ci-scripts/build-and-test-py-gmxapi-0.2.sh
87   artifacts:
88     reports:
89       junit:
90         - $PY_UNIT_TEST_XML
91         - $PY_MPI_UNIT_TEST_XML
92         - $PY_ACCEPTANCE_TEST_XML
93         - $PY_MPI_ACCEPTANCE_TEST_XML
94     when: always
95     expire_in: 1 week
96   tags:
97     - k8s-scilifelab
98   # The dependency means we need to use the same tag restriction as upstream.
99   needs:
100     - job: gromacs:clang-8:build
101       artifacts: true
103 gmxapi-0.2:clang-8:gmx2021:py-3.6.10:
104   extends:
105     - .gmxapi-0.2:clang-8:gmx2021
106     - .rules:merge-requests:master
107   variables:
108     VENVPATH: "/root/venv/py3.6"
109     PY_VER: "3.6.10"
111 gmxapi-0.2:clang-8:gmx2021:py-3.7.7:
112   extends:
113     - .gmxapi-0.2:clang-8:gmx2021
114     - .rules:merge-requests:master
115   variables:
116     VENVPATH: "/root/venv/py3.7"
117     PY_VER: "3.7.7"
119 gmxapi-0.2:clang-8:gmx2021:py-3.8.2:
120   extends:
121     - .gmxapi-0.2:clang-8:gmx2021
122     - .rules:merge-requests:master
123   variables:
124     VENVPATH: "/root/venv/py3.8"
125     PY_VER: "3.8.2"