Reintroduce LJ Ewald tables
[alexxy/gromacs.git] / admin / ci-templates / .build-docs-template.yml
1 .configure-docs-template:
2   # Built by admin/dockerfiles/ci-docs-clang
3   # TODO this should be organized more like the current documentation.py script
4   image: gromacs/ci-docs-clang:2020
5   stage: configure-build
6   only:
7     refs:
8       - web
9       - pushes
10       - schedules
11       - merge_requests
12   variables:
13     KUBERNETES_CPU_LIMIT: 1
14     KUBERNETES_CPU_REQUEST: 1
15     KUBERNETES_MEMORY_LIMIT: 2Gi
16     CMAKE_COMPILER_SCRIPT: "-DCMAKE_C_COMPILER=clang-7 -DCMAKE_CXX_COMPILER=clang++-7"
17     CMAKE_EXTRA_OPTIONS: ""
18     CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=None"
19     CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=OFF"
20     CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
21     CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=Debug"
22     CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF"
23     CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF"
24
25   script:
26     - if [[ ! -z $GROMACS_RELEASE && $GROMACS_RELEASE == "true" ]] ; then
27       REL_OPTION="-DGMX_BUILD_TARBALL=ON" ;
28       else
29       REL_OPTION="-DGMX_BUILD_TARBALL=OFF" ;
30       fi
31     - echo $CMAKE_COMPILER_SCRIPT
32     - echo $CMAKE_EXTRA_OPTIONS
33     - echo $CMAKE_SIMD_OPTIONS
34     - echo $CMAKE_GPU_OPTIONS
35     - echo $CMAKE_MPI_OPTIONS
36     - echo $CMAKE_PRECISION_OPTIONS
37     - echo $CMAKE_BUILD_TYPE_OPTIONS
38     - echo $CMAKE_GMXAPI_OPTIONS
39     - echo $REL_OPTION
40     - if [[ -d $BUILD_DIR ]] ; then
41         rm -rf $BUILD_DIR && mkdir $BUILD_DIR ;
42       else
43         echo "Preparing new build directory" ;
44         mkdir $BUILD_DIR ;
45       fi
46     - cd $BUILD_DIR
47     - cmake ..
48         -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
49         $CMAKE_COMPILER_SCRIPT
50         $CMAKE_EXTRA_OPTIONS
51         $CMAKE_SIMD_OPTIONS
52         $CMAKE_MPI_OPTIONS
53         $CMAKE_PRECISION_OPTIONS
54         $CMAKE_BUILD_TYPE_OPTIONS
55         $CMAKE_GPU_OPTIONS
56         $CMAKE_GMXAPI_OPTIONS
57         $REL_OPTION
58         -DCMAKE_INSTALL_PREFIX=../$INSTALL_DIR -DGMX_COMPILER_WARNINGS=ON
59         2>&1 | tee cmakeLog.log
60     - awk '/CMake Warning/,/^--|^$/' cmakeLog.log | tee cmakeErrors.log
61     - if [ -s cmakeErrors.log  ] ; then echo "Found CMake warning while processing build"; cat cmakeErrors.log ; exit 1; fi
62     - cd ..
63   artifacts:
64     name: docs-artifacts-$CI_COMMIT_REF_SLUG
65     when: always
66     expire_in: 1 week
67     paths:
68       - $BUILD_DIR
69
70 .build-docs-binary-template:
71   # Built by admin/dockerfiles/ci-docs-clang
72   # TODO this should be organized more like the current documentation.py script
73   image: gromacs/ci-docs-clang:2020
74   only:
75     refs:
76       - web
77       - pushes
78       - schedules
79       - merge_requests
80   script:
81     - cd $BUILD_DIR
82     - cmake --build . --target gmx -- -j8
83     - cd ..
84   artifacts:
85     name: docs-artifacts-$CI_COMMIT_REF_SLUG
86     when: always
87     expire_in: 1 week
88     paths:
89       - $BUILD_DIR
90
91 .build-docs-webpage-template:
92   # Built by admin/dockerfiles/ci-docs-clang
93   # TODO this should be organized more like the current documentation.py script
94   image: gromacs/ci-docs-clang:2020
95   only:
96     refs:
97       - web
98       - pushes
99       - schedules
100       - merge_requests
101   variables:
102     KUBERNETES_CPU_LIMIT: 4
103     KUBERNETES_CPU_REQUEST: 2
104     KUBERNETES_MEMORY_LIMIT: 4Gi
105   script:
106     - cd $BUILD_DIR
107     - cmake --build . --target manual -- -j4 | tee docs/manual/all-output.log
108       | grep -i "warning" | grep -v "TeX" | grep -v "Package" || true
109     - cmake --build . --target webpage -- -j4
110     - grep "WARNING:" docs/manual/all-output.log | tee pythonErrors.log || true
111     - grep -i "error" docs/sphinx-*.log | tee sphinxDiagnostics.log || true
112     - grep -i "warning" docs/sphinx-*.log | tee -a sphinxDiagnostics.log || true
113     - if [ -s pythonErrors.log ] ; then echo "Found Python Errors during build"; exit 1; fi
114     - if [ -s sphinxErrors.log ] ; then echo "Found errors during Sphinx documentation build"; cat sphinxErrors.log; exit 1; fi
115     - if [ -s sphinxDiagnostics.log ] ; then echo "Found diagnostic warnings during Sphinx documentation build"; cat sphinxDiagnostics.log; exit 1; fi
116     - cd ..
117   artifacts:
118     name: docs-artifacts-$CI_COMMIT_REF_SLUG
119     when: always
120     expire_in: 1 week
121     paths:
122       - $BUILD_DIR/*.log
123       - $BUILD_DIR/docs/html
124       - $BUILD_DIR/docs/manual/gromacs.log
125       - $BUILD_DIR/docs/manual/all-output.log
126       - $BUILD_DIR/docs/doxygen/doxygen-user.log
127       - $BUILD_DIR/docs/doxygen/doxygen-lib.log
128       - $BUILD_DIR/docs/doxygen/doxygen-full.log
129       - $BUILD_DIR/docs/sphinx-html.log
130
131 .configure-docs-release-template:
132   # Built by admin/dockerfiles/ci-docs-clang
133   # TODO this should be organized more like the current documentation.py script
134   image: gromacs/ci-docs-clang:2020
135   stage: release-configure
136   variables:
137     KUBERNETES_CPU_LIMIT: 1
138     KUBERNETES_CPU_REQUEST: 1
139     KUBERNETES_MEMORY_LIMIT: 2Gi
140     CMAKE_COMPILER_SCRIPT: "-DCMAKE_C_COMPILER=clang-7 -DCMAKE_CXX_COMPILER=clang++-7"
141     CMAKE_EXTRA_OPTIONS: ""
142     CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=None"
143     CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=ON"
144     CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
145     CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=Debug"
146     CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF"
147     CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF"
148     RELEASE_BUILD_DIR: release-doc-builds
149     RELEASE_SOURCE: release-source-from-tarball
150     RELEASE_REGRESSIONTESTS: release-regressiontests-from-tarball
151
152   only:
153     refs:
154       - web
155       - schedules
156       - triggers
157     variables:
158       - $GROMACS_RELEASE
159   script:
160     - if [[ $GROMACS_RELEASE == "true" ]] ; then
161       REL_OPTION="-DGMX_BUILD_TARBALL=ON" ;
162       else
163       REL_OPTION="-DGMX_BUILD_TARBALL=OFF" ;
164       fi
165     - echo $CMAKE_COMPILER_SCRIPT
166     - echo $CMAKE_EXTRA_OPTIONS
167     - echo $CMAKE_SIMD_OPTIONS
168     - echo $CMAKE_GPU_OPTIONS
169     - echo $CMAKE_MPI_OPTIONS
170     - echo $CMAKE_PRECISION_OPTIONS
171     - echo $CMAKE_BUILD_TYPE_OPTIONS
172     - echo $CMAKE_GMXAPI_OPTIONS
173     - echo $REL_OPTION
174     - VERSION=`cat version.json |
175         python3 -c "import json,sys; print(json.load(sys.stdin)['version'])"`
176     - if [[ $GROMACS_RELEASE != "true" ]] ; then
177           VERSION=$VERSION-dev ;
178       fi
179     - REGTEST_COMPARE=`cat version.json |
180         python3 -c "import json,sys; print(json.load(sys.stdin)['regressiontest-md5sum'])"`
181     - SOURCENAME=gromacs-$VERSION
182     - SOURCETARBALL=$SOURCENAME.tar.gz
183     - REGTESTNAME=regressiontests-$VERSION
184     - REGTESTTARBALL=$REGTESTNAME.tar.gz
185     - SOURCE_MD5SUM=`md5sum $SOURCETARBALL | awk '{print $1}'`
186     - RELEASE_TARBALLS=release-tarballs
187     - rm -rf $RELEASE_TARBALLS $RELEASE_SOURCE $RELEASE_REGRESSIONTESTS && mkdir $RELEASE_TARBALLS
188     - mv $SOURCETARBALL $RELEASE_TARBALLS
189     - mv $REGTESTTARBALL $RELEASE_TARBALLS
190     - cd $RELEASE_TARBALLS
191 # We rename the source and regressiontest directories
192 # to have names for them that don't change for different versions.
193     - tar -xf $SOURCETARBALL
194     - mv $SOURCENAME ../$RELEASE_SOURCE
195     - tar -xf $REGTESTTARBALL
196     - mv $REGTESTNAME ../$RELEASE_REGRESSIONTESTS
197     - rm $SOURCETARBALL $REGTESTTARBALL
198     - cd ..
199     - echo $CMAKE_COMPILER_SCRIPT
200     - echo $CMAKE_EXTRA_OPTIONS
201     - echo $CMAKE_SIMD_OPTIONS
202     - echo $CMAKE_GPU_OPTIONS
203     - echo $CMAKE_MPI_OPTIONS
204     - echo $CMAKE_PRECISION_OPTIONS
205     - echo $CMAKE_BUILD_TYPE_OPTIONS
206     - echo $CMAKE_GMXAPI_OPTIONS
207     - if [[ -d $RELEASE_BUILD_DIR ]] ; then
208         echo "Cleaning up build directory" ;
209         rm -rf $RELEASE_BUILD_DIR && mkdir $RELEASE_BUILD_DIR ;
210       else
211         echo "Preparing new build directory" ;
212         mkdir $RELEASE_BUILD_DIR ;
213       fi
214     - cd $RELEASE_BUILD_DIR
215     - cmake ../$RELEASE_SOURCE/
216         -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
217         $CMAKE_COMPILER_SCRIPT
218         $CMAKE_EXTRA_OPTIONS
219         $CMAKE_SIMD_OPTIONS
220         $CMAKE_MPI_OPTIONS
221         $CMAKE_PRECISION_OPTIONS
222         $CMAKE_BUILD_TYPE_OPTIONS
223         $CMAKE_GPU_OPTIONS
224         $CMAKE_GMXAPI_OPTIONS
225         $REL_OPTION
226         "-DSOURCE_MD5SUM=$SOURCE_MD5SUM"
227         "-DREGRESSIONTEST_PATH=../$RELEASE_REGRESSIONTESTS"
228         -DCMAKE_INSTALL_PREFIX=../$INSTALL_DIR -DGMX_COMPILER_WARNINGS=ON
229         2>&1 | tee cmakeLog.log
230     - awk '/CMake Warning/,/^--|^$/' cmakeLog.log | tee cmakeErrors.log
231     - if [ -s cmakeErrors.log  ] ; then echo "Found CMake warning while processing build"; cat cmakeErrors.log ; exit 1; fi
232     - cd ..
233   artifacts:
234     name: docs-artifacts-$CI_COMMIT_REF_SLUG
235     when: always
236     expire_in: 1 week
237     paths:
238       - $RELEASE_BUILD_DIR
239       - $RELEASE_REGRESSIONTESTS
240       - $RELEASE_SOURCE