The ugliest hack to fix rebase issues ever
[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     PY_UNIT_TEST_XML: $CI_PROJECT_DIR/py-JUnitTestResults.xml
14     PY_MPI_UNIT_TEST_XML: $CI_PROJECT_DIR/py-mpi-JUnitTestResults.xml
15     PY_ACCEPTANCE_TEST_XML: $CI_PROJECT_DIR/gmxapi-acceptance-JUnitTestResults.xml
16     PY_MPI_ACCEPTANCE_TEST_XML: $CI_PROJECT_DIR/gmxapi-acceptance-mpi-JUnitTestResults.xml
17     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"
18   script:
19     - source $INSTALL_DIR/bin/GMXRC
20     - source $VENVPATH/bin/activate && INSTALL_DIR=$PWD/$INSTALL_DIR bash -x admin/ci-scripts/build-and-test-py-gmxapi-0.1.sh
21   artifacts:
22     reports:
23       junit:
24         - $PY_UNIT_TEST_XML
25         - $PY_MPI_UNIT_TEST_XML
26         - $PY_ACCEPTANCE_TEST_XML
27         - $PY_MPI_ACCEPTANCE_TEST_XML
28     when: always
29     expire_in: 1 week
30   needs:
31     - job: gromacs:clang-8:build
32       artifacts: true
33
34 gmxapi-0.1:clang-8:py-3.5.9:
35   extends:
36     - .gmxapi-0.1:clang-8
37   rules:
38     - if: '$CI_PROJECT_NAMESPACE != "gromacs"'
39       when: never
40     # Allow explicit trigger through web interface.
41     - if: '$GMX_GMXAPI_0_1'
42       when: always
43     - if: '$GROMACS_RELEASE'
44       when: never
45     # Run this job for release-2020 branch and merge-requests targeting it.
46     - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "release-2020" || $CI_COMMIT_BRANCH == "release-2020"'
47       when: always
48   variables:
49     VENVPATH: "/root/venv/py3.5"
50     PY_VER: "3.5.9"
51
52 gmxapi-0.1:clang-8:py-3.6.10:
53   extends:
54     - .gmxapi-0.1:clang-8
55   rules:
56     - if: '$CI_PROJECT_NAMESPACE != "gromacs"'
57       when: never
58     # Allow explicit trigger through web interface.
59     - if: '$GMX_GMXAPI_0_1'
60       when: always
61     - if: '$GROMACS_RELEASE'
62       when: never
63     # Run this job for release-2020 branch and merge-requests targeting it.
64     - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "release-2020" || $CI_COMMIT_BRANCH == "release-2020"'
65       when: always
66   variables:
67     VENVPATH: "/root/venv/py3.6"
68     PY_VER: "3.6.10"
69
70 gmxapi-0.1:clang-8:py-3.7.7:
71   extends:
72     - .gmxapi-0.1:clang-8
73   rules:
74     - if: '$CI_PROJECT_NAMESPACE != "gromacs"'
75       when: never
76     # Allow explicit trigger through web interface.
77     - if: '$GMX_GMXAPI_0_1'
78       when: always
79     - if: '$GROMACS_RELEASE'
80       when: never
81     # Run this job for release-2020 branch and merge-requests targeting it.
82     - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "release-2020" || $CI_COMMIT_BRANCH == "release-2020"'
83       when: always
84   variables:
85     VENVPATH: "/root/venv/py3.7"
86     PY_VER: "3.7.7"
87
88 gmxapi-0.1:clang-8:py-3.8.2:
89   extends:
90     - .gmxapi-0.1:clang-8
91   rules:
92     - if: '$CI_PROJECT_NAMESPACE != "gromacs"'
93       when: never
94     # Allow explicit trigger through web interface.
95     - if: '$GMX_GMXAPI_0_1'
96       when: always
97     - if: '$GROMACS_RELEASE'
98       when: never
99     # Run this job for release-2020 branch and merge-requests targeting it.
100     - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "release-2020" || $CI_COMMIT_BRANCH == "release-2020"'
101       when: always
102   variables:
103     VENVPATH: "/root/venv/py3.8"
104     PY_VER: "3.8.2"
105
106 # Base job definition for gmxapi 0.2 tests against GROMACS 2021 in clang-8 environments.
107 .gmxapi-0.2:clang-8:gmx2021:
108   extends:
109     - .variables:default
110     - .use-clang:base
111   image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020
112   rules:
113     - if: '$CI_PROJECT_NAMESPACE != "gromacs"'
114       when: never
115     # Allow explicit trigger through web interface.
116     - if: '$GMX_GMXAPI_0_2'
117       when: always
118     - if: '$GROMACS_RELEASE'
119       when: never
120     # Run this job for master branch and merge-requests targeting it.
121     - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master" || $CI_COMMIT_BRANCH == "master"'
122       when: always
123   stage: test
124   variables:
125     PY_UNIT_TEST_XML: $CI_PROJECT_DIR/py-JUnitTestResults.xml
126     PY_MPI_UNIT_TEST_XML: $CI_PROJECT_DIR/py-mpi-JUnitTestResults.xml
127     PY_ACCEPTANCE_TEST_XML: $CI_PROJECT_DIR/gmxapi-acceptance-JUnitTestResults.xml
128     PY_MPI_ACCEPTANCE_TEST_XML: $CI_PROJECT_DIR/gmxapi-acceptance-mpi-JUnitTestResults.xml
129   script:
130     - source $INSTALL_DIR/bin/GMXRC
131     - source $VENVPATH/bin/activate && INSTALL_DIR=$PWD/$INSTALL_DIR bash -x admin/ci-scripts/build-and-test-py-gmxapi-0.2.sh
132   artifacts:
133     reports:
134       junit:
135         - $PY_UNIT_TEST_XML
136         - $PY_MPI_UNIT_TEST_XML
137         - $PY_ACCEPTANCE_TEST_XML
138         - $PY_MPI_ACCEPTANCE_TEST_XML
139     when: always
140     expire_in: 1 week
141   needs:
142     - job: gromacs:clang-8:build
143       artifacts: true
144
145 gmxapi-0.2:clang-8:gmx2021:py-3.6.10:
146   extends:
147     - .gmxapi-0.2:clang-8:gmx2021
148   rules:
149     - if: '$CI_PROJECT_NAMESPACE != "gromacs"'
150       when: never
151     # Allow explicit trigger through web interface.
152     - if: '$GMX_GMXAPI_0_2'
153       when: always
154     - if: '$GROMACS_RELEASE'
155       when: never
156     # Run this job for master branch and merge-requests targeting it.
157     - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master" || $CI_COMMIT_BRANCH == "master"'
158       when: always
159   variables:
160     VENVPATH: "/root/venv/py3.6"
161     PY_VER: "3.6.10"
162
163 gmxapi-0.2:clang-8:gmx2021:py-3.7.7:
164   extends:
165     - .gmxapi-0.2:clang-8:gmx2021
166   rules:
167     - if: '$CI_PROJECT_NAMESPACE != "gromacs"'
168       when: never
169     # Allow explicit trigger through web interface.
170     - if: '$GMX_GMXAPI_0_2'
171       when: always
172     - if: '$GROMACS_RELEASE'
173       when: never
174     # Run this job for master branch and merge-requests targeting it.
175     - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master" || $CI_COMMIT_BRANCH == "master"'
176       when: always
177   variables:
178     VENVPATH: "/root/venv/py3.7"
179     PY_VER: "3.7.7"
180
181 gmxapi-0.2:clang-8:gmx2021:py-3.8.2:
182   extends:
183     - .gmxapi-0.2:clang-8:gmx2021
184   rules:
185     - if: '$CI_PROJECT_NAMESPACE != "gromacs"'
186       when: never
187     # Allow explicit trigger through web interface.
188     - if: '$GMX_GMXAPI_0_2'
189       when: always
190     - if: '$GROMACS_RELEASE'
191       when: never
192     # Run this job for master branch and merge-requests targeting it.
193     - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master" || $CI_COMMIT_BRANCH == "master"'
194       when: always
195   variables:
196     VENVPATH: "/root/venv/py3.8"
197     PY_VER: "3.8.2"