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:master
7 KUBERNETES_CPU_LIMIT: 1
8 KUBERNETES_CPU_REQUEST: 1
9 KUBERNETES_MEMORY_LIMIT: 2Gi
10 CMAKE_COMPILER_SCRIPT: "-DCMAKE_C_COMPILER=clang-7 -DCMAKE_CXX_COMPILER=clang++-7"
11 CMAKE_EXTRA_OPTIONS: ""
12 CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=None"
13 CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=OFF"
14 CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
15 CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=Debug"
16 CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF"
17 CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF"
20 - if [[ ! -z $GROMACS_RELEASE && $GROMACS_RELEASE == "true" ]] ; then
21 REL_OPTION="-DGMX_BUILD_TARBALL=ON" ;
23 REL_OPTION="-DGMX_BUILD_TARBALL=OFF" ;
25 - echo $CMAKE_COMPILER_SCRIPT
26 - echo $CMAKE_EXTRA_OPTIONS
27 - echo $CMAKE_SIMD_OPTIONS
28 - echo $CMAKE_GPU_OPTIONS
29 - echo $CMAKE_MPI_OPTIONS
30 - echo $CMAKE_PRECISION_OPTIONS
31 - echo $CMAKE_BUILD_TYPE_OPTIONS
32 - echo $CMAKE_GMXAPI_OPTIONS
34 - if [[ -d $BUILD_DIR ]] ; then
35 rm -rf $BUILD_DIR && mkdir $BUILD_DIR ;
37 echo "Preparing new build directory" ;
42 -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
43 $CMAKE_COMPILER_SCRIPT
47 $CMAKE_PRECISION_OPTIONS
48 $CMAKE_BUILD_TYPE_OPTIONS
52 -DCMAKE_INSTALL_PREFIX=../$INSTALL_DIR -DGMX_COMPILER_WARNINGS=ON
53 2>&1 | tee cmakeLog.log
54 - awk '/CMake Warning/,/^--|^$/' cmakeLog.log | tee cmakeErrors.log
55 - if [ -s cmakeErrors.log ] ; then echo "Found CMake warning while processing build"; cat cmakeErrors.log ; exit 1; fi
58 name: docs-artifacts-$CI_COMMIT_REF_SLUG
64 .build-docs-binary-template:
65 # Built by admin/dockerfiles/ci-docs-clang
66 # TODO this should be organized more like the current documentation.py script
67 image: gromacs/ci-docs-clang:master
70 - cmake --build . --target gmx -- -j8
73 name: docs-artifacts-$CI_COMMIT_REF_SLUG
79 .build-docs-webpage-template:
80 # Built by admin/dockerfiles/ci-docs-clang
81 # TODO this should be organized more like the current documentation.py script
82 image: gromacs/ci-docs-clang:master
84 KUBERNETES_CPU_LIMIT: 4
85 KUBERNETES_CPU_REQUEST: 2
86 KUBERNETES_MEMORY_LIMIT: 4Gi
89 - cmake --build . --target manual -- -j4 | tee docs/manual/all-output.log
90 | grep -i "warning" | grep -v "TeX" | grep -v "Package" || true
91 - cmake --build . --target webpage -- -j4
92 - grep "WARNING:" docs/manual/all-output.log | tee pythonErrors.log || true
93 - grep -i "error" docs/sphinx-*.log | tee sphinxDiagnostics.log || true
94 - grep -i "warning" docs/sphinx-*.log | tee -a sphinxDiagnostics.log || true
95 - if [ -s pythonErrors.log ] ; then echo "Found Python Errors during build"; exit 1; fi
96 - if [ -s sphinxErrors.log ] ; then echo "Found errors during Sphinx documentation build"; cat sphinxErrors.log; exit 1; fi
97 - if [ -s sphinxDiagnostics.log ] ; then echo "Found diagnostic warnings during Sphinx documentation build"; cat sphinxDiagnostics.log; exit 1; fi
100 name: docs-artifacts-$CI_COMMIT_REF_SLUG
105 - $BUILD_DIR/docs/html
106 - $BUILD_DIR/docs/manual/gromacs.log
107 - $BUILD_DIR/docs/manual/all-output.log
108 - $BUILD_DIR/docs/doxygen/doxygen-user.log
109 - $BUILD_DIR/docs/doxygen/doxygen-lib.log
110 - $BUILD_DIR/docs/doxygen/doxygen-full.log
111 - $BUILD_DIR/docs/sphinx-html.log
113 .configure-docs-release-template:
114 # Built by admin/dockerfiles/ci-docs-clang
115 # TODO this should be organized more like the current documentation.py script
116 image: gromacs/ci-docs-clang:master
117 stage: release-configure
119 KUBERNETES_CPU_LIMIT: 1
120 KUBERNETES_CPU_REQUEST: 1
121 KUBERNETES_MEMORY_LIMIT: 2Gi
122 CMAKE_COMPILER_SCRIPT: "-DCMAKE_C_COMPILER=clang-7 -DCMAKE_CXX_COMPILER=clang++-7"
123 CMAKE_EXTRA_OPTIONS: ""
124 CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=None"
125 CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=ON"
126 CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
127 CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=Debug"
128 CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF"
129 CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF"
130 RELEASE_BUILD_DIR: release-doc-builds
131 RELEASE_SOURCE: release-source-from-tarball
132 RELEASE_REGRESSIONTESTS: release-regressiontests-from-tarball
142 - if [[ $GROMACS_RELEASE == "true" ]] ; then
143 REL_OPTION="-DGMX_BUILD_TARBALL=ON" ;
145 REL_OPTION="-DGMX_BUILD_TARBALL=OFF" ;
147 - echo $CMAKE_COMPILER_SCRIPT
148 - echo $CMAKE_EXTRA_OPTIONS
149 - echo $CMAKE_SIMD_OPTIONS
150 - echo $CMAKE_GPU_OPTIONS
151 - echo $CMAKE_MPI_OPTIONS
152 - echo $CMAKE_PRECISION_OPTIONS
153 - echo $CMAKE_BUILD_TYPE_OPTIONS
154 - echo $CMAKE_GMXAPI_OPTIONS
156 - VERSION=`cat version.json |
157 python3 -c "import json,sys; print(json.load(sys.stdin)['version'])"`
158 - if [[ $GROMACS_RELEASE != "true" ]] ; then
159 VERSION=$VERSION-dev ;
161 - REGTEST_COMPARE=`cat version.json |
162 python3 -c "import json,sys; print(json.load(sys.stdin)['regressiontest-md5sum'])"`
163 - SOURCENAME=gromacs-$VERSION
164 - SOURCETARBALL=$SOURCENAME.tar.gz
165 - REGTESTNAME=regressiontests-$VERSION
166 - REGTESTTARBALL=$REGTESTNAME.tar.gz
167 - SOURCE_MD5SUM=`md5sum $SOURCETARBALL | awk '{print $1}'`
168 - RELEASE_TARBALLS=release-tarballs
169 - rm -rf $RELEASE_TARBALLS $RELEASE_SOURCE $RELEASE_REGRESSIONTESTS && mkdir $RELEASE_TARBALLS
170 - mv $SOURCETARBALL $RELEASE_TARBALLS
171 - mv $REGTESTTARBALL $RELEASE_TARBALLS
172 - cd $RELEASE_TARBALLS
173 # We rename the source and regressiontest directories
174 # to have names for them that don't change for different versions.
175 - tar -xf $SOURCETARBALL
176 - mv $SOURCENAME ../$RELEASE_SOURCE
177 - tar -xf $REGTESTTARBALL
178 - mv $REGTESTNAME ../$RELEASE_REGRESSIONTESTS
179 - rm $SOURCETARBALL $REGTESTTARBALL
181 - echo $CMAKE_COMPILER_SCRIPT
182 - echo $CMAKE_EXTRA_OPTIONS
183 - echo $CMAKE_SIMD_OPTIONS
184 - echo $CMAKE_GPU_OPTIONS
185 - echo $CMAKE_MPI_OPTIONS
186 - echo $CMAKE_PRECISION_OPTIONS
187 - echo $CMAKE_BUILD_TYPE_OPTIONS
188 - echo $CMAKE_GMXAPI_OPTIONS
189 - if [[ -d $RELEASE_BUILD_DIR ]] ; then
190 echo "Cleaning up build directory" ;
191 rm -rf $RELEASE_BUILD_DIR && mkdir $RELEASE_BUILD_DIR ;
193 echo "Preparing new build directory" ;
194 mkdir $RELEASE_BUILD_DIR ;
196 - cd $RELEASE_BUILD_DIR
197 - cmake ../$RELEASE_SOURCE/
198 -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
199 $CMAKE_COMPILER_SCRIPT
203 $CMAKE_PRECISION_OPTIONS
204 $CMAKE_BUILD_TYPE_OPTIONS
206 $CMAKE_GMXAPI_OPTIONS
208 "-DSOURCE_MD5SUM=$SOURCE_MD5SUM"
209 "-DREGRESSIONTEST_PATH=../$RELEASE_REGRESSIONTESTS"
210 -DCMAKE_INSTALL_PREFIX=../$INSTALL_DIR -DGMX_COMPILER_WARNINGS=ON
211 2>&1 | tee cmakeLog.log
212 - awk '/CMake Warning/,/^--|^$/' cmakeLog.log | tee cmakeErrors.log
213 - if [ -s cmakeErrors.log ] ; then echo "Found CMake warning while processing build"; cat cmakeErrors.log ; exit 1; fi
216 name: docs-artifacts-$CI_COMMIT_REF_SLUG
221 - $RELEASE_REGRESSIONTESTS