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