-.configure-docs-template:
- # Built by admin/dockerfiles/ci-docs-clang
- # TODO this should be organized more like the current documentation.py script
- image: gromacs/ci-docs-clang:master
- stage: configure-build
- variables:
- KUBERNETES_CPU_LIMIT: 1
- KUBERNETES_CPU_REQUEST: 1
- KUBERNETES_MEMORY_LIMIT: 2Gi
- CMAKE_COMPILER_SCRIPT: "-DCMAKE_C_COMPILER=clang-7 -DCMAKE_CXX_COMPILER=clang++-7"
- CMAKE_EXTRA_OPTIONS: ""
- CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=None"
- CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=OFF"
- CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
- CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=Debug"
- CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF"
- CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF"
-
- script:
- - if [[ ! -z $GROMACS_RELEASE && $GROMACS_RELEASE == "true" ]] ; then
- REL_OPTION="-DGMX_BUILD_TARBALL=ON" ;
- else
- REL_OPTION="-DGMX_BUILD_TARBALL=OFF" ;
- fi
- - echo $CMAKE_COMPILER_SCRIPT
- - echo $CMAKE_EXTRA_OPTIONS
- - echo $CMAKE_SIMD_OPTIONS
- - echo $CMAKE_GPU_OPTIONS
- - echo $CMAKE_MPI_OPTIONS
- - echo $CMAKE_PRECISION_OPTIONS
- - echo $CMAKE_BUILD_TYPE_OPTIONS
- - echo $CMAKE_GMXAPI_OPTIONS
- - echo $REL_OPTION
- - if [[ -d $BUILD_DIR ]] ; then
- rm -rf $BUILD_DIR && mkdir $BUILD_DIR ;
- else
- echo "Preparing new build directory" ;
- mkdir $BUILD_DIR ;
- fi
- - cd $BUILD_DIR
- - cmake ..
- -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
- $CMAKE_COMPILER_SCRIPT
- $CMAKE_EXTRA_OPTIONS
- $CMAKE_SIMD_OPTIONS
- $CMAKE_MPI_OPTIONS
- $CMAKE_PRECISION_OPTIONS
- $CMAKE_BUILD_TYPE_OPTIONS
- $CMAKE_GPU_OPTIONS
- $CMAKE_GMXAPI_OPTIONS
- $REL_OPTION
- -DCMAKE_INSTALL_PREFIX=../$INSTALL_DIR -DGMX_COMPILER_WARNINGS=ON
- 2>&1 | tee cmakeLog.log
- - awk '/CMake Warning/,/^--|^$/' cmakeLog.log | tee cmakeErrors.log
- - if [ -s cmakeErrors.log ] ; then echo "Found CMake warning while processing build"; cat cmakeErrors.log ; exit 1; fi
- - cd ..
- artifacts:
- name: docs-artifacts-$CI_COMMIT_REF_SLUG
- when: always
- expire_in: 1 week
- paths:
- - $BUILD_DIR
-
-.build-docs-binary-template:
- # Built by admin/dockerfiles/ci-docs-clang
- # TODO this should be organized more like the current documentation.py script
- image: gromacs/ci-docs-clang:master
- script:
- - cd $BUILD_DIR
- - cmake --build . --target gmx -- -j8
- - cd ..
- artifacts:
- name: docs-artifacts-$CI_COMMIT_REF_SLUG
- when: always
- expire_in: 1 week
- paths:
- - $BUILD_DIR
-
-.build-docs-webpage-template:
- # Built by admin/dockerfiles/ci-docs-clang
- # TODO this should be organized more like the current documentation.py script
- image: gromacs/ci-docs-clang:master
- variables:
- KUBERNETES_CPU_LIMIT: 4
- KUBERNETES_CPU_REQUEST: 2
- KUBERNETES_MEMORY_LIMIT: 4Gi
- script:
- - cd $BUILD_DIR
- - cmake --build . --target manual -- -j4 | tee docs/manual/all-output.log
- | grep -i "warning" | grep -v "TeX" | grep -v "Package" || true
- - cmake --build . --target webpage -- -j4
- - grep "WARNING:" docs/manual/all-output.log | tee pythonErrors.log || true
- - grep -i "error" docs/sphinx-*.log | tee sphinxDiagnostics.log || true
- - grep -i "warning" docs/sphinx-*.log | tee -a sphinxDiagnostics.log || true
- - if [ -s pythonErrors.log ] ; then echo "Found Python Errors during build"; exit 1; fi
- - if [ -s sphinxErrors.log ] ; then echo "Found errors during Sphinx documentation build"; cat sphinxErrors.log; exit 1; fi
- - if [ -s sphinxDiagnostics.log ] ; then echo "Found diagnostic warnings during Sphinx documentation build"; cat sphinxDiagnostics.log; exit 1; fi
- - cd ..
- artifacts:
- name: docs-artifacts-$CI_COMMIT_REF_SLUG
- when: always
- expire_in: 1 week
- paths:
- - $BUILD_DIR/*.log
- - $BUILD_DIR/docs/html
- - $BUILD_DIR/docs/manual/gromacs.log
- - $BUILD_DIR/docs/manual/all-output.log
- - $BUILD_DIR/docs/doxygen/doxygen-user.log
- - $BUILD_DIR/docs/doxygen/doxygen-lib.log
- - $BUILD_DIR/docs/doxygen/doxygen-full.log
- - $BUILD_DIR/docs/sphinx-html.log
-
-.configure-docs-release-template:
- # Built by admin/dockerfiles/ci-docs-clang
- # TODO this should be organized more like the current documentation.py script
- image: gromacs/ci-docs-clang:master
- stage: release-configure
- variables:
- KUBERNETES_CPU_LIMIT: 1
- KUBERNETES_CPU_REQUEST: 1
- KUBERNETES_MEMORY_LIMIT: 2Gi
- CMAKE_COMPILER_SCRIPT: "-DCMAKE_C_COMPILER=clang-7 -DCMAKE_CXX_COMPILER=clang++-7"
- CMAKE_EXTRA_OPTIONS: ""
- CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=None"
- CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=ON"
- CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
- CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=Debug"
- CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF"
- CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF"
- RELEASE_BUILD_DIR: release-doc-builds
- RELEASE_SOURCE: release-source-from-tarball
- RELEASE_REGRESSIONTESTS: release-regressiontests-from-tarball
-
- only:
- refs:
- - web
- - schedules
- - triggers
- variables:
- - $GROMACS_RELEASE
- script:
- - if [[ $GROMACS_RELEASE == "true" ]] ; then
- REL_OPTION="-DGMX_BUILD_TARBALL=ON" ;
- else
- REL_OPTION="-DGMX_BUILD_TARBALL=OFF" ;
- fi
- - echo $CMAKE_COMPILER_SCRIPT
- - echo $CMAKE_EXTRA_OPTIONS
- - echo $CMAKE_SIMD_OPTIONS
- - echo $CMAKE_GPU_OPTIONS
- - echo $CMAKE_MPI_OPTIONS
- - echo $CMAKE_PRECISION_OPTIONS
- - echo $CMAKE_BUILD_TYPE_OPTIONS
- - echo $CMAKE_GMXAPI_OPTIONS
- - echo $REL_OPTION
- - VERSION=`cat version.json |
- python3 -c "import json,sys; print(json.load(sys.stdin)['version'])"`
- - if [[ $GROMACS_RELEASE != "true" ]] ; then
- VERSION=$VERSION-dev ;
- fi
- - REGTEST_COMPARE=`cat version.json |
- python3 -c "import json,sys; print(json.load(sys.stdin)['regressiontest-md5sum'])"`
- - SOURCENAME=gromacs-$VERSION
- - SOURCETARBALL=$SOURCENAME.tar.gz
- - REGTESTNAME=regressiontests-$VERSION
- - REGTESTTARBALL=$REGTESTNAME.tar.gz
- - SOURCE_MD5SUM=`md5sum $SOURCETARBALL | awk '{print $1}'`
- - RELEASE_TARBALLS=release-tarballs
- - rm -rf $RELEASE_TARBALLS $RELEASE_SOURCE $RELEASE_REGRESSIONTESTS && mkdir $RELEASE_TARBALLS
- - mv $SOURCETARBALL $RELEASE_TARBALLS
- - mv $REGTESTTARBALL $RELEASE_TARBALLS
- - cd $RELEASE_TARBALLS
-# We rename the source and regressiontest directories
-# to have names for them that don't change for different versions.
- - tar -xf $SOURCETARBALL
- - mv $SOURCENAME ../$RELEASE_SOURCE
- - tar -xf $REGTESTTARBALL
- - mv $REGTESTNAME ../$RELEASE_REGRESSIONTESTS
- - rm $SOURCETARBALL $REGTESTTARBALL
- - cd ..
- - echo $CMAKE_COMPILER_SCRIPT
- - echo $CMAKE_EXTRA_OPTIONS
- - echo $CMAKE_SIMD_OPTIONS
- - echo $CMAKE_GPU_OPTIONS
- - echo $CMAKE_MPI_OPTIONS
- - echo $CMAKE_PRECISION_OPTIONS
- - echo $CMAKE_BUILD_TYPE_OPTIONS
- - echo $CMAKE_GMXAPI_OPTIONS
- - if [[ -d $RELEASE_BUILD_DIR ]] ; then
- echo "Cleaning up build directory" ;
- rm -rf $RELEASE_BUILD_DIR && mkdir $RELEASE_BUILD_DIR ;
- else
- echo "Preparing new build directory" ;
- mkdir $RELEASE_BUILD_DIR ;
- fi
- - cd $RELEASE_BUILD_DIR
- - cmake ../$RELEASE_SOURCE/
- -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
- $CMAKE_COMPILER_SCRIPT
- $CMAKE_EXTRA_OPTIONS
- $CMAKE_SIMD_OPTIONS
- $CMAKE_MPI_OPTIONS
- $CMAKE_PRECISION_OPTIONS
- $CMAKE_BUILD_TYPE_OPTIONS
- $CMAKE_GPU_OPTIONS
- $CMAKE_GMXAPI_OPTIONS
- $REL_OPTION
- "-DSOURCE_MD5SUM=$SOURCE_MD5SUM"
- "-DREGRESSIONTEST_PATH=../$RELEASE_REGRESSIONTESTS"
- -DCMAKE_INSTALL_PREFIX=../$INSTALL_DIR -DGMX_COMPILER_WARNINGS=ON
- 2>&1 | tee cmakeLog.log
- - awk '/CMake Warning/,/^--|^$/' cmakeLog.log | tee cmakeErrors.log
- - if [ -s cmakeErrors.log ] ; then echo "Found CMake warning while processing build"; cat cmakeErrors.log ; exit 1; fi
- - cd ..
- artifacts:
- name: docs-artifacts-$CI_COMMIT_REF_SLUG
- when: always
- expire_in: 1 week
- paths:
- - $RELEASE_BUILD_DIR
- - $RELEASE_REGRESSIONTESTS
- - $RELEASE_SOURCE