Reorganize release templates.
[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:master
5   stage: configure-build
6   variables:
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"
18
19   script:
20     - if [[ ! -z $GROMACS_RELEASE && $GROMACS_RELEASE == "true" ]] ; then
21       REL_OPTION="-DGMX_BUILD_TARBALL=ON" ;
22       else
23       REL_OPTION="-DGMX_BUILD_TARBALL=OFF" ;
24       fi
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
33     - echo $REL_OPTION
34     - if [[ -d $BUILD_DIR ]] ; then
35         rm -rf $BUILD_DIR && mkdir $BUILD_DIR ;
36       else
37         echo "Preparing new build directory" ;
38         mkdir $BUILD_DIR ;
39       fi
40     - cd $BUILD_DIR
41     - cmake ..
42         -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
43         $CMAKE_COMPILER_SCRIPT
44         $CMAKE_EXTRA_OPTIONS
45         $CMAKE_SIMD_OPTIONS
46         $CMAKE_MPI_OPTIONS
47         $CMAKE_PRECISION_OPTIONS
48         $CMAKE_BUILD_TYPE_OPTIONS
49         $CMAKE_GPU_OPTIONS
50         $CMAKE_GMXAPI_OPTIONS
51         $REL_OPTION
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
56     - cd ..
57   artifacts:
58     name: docs-artifacts-$CI_COMMIT_REF_SLUG
59     when: always
60     expire_in: 1 week
61     paths:
62       - $BUILD_DIR
63
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
68   script:
69     - cd $BUILD_DIR
70     - cmake --build . --target gmx -- -j8
71     - cd ..
72   artifacts:
73     name: docs-artifacts-$CI_COMMIT_REF_SLUG
74     when: always
75     expire_in: 1 week
76     paths:
77       - $BUILD_DIR
78
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
83   variables:
84     KUBERNETES_CPU_LIMIT: 4
85     KUBERNETES_CPU_REQUEST: 2
86     KUBERNETES_MEMORY_LIMIT: 4Gi
87   script:
88     - cd $BUILD_DIR
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
98     - cd ..
99   artifacts:
100     name: docs-artifacts-$CI_COMMIT_REF_SLUG
101     when: always
102     expire_in: 1 week
103     paths:
104       - $BUILD_DIR/*.log
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
112
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
118   variables:
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
133
134   only:
135     refs:
136       - web
137       - schedules
138       - triggers
139     variables:
140       - $GROMACS_RELEASE
141   script:
142     - if [[ $GROMACS_RELEASE == "true" ]] ; then
143       REL_OPTION="-DGMX_BUILD_TARBALL=ON" ;
144       else
145       REL_OPTION="-DGMX_BUILD_TARBALL=OFF" ;
146       fi
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
155     - echo $REL_OPTION
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 ;
160       fi
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
180     - cd ..
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 ;
192       else
193         echo "Preparing new build directory" ;
194         mkdir $RELEASE_BUILD_DIR ;
195       fi
196     - cd $RELEASE_BUILD_DIR
197     - cmake ../$RELEASE_SOURCE/
198         -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
199         $CMAKE_COMPILER_SCRIPT
200         $CMAKE_EXTRA_OPTIONS
201         $CMAKE_SIMD_OPTIONS
202         $CMAKE_MPI_OPTIONS
203         $CMAKE_PRECISION_OPTIONS
204         $CMAKE_BUILD_TYPE_OPTIONS
205         $CMAKE_GPU_OPTIONS
206         $CMAKE_GMXAPI_OPTIONS
207         $REL_OPTION
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
214     - cd ..
215   artifacts:
216     name: docs-artifacts-$CI_COMMIT_REF_SLUG
217     when: always
218     expire_in: 1 week
219     paths:
220       - $RELEASE_BUILD_DIR
221       - $RELEASE_REGRESSIONTESTS
222       - $RELEASE_SOURCE