a9801ec3898ef75c67693a751a99f0837f36854a
[alexxy/gromacs.git] / admin / gitlab-ci / python-gmxapi.gitlab-ci.yml
1 #
2 # Jobs to test gmxapi client (Python) packages
3 #
4
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     KUBERNETES_MEMORY_REQUEST: 2Gi
17     PY_UNIT_TEST_XML: $CI_PROJECT_DIR/py-JUnitTestResults.xml
18     PY_MPI_UNIT_TEST_XML: $CI_PROJECT_DIR/py-mpi-JUnitTestResults.xml
19     PY_ACCEPTANCE_TEST_XML: $CI_PROJECT_DIR/gmxapi-acceptance-JUnitTestResults.xml
20     PY_MPI_ACCEPTANCE_TEST_XML: $CI_PROJECT_DIR/gmxapi-acceptance-mpi-JUnitTestResults.xml
21     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"
22   script:
23     - source $INSTALL_DIR/bin/GMXRC
24     - source $VENVPATH/bin/activate && INSTALL_DIR=$PWD/$INSTALL_DIR OMP_NUM_THREADS=1 bash admin/ci-scripts/build-and-test-py-gmxapi-0.1.sh
25   # Note that the XML output is concatenated when multiple reports are produced
26   # by a single job. If this presents problems, we may have to split the tests
27   # into multiple jobs. In particular, test names will appear once for MPI and
28   # once for non-MPI runs, which may confuse the test result parser.
29   artifacts:
30     reports:
31       junit:
32         - $PY_UNIT_TEST_XML
33         - $PY_MPI_UNIT_TEST_XML
34         - $PY_ACCEPTANCE_TEST_XML
35         - $PY_MPI_ACCEPTANCE_TEST_XML
36     when: always
37     expire_in: 1 week
38   tags:
39     - k8s-scilifelab
40   # The dependency means we need to use the same tag restriction as upstream.
41   needs:
42     - job: gromacs:clang-8:build
43       artifacts: true
44
45 gmxapi-0.1:clang-8:py-3.5.9:
46   extends:
47     - .gmxapi-0.1:clang-8
48     - .rules:merge-requests:release-2020
49   variables:
50     VENVPATH: "/root/venv/py3.5"
51     PY_VER: "3.5.9"
52
53 gmxapi-0.1:clang-8:py-3.6.10:
54   extends:
55     - .gmxapi-0.1:clang-8
56     - .rules:merge-requests:release-2020
57   variables:
58     VENVPATH: "/root/venv/py3.6"
59     PY_VER: "3.6.10"
60
61 gmxapi-0.1:clang-8:py-3.7.7:
62   extends:
63     - .gmxapi-0.1:clang-8
64     - .rules:merge-requests:release-2020
65   variables:
66     VENVPATH: "/root/venv/py3.7"
67     PY_VER: "3.7.7"
68
69 gmxapi-0.1:clang-8:py-3.8.2:
70   extends:
71     - .gmxapi-0.1:clang-8
72     - .rules:merge-requests:release-2020
73   variables:
74     VENVPATH: "/root/venv/py3.8"
75     PY_VER: "3.8.2"
76
77 # Base job definition for gmxapi 0.2 tests against GROMACS 2021 in clang-8 environments.
78 .gmxapi-0.2:clang-8:gmx2021:
79   extends:
80     - .variables:default
81     - .use-clang:base
82   image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020
83   stage: test
84   variables:
85     KUBERNETES_CPU_LIMIT: 2
86     KUBERNETES_CPU_REQUEST: 2
87     KUBERNETES_MEMORY_LIMIT: 2Gi
88     KUBERNETES_MEMORY_REQUEST: 2Gi
89     PY_UNIT_TEST_XML: $CI_PROJECT_DIR/py-JUnitTestResults.xml
90     PY_MPI_UNIT_TEST_XML: $CI_PROJECT_DIR/py-mpi-JUnitTestResults.xml
91     PY_ACCEPTANCE_TEST_XML: $CI_PROJECT_DIR/gmxapi-acceptance-JUnitTestResults.xml
92     PY_MPI_ACCEPTANCE_TEST_XML: $CI_PROJECT_DIR/gmxapi-acceptance-mpi-JUnitTestResults.xml
93   script:
94     - source $INSTALL_DIR/bin/GMXRC
95     - source $VENVPATH/bin/activate && INSTALL_DIR=$PWD/$INSTALL_DIR OMP_NUM_THREADS=1 bash admin/ci-scripts/build-and-test-py-gmxapi-0.2.sh
96   artifacts:
97     reports:
98       junit:
99         - $PY_UNIT_TEST_XML
100         - $PY_MPI_UNIT_TEST_XML
101         - $PY_ACCEPTANCE_TEST_XML
102         - $PY_MPI_ACCEPTANCE_TEST_XML
103     when: always
104     expire_in: 1 week
105   tags:
106     - k8s-scilifelab
107   # The dependency means we need to use the same tag restriction as upstream.
108   needs:
109     - job: gromacs:clang-8:build
110       artifacts: true
111
112 gmxapi-0.2:clang-8:gmx2021:py-3.6.10:
113   extends:
114     - .gmxapi-0.2:clang-8:gmx2021
115     - .rules:merge-requests:master
116   variables:
117     VENVPATH: "/root/venv/py3.6"
118     PY_VER: "3.6.10"
119
120 gmxapi-0.2:clang-8:gmx2021:py-3.7.7:
121   extends:
122     - .gmxapi-0.2:clang-8:gmx2021
123     - .rules:merge-requests:master
124   variables:
125     VENVPATH: "/root/venv/py3.7"
126     PY_VER: "3.7.7"
127
128 gmxapi-0.2:clang-8:gmx2021:py-3.8.2:
129   extends:
130     - .gmxapi-0.2:clang-8:gmx2021
131     - .rules:merge-requests:master
132   variables:
133     VENVPATH: "/root/venv/py3.8"
134     PY_VER: "3.8.2"