- configure-build
# Build GROMACS in multiple configurations
- build
- # Test each configuration, perhaps in multiple ways
+ # Unit test each configuration, perhaps in multiple ways
- test
# Generate documentation files
- documentation
prepare-release-version:
extends:
- - .regressiontests-extends-template
+ - .regressiontests-prepare-extends-template
- .release-version-template
# Special job to package regressiontest files and have them available for testing
KUBERNETES_MEMORY_LIMIT: 2Gi
only:
refs:
+ - web
+ - pushes
- merge_requests
- schedules
- - web
except:
variables:
- $GROMACS_RELEASE
# Always clone the default version for this branch, master in this case
script:
- export REGTESTBRANCH=master
- - if [ ! -z $CI_MERGE_REQUEST_TARGET_BRANCH_NAME ] ; then
- if [[ ! -d regressiontests ]] ; then
- mkdir regressiontests ;
- cd regressiontests ;
- git init ;
- cd .. ;
- fi ;
- cd regressiontests ;
- git fetch https://gitlab.com/gromacs/gromacs-regressiontests.git $REGTESTBRANCH ;
- git checkout -qf FETCH_HEAD ;
- git clean -ffdxq ;
- git gc ;
- git archive -o gmx-regressiontests.tar.gz --prefix regressiontests/ -9 HEAD;
- echo "Build regressiontests for branch $CI_MERGE_REQUEST_TARGET_BRANCH_NAME";
- cd ..;
- else
- touch regressiontests;
- tar czf gmx-regressiontests.tar.gz regressiontests ;
- fi;
+ - if [[ ! -d regressiontests ]] ; then
+ mkdir regressiontests ;
+ cd regressiontests ;
+ git init ;
+ cd .. ;
+ fi
+ - cd regressiontests
+ - git fetch https://gitlab.com/gromacs/gromacs-regressiontests.git $REGTESTBRANCH
+ - git checkout -qf FETCH_HEAD
+ - git clean -ffdxq
+ - git gc
+ - git archive -o gmx-regressiontests.tar.gz --prefix regressiontests/ -9 HEAD
+ - echo "Build regressiontests for branch $REGTESTBRANCH"
+ - mv gmx-regressiontests.tar.gz ..
+ - cd ..
artifacts:
paths:
- gmx-regressiontests.tar.gz
KUBERNETES_MEMORY_LIMIT: 2Gi
only:
refs:
- - schedules
- web
+ - schedules
- triggers
variables:
- $GROMACS_RELEASE
paths:
- regressiontests-*.tar.gz
-.regressiontests-extends-template:
+.regressiontests-prepare-extends-template:
extends:
- .variables:default
cache: {}
prepare-regressiontests:
extends:
- - .regressiontests-extends-template
+ - .regressiontests-prepare-extends-template
- .regressiontests-template
package-regressiontests-release:
extends:
- - .regressiontests-extends-template
+ - .regressiontests-prepare-extends-template
- .regressiontests-release-template
needs:
- job: prepare-release-version
configure-archive-nightly:
stage: nightly-configure
only:
+ - web
- triggers
- schedules
needs:
.archive-build-template:
# Dockerfiles are from dockerhub, user eriklindahl
image: gromacs/ci-docs-clang:master
+ only:
+ refs:
+ - web
+ - pushes
+ - schedules
+ - merge_requests
variables:
KUBERNETES_CPU_LIMIT: 4
KUBERNETES_CPU_REQUEST: 2
- job: configure-archive-nightly
artifacts: true
only:
+ - web
- triggers
- schedules
except:
release-verify:
extends:
- - .regressiontests-extends-template
+ - .regressiontests-prepare-extends-template
- .release-verify-template
only:
refs:
# TODO this should be organized more like the current documentation.py script
image: gromacs/ci-docs-clang:master
stage: configure-build
+ only:
+ refs:
+ - web
+ - pushes
+ - schedules
+ - merge_requests
variables:
KUBERNETES_CPU_LIMIT: 1
KUBERNETES_CPU_REQUEST: 1
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" ;
# 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
+ only:
+ refs:
+ - web
+ - pushes
+ - schedules
+ - merge_requests
script:
- cd $BUILD_DIR
- cmake --build . --target gmx -- -j8
# 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
+ only:
+ refs:
+ - web
+ - pushes
+ - schedules
+ - merge_requests
variables:
KUBERNETES_CPU_LIMIT: 4
KUBERNETES_CPU_REQUEST: 2
- .configure-gmxapi-template
stage: nightly-deploy
only:
+ - web
- triggers
- schedules
except:
CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF"
CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF"
BUILD_DIR: simple-build
+ only:
+ refs:
+ - web
+ - pushes
+ - schedules
+ - merge_requests
except:
variables:
- $GROMACS_RELEASE
- .variables:default
cache: {}
stage: configure-build
+ only:
+ refs:
+ - web
+ - pushes
+ - schedules
+ - merge_requests
variables:
KUBERNETES_CPU_LIMIT: 1
KUBERNETES_CPU_REQUEST: 1
# Dockerfiles are from dockerhub, user eriklindahl
# image in admin/dockerimages/ci-docs-py27
stage: build
+ only:
+ refs:
+ - web
+ - pushes
+ - schedules
+ - merge_requests
script:
- cd $BUILD_DIR
- cmake --build . -- -j8 2>&1 | tee buildLogFile.log
# Jobs running during test stage
.gromacs:base:test:
+ variables:
+ REGRESSIONTEST_TOTAL_RANK_NUMBER: 4
+ REGRESSIONTEST_OMP_RANK_NUMBER: 2
+ REGRESSIONTEST_PME_RANK_NUMBER: 1
+ REGRESSIONTEST_MPI_RUN_COMMAND: ""
+ REGRESSIONTEST_DOUBLE: ""
stage: test
retry:
max: 2
extends:
- .variables:default
+ only:
+ refs:
+ - web
+ - pushes
+ - schedules
+ - merge_requests
script:
- cd $BUILD_DIR
- ctest -D ExperimentalTest --output-on-failure | tee ctestLog.log || true
exit 1;
fi
- cd ..
+ - tar xzf gmx-regressiontests.tar.gz
+ - source $INSTALL_DIR/bin/GMXRC
+ - cd regressiontests
+ - echo "perl gmxtest.pl -nt $REGRESSIONTEST_TOTAL_RANK_NUMBER -ntomp $REGRESSIONTEST_OMP_RANK_NUMBER -npme $REGRESSIONTEST_PME_RANK_NUMBER $REGRESSIONTEST_DOUBLE $REGRESSIONTEST_MPI_RUN_COMMAND"
+ - perl gmxtest.pl -nt $REGRESSIONTEST_TOTAL_RANK_NUMBER -ntomp $REGRESSIONTEST_OMP_RANK_NUMBER -npme $REGRESSIONTEST_PME_RANK_NUMBER $REGRESSIONTEST_DOUBLE $REGRESSIONTEST_MPI_RUN_COMMAND -xml all
artifacts:
reports:
junit: $BUILD_DIR/JUnitTestResults.xml
paths:
- $BUILD_DIR/Testing
- $BUILD_DIR/tests
+ - regressiontests
when: always
expire_in: 1 week
- job: simple-build
artifacts: false
- job: gromacs:gcc-7:build
+ - job: prepare-regressiontests
except:
variables:
- $GROMACS_RELEASE
- job: simple-build
artifacts: false
- job: gromacs:gcc-7-simd-sse41:build
+ - job: prepare-regressiontests
except:
variables:
- $GROMACS_RELEASE
extends:
- .gromacs:base:test
- .use-gcc7
+ variables:
+ REGRESSIONTEST_DOUBLE: "-double"
needs:
- job: simple-build
artifacts: false
- job: gromacs:gcc-7-double:build
+ - job: prepare-regressiontests
except:
variables:
- $GROMACS_RELEASE
- job: simple-build
artifacts: false
- job: gromacs:gcc-7:build-gmxapi
+ - job: prepare-regressiontests
except:
variables:
- $GROMACS_RELEASE
- job: simple-build
artifacts: false
- job: gromacs:gcc-8:build
+ - job: prepare-regressiontests
except:
variables:
- $GROMACS_RELEASE
- .gromacs:base:test
- .use-cuda
- .use-gcc8:cuda-10.2
+ variables:
+ REGRESSIONTEST_PME_RANK_NUMBER: 0
+ REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
+ REGRESSIONTEST_OMP_RANK_NUMBER: 1
needs:
- job: simple-build
artifacts: false
- job: gromacs:gcc-8-cuda-10.2:build
+ - job: prepare-regressiontests
except:
variables:
- $GROMACS_RELEASE
extends:
- .gromacs:base:test
- .use-clang6
+ variables:
+ REGRESSIONTEST_OMP_RANK_NUMBER: 0
needs:
- job: simple-build
artifacts: false
- job: gromacs:clang-6:build
+ - job: prepare-regressiontests
except:
variables:
- $GROMACS_RELEASE
- job: simple-build
artifacts: false
- job: gromacs:clang-7:build
+ - job: prepare-regressiontests
except:
variables:
- $GROMACS_RELEASE
- job: simple-build
artifacts: false
- job: gromacs:clang-7:build-gmxapi
+ - job: prepare-regressiontests
except:
variables:
- $GROMACS_RELEASE
- job: simple-build
artifacts: false
- job: gromacs:clang-8:build
+ - job: prepare-regressiontests
except:
variables:
- $GROMACS_RELEASE
dependencies:
- webpage-gmxapi
only:
+ - web
- schedules
- triggers
- merge_requests
- - external_pull_requests
except:
variables:
- $GROMACS_RELEASE