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