Remove distinction between jobs that do and do not stage a build of the
gmxapi Python package in the build tree for API breakage testing and
full documentation builds.
Set a default CMake flag of "-DGMX_PYTHON_PACKAGE=ON" and install some
Python package dependencies with the default EXTRA_INSTALLS. The extra
installs will go away in the near future with updated Docker images.
Removes (up to) 12 jobs from the pipeline.
Change-Id: I13a60b7323ac0bf240f00b3b1360bedd2886e902
webpage-archive-release:
extends:
- .build-docs-webpage
webpage-archive-release:
extends:
- .build-docs-webpage
- - .configure-gmxapi-template
stage: release-deploy
only:
refs:
stage: release-deploy
only:
refs:
# Build documentation and web page.
.documentation-before-script-template:
# Build documentation and web page.
.documentation-before-script-template:
- variables:
- EXTRA_INSTALLS: ""
-
before_script:
- echo $EXTRA_INSTALLS
- time apt-get -qq update
before_script:
- echo $EXTRA_INSTALLS
- time apt-get -qq update
# TODO this should be organized more like the current documentation.py script
image: gromacs/ci-docs-clang:master
stage: configure-build
# TODO this should be organized more like the current documentation.py script
image: gromacs/ci-docs-clang:master
stage: configure-build
+ extends:
+ - .variables:default
CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=Debug"
CMAKE_GPU_OPTIONS: "-DGMX_GPU=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" ;
script:
- if [[ ! -z $GROMACS_RELEASE && $GROMACS_RELEASE == "true" ]] ; then
REL_OPTION="-DGMX_BUILD_TARBALL=ON" ;
# TODO this should be organized more like the current documentation.py script
image: gromacs/ci-docs-clang:master
stage: release-configure
# TODO this should be organized more like the current documentation.py script
image: gromacs/ci-docs-clang:master
stage: release-configure
+ extends:
+ - .variables:default
variables:
KUBERNETES_CPU_LIMIT: 1
KUBERNETES_CPU_REQUEST: 1
variables:
KUBERNETES_CPU_LIMIT: 1
KUBERNETES_CPU_REQUEST: 1
CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=Debug"
CMAKE_GPU_OPTIONS: "-DGMX_GPU=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"
RELEASE_BUILD_DIR: release-doc-builds
RELEASE_SOURCE: release-source-from-tarball
RELEASE_REGRESSIONTESTS: release-regressiontests-from-tarball
RELEASE_BUILD_DIR: release-doc-builds
RELEASE_SOURCE: release-source-from-tarball
RELEASE_REGRESSIONTESTS: release-regressiontests-from-tarball
variables:
- $GROMACS_RELEASE
variables:
- $GROMACS_RELEASE
-configure-docs-gmxapi:
- extends:
- - .configure-docs
- - .configure-gmxapi-template
- needs:
- - job: simple-build
- artifacts: false
- variables:
- BUILD_DIR: build-docs-gmxapi
- CMAKE_EXTRA_OPTIONS: -DGMX_BUILD_HELP=on -DGMX_BUILD_MANUAL=on
- except:
- variables:
- - $GROMACS_RELEASE
-
.build-docs-binary-template:
# Built by admin/dockerfiles/ci-docs-clang
# TODO this should be organized more like the current documentation.py script
.build-docs-binary-template:
# Built by admin/dockerfiles/ci-docs-clang
# TODO this should be organized more like the current documentation.py script
variables:
- $GROMACS_RELEASE
variables:
- $GROMACS_RELEASE
-build-docs-gmxapi:
- extends:
- - .build-docs-binary
- - .gmxapi-extra-installs
- stage: documentation
- needs:
- - job: simple-build
- artifacts: false
- - job: configure-docs-gmxapi
- artifacts: true
- variables:
- BUILD_DIR: build-docs-gmxapi
- except:
- variables:
- - $GROMACS_RELEASE
-
-
# The manual build is built separately so that errors in converting
# Sphinx to LaTeX and compiling can always be found in the
# all-output.txt file, while avoiding many thousands of lines of spam
# The manual build is built separately so that errors in converting
# Sphinx to LaTeX and compiling can always be found in the
# all-output.txt file, while avoiding many thousands of lines of spam
variables:
- $GROMACS_RELEASE
variables:
- $GROMACS_RELEASE
-webpage-gmxapi:
- extends:
- - .build-docs-webpage
- - .gmxapi-extra-installs
- stage: post-test
- needs:
- - job: build-docs-gmxapi
- artifacts: true
- - job: run-check-source
- artifacts: false
- variables:
- BUILD_DIR: build-docs-gmxapi
- except:
- variables:
- - $GROMACS_RELEASE
-
webpage-nightly:
extends:
- .build-docs-webpage
webpage-nightly:
extends:
- .build-docs-webpage
- - .configure-gmxapi-template
stage: nightly-deploy
only:
- web
stage: nightly-deploy
only:
- web
artifacts: false
- job: linkchecker
artifacts: false
artifacts: false
- job: linkchecker
artifacts: false
artifacts: true
variables:
artifacts: true
variables:
- BUILD_DIR: build-docs-gmxapi
script:
- tar czf webpage.tar.gz $BUILD_DIR/docs/html/
artifacts:
script:
- tar czf webpage.tar.gz $BUILD_DIR/docs/html/
artifacts:
webpage-configure-release:
extends:
- .configure-docs-release
webpage-configure-release:
extends:
- .configure-docs-release
- - .configure-gmxapi-template
webpage-binary-release:
extends:
- .build-docs-binary
webpage-binary-release:
extends:
- .build-docs-binary
- - .gmxapi-extra-installs
stage: release-build
needs:
- job: webpage-configure-release
stage: release-build
needs:
- job: webpage-configure-release
webpage-build-release:
extends:
- .build-docs-webpage
webpage-build-release:
extends:
- .build-docs-webpage
- - .configure-gmxapi-template
dependencies:
- webpage-binary-release
- webpage-configure-release
dependencies:
- webpage-binary-release
- webpage-configure-release
CACHE_FALLBACK_KEY: "$CI_JOB_NAME-$CI_JOB_STAGE-master"
BUILD_DIR: build
INSTALL_DIR: install
CACHE_FALLBACK_KEY: "$CI_JOB_NAME-$CI_JOB_STAGE-master"
BUILD_DIR: build
INSTALL_DIR: install
+ CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=ON"
+ EXTRA_INSTALLS: "python3-dev python3-setuptools python3-pip python3-pytest"
+# TODO: Get these from updated Docker images.
-
-.gmxapi-extra-installs:
- variables:
- EXTRA_INSTALLS: python3-dev python3-networkx python3-setuptools python3-mpi4py python3-numpy python3-pip python3-pytest
-
-.configure-gmxapi-template:
- extends:
- - .gmxapi-extra-installs
- variables:
- CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=ON"
-
CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=Debug"
CMAKE_GPU_OPTIONS: "-DGMX_GPU=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:
- echo $CMAKE_COMPILER_SCRIPT
- echo $CMAKE_EXTRA_OPTIONS
script:
- echo $CMAKE_COMPILER_SCRIPT
- echo $CMAKE_EXTRA_OPTIONS
CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert"
CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF"
CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert"
CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF"
- CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF"
RELEASE_BUILD_DIR: release-builds
RELEASE_SOURCE: release-source-from-tarball
RELEASE_REGRESSIONTESTS: release-regressiontests-from-tarball
RELEASE_BUILD_DIR: release-builds
RELEASE_SOURCE: release-source-from-tarball
RELEASE_REGRESSIONTESTS: release-regressiontests-from-tarball
- package-regressiontests-release
- prepare-release-version
- package-regressiontests-release
- prepare-release-version
-gromacs:gcc-7:configure-gmxapi:
- extends:
- - .gromacs:base:configure
- - .configure-gmxapi-template
- - .use-gcc7
- needs:
- - job: simple-build
- artifacts: false
- except:
- variables:
- - $GROMACS_RELEASE
-
-gromacs:gcc-7:release:configure-gmxapi:
- extends:
- - .gromacs:base:release:configure
- - .configure-gmxapi-template
- - .use-gcc7
- cache: {}
- variables:
- RELEASE_BUILD_DIR: release-builds-gcc
- only:
- refs:
- - web
- - schedules
- - triggers
- variables:
- - $GROMACS_RELEASE
- dependencies:
- - package-archive-release
- - package-regressiontests-release
- - prepare-release-version
-
gromacs:gcc-8:configure:
extends:
- .gromacs:base:configure
gromacs:gcc-8:configure:
extends:
- .gromacs:base:configure
- .gromacs:base:configure
- .use-cuda
- .use-gcc8:cuda-10.2
- .gromacs:base:configure
- .use-cuda
- .use-gcc8:cuda-10.2
+ variables:
+ CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF"
+ # TODO: Enable GMX_PYTHON_PACKAGE when dependencies are in Docker image.
needs:
- job: simple-build
artifacts: false
needs:
- job: simple-build
artifacts: false
- package-regressiontests-release
- prepare-release-version
- package-regressiontests-release
- prepare-release-version
-gromacs:clang-7:configure-gmxapi:
- extends:
- - .gromacs:base:configure
- - .configure-gmxapi-template
- - .use-clang7
- needs:
- - job: simple-build
- artifacts: false
- except:
- variables:
- - $GROMACS_RELEASE
-
-gromacs:clang-7:release:configure-gmxapi:
- extends:
- - .gromacs:base:release:configure
- - .configure-gmxapi-template
- - .use-clang7
- cache: {}
- variables:
- RELEASE_BUILD_DIR: release-builds-clang
- only:
- refs:
- - web
- - schedules
- - triggers
- variables:
- - $GROMACS_RELEASE
- dependencies:
- - package-archive-release
- - package-regressiontests-release
- - prepare-release-version
-
gromacs:clang-8:configure:
extends:
- .gromacs:base:configure
gromacs:clang-8:configure:
extends:
- .gromacs:base:configure
variables:
- $GROMACS_RELEASE
variables:
- $GROMACS_RELEASE
-gromacs:gcc-7:build-gmxapi:
- extends:
- - .gromacs:base:build
- - .use-ccache
- - .variables:default
- - .gmxapi-extra-installs
- - .use-gcc7
- needs:
- - job: simple-build
- artifacts: false
- - job: gromacs:gcc-7:configure-gmxapi
- artifacts: true
- except:
- variables:
- - $GROMACS_RELEASE
-
gromacs:gcc-7-double:release:build:
extends:
- .gromacs:base:build
gromacs:gcc-7-double:release:build:
extends:
- .gromacs:base:build
variables:
- $GROMACS_RELEASE
variables:
- $GROMACS_RELEASE
-gromacs:gcc-7:release:build-gmxapi:
- extends:
- - .gromacs:base:build
- - .use-ccache
- - .variables:default
- - .gmxapi-extra-installs
- - .use-gcc7
- stage: release-build
- variables:
- BUILD_DIR: release-builds-gcc
- needs:
- - job: gromacs:gcc-7:release:configure-gmxapi
- artifacts: true
- only:
- refs:
- - web
- - schedules
- - triggers
- variables:
- - $GROMACS_RELEASE
-
gromacs:gcc-8:build:
extends:
- .gromacs:base:build
gromacs:gcc-8:build:
extends:
- .gromacs:base:build
- .variables:default
- .use-cuda
- .use-gcc8:cuda-10.2
- .variables:default
- .use-cuda
- .use-gcc8:cuda-10.2
+ variables:
+ CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF"
+ # TODO: Enable GMX_PYTHON_PACKAGE when dependencies are in Docker image.
needs:
- job: simple-build
artifacts: false
needs:
- job: simple-build
artifacts: false
variables:
- $GROMACS_RELEASE
variables:
- $GROMACS_RELEASE
-gromacs:clang-7:build-gmxapi:
- extends:
- - .gromacs:base:build
- - .use-ccache
- - .variables:default
- - .gmxapi-extra-installs
- - .use-clang7
- needs:
- - job: simple-build
- artifacts: false
- - job: gromacs:clang-7:configure-gmxapi
- artifacts: true
- except:
- variables:
- - $GROMACS_RELEASE
-
-gromacs:clang-7:release:build-gmxapi:
- extends:
- - .gromacs:base:build
- - .use-ccache
- - .variables:default
- - .gmxapi-extra-installs
- - .use-clang7
- stage: release-build
- variables:
- BUILD_DIR: release-builds-clang
- needs:
- - job: gromacs:clang-7:release:configure-gmxapi
- artifacts: true
- only:
- refs:
- - web
- - schedules
- - triggers
- variables:
- - $GROMACS_RELEASE
-
gromacs:clang-8:build:
extends:
- .gromacs:base:build
gromacs:clang-8:build:
extends:
- .gromacs:base:build
variables:
- $GROMACS_RELEASE
variables:
- $GROMACS_RELEASE
-gromacs:gcc-7:test-gmxapi:
- extends:
- - .gromacs:base:test
- - .gmxapi-extra-installs
- - .use-gcc7
- needs:
- - job: simple-build
- artifacts: false
- - job: gromacs:gcc-7:build-gmxapi
- - job: prepare-regressiontests
- except:
- variables:
- - $GROMACS_RELEASE
-
-gromacs:gcc-7:release:test-gmxapi:
- extends:
- - .gromacs:base:test
- - .gmxapi-extra-installs
- - .use-gcc7
- stage: release-tests
- variables:
- BUILD_DIR: release-builds-gcc
- needs:
- - job: gromacs:gcc-7:release:configure-gmxapi
- artifacts: true
- - job: gromacs:gcc-7:release:build-gmxapi
- artifacts: true
- only:
- refs:
- - triggers
- - web
- - schedules
- variables:
- - $GROMACS_RELEASE
-
gromacs:gcc-8:test:
extends:
- .gromacs:base:test
gromacs:gcc-8:test:
extends:
- .gromacs:base:test
REGRESSIONTEST_PME_RANK_NUMBER: 0
REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
REGRESSIONTEST_OMP_RANK_NUMBER: 1
REGRESSIONTEST_PME_RANK_NUMBER: 0
REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
REGRESSIONTEST_OMP_RANK_NUMBER: 1
+ CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF"
+ # TODO: Enable GMX_PYTHON_PACKAGE when dependencies are in Docker image.
extends:
- .gromacs:base:test
- .use-cuda
extends:
- .gromacs:base:test
- .use-cuda
variables:
- $GROMACS_RELEASE
variables:
- $GROMACS_RELEASE
-gromacs:clang-7:test-gmxapi:
- extends:
- - .gromacs:base:test
- - .gmxapi-extra-installs
- - .use-clang7
- needs:
- - job: simple-build
- artifacts: false
- - job: gromacs:clang-7:build-gmxapi
- - job: prepare-regressiontests
- except:
- variables:
- - $GROMACS_RELEASE
-
-gromacs:clang-7:release:test-gmxapi:
- extends:
- - .gromacs:base:test
- - .gmxapi-extra-installs
- - .use-clang7
- stage: release-tests
- variables:
- BUILD_DIR: release-builds-clang
- needs:
- - job: gromacs:clang-7:release:configure-gmxapi
- artifacts: true
- - job: gromacs:clang-7:release:build-gmxapi
- artifacts: true
- only:
- refs:
- - triggers
- - web
- - schedules
- variables:
- - $GROMACS_RELEASE
-
gromacs:clang-8:test:
extends:
- .gromacs:base:test
gromacs:clang-8:test:
extends:
- .gromacs:base:test
BUILD_DIR: build-clang-tidy
CMAKE_EXTRA_OPTIONS: -DCLANG_TIDY=clang-tidy-$COMPILER_MAJOR_VERSION -DGMX_CLANG_TIDY=ON -DGMX_COMPILER_WARNINGS=ON
EXTRA_INSTALLS: clang-tidy-$COMPILER_MAJOR_VERSION
BUILD_DIR: build-clang-tidy
CMAKE_EXTRA_OPTIONS: -DCLANG_TIDY=clang-tidy-$COMPILER_MAJOR_VERSION -DGMX_CLANG_TIDY=ON -DGMX_COMPILER_WARNINGS=ON
EXTRA_INSTALLS: clang-tidy-$COMPILER_MAJOR_VERSION
+ CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF"
+ # TODO: Enable GMX_PYTHON_PACKAGE for clang-tidy when dependencies are in Docker image.
except:
variables:
- $GROMACS_RELEASE
except:
variables:
- $GROMACS_RELEASE
- .build-docs-webpage
stage: nightly-build
dependencies:
- .build-docs-webpage
stage: nightly-build
dependencies:
KUBERNETES_CPU_LIMIT: 1
KUBERNETES_CPU_REQUEST: 1
KUBERNETES_MEMORY_LIMIT: 2Gi
KUBERNETES_CPU_LIMIT: 1
KUBERNETES_CPU_REQUEST: 1
KUBERNETES_MEMORY_LIMIT: 2Gi
- BUILD_DIR: build-docs-gmxapi
script:
- cd $BUILD_DIR
- linkchecker docs/html/index.html -f ../docs/linkcheckerrc -Fxml --ignore-url html-full
script:
- cd $BUILD_DIR
- linkchecker docs/html/index.html -f ../docs/linkcheckerrc -Fxml --ignore-url html-full