Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simplify CI and bump version requirements #3687

Merged
merged 19 commits into from
Apr 27, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
115 changes: 63 additions & 52 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
image: docker.pkg.github.com/espressomd/docker/ubuntu-18.04:a1192b35590a1a474c55fe1e9a1e6c25758454ea
image: docker.pkg.github.com/espressomd/docker/ubuntu-20.04:06b6216c7aa3555bcf28c90734dbb84e7285c96f

stages:
- prepare
Expand All @@ -19,7 +19,7 @@ stages:
variables:
GIT_SUBMODULE_STRATEGY: none
dependencies: []
timeout: 15m
timeout: 40m
interruptible: false
tags:
- linux
Expand All @@ -38,7 +38,6 @@ status_pending:
style:
<<: *global_job_definition
stage: prepare
image: docker.pkg.github.com/espressomd/docker/ubuntu-20.04:b0de8c7df57d39edf72ad7d40c28bb67467dd7ec
dependencies: []
before_script:
- git submodule deinit .
Expand All @@ -58,14 +57,13 @@ style:
style_doxygen:
<<: *global_job_definition
stage: prepare
image: docker.pkg.github.com/espressomd/docker/ubuntu-cuda-10.1:c9fe9d6d79ffd7e3e89ef282548e0b5278afde2c
dependencies: []
script:
- mkdir build
- cd build
- cp ../maintainer/configs/maxset.hpp myconfig.hpp
- cmake .. -DWITH_CUDA=OFF
- bash ../maintainer/CI/dox_warnings.sh
- cmake .. -DWITH_CUDA=ON -DWITH_SCAFACOS=ON
- sh ../maintainer/CI/dox_warnings.sh
tags:
- docker
- linux
Expand All @@ -75,6 +73,9 @@ style_doxygen:
default:
<<: *global_job_definition
stage: build
variables:
CC: 'gcc-9'
CXX: 'g++-9'
script:
- export with_cuda=false myconfig=default with_coverage=true
- bash maintainer/CI/build_cmake.sh
Expand All @@ -85,6 +86,9 @@ default:
maxset:
<<: *global_job_definition
stage: build
variables:
CC: 'gcc-9'
CXX: 'g++-9'
script:
- export with_cuda=false myconfig=maxset with_coverage=true
- bash maintainer/CI/build_cmake.sh
Expand All @@ -95,41 +99,35 @@ maxset:
no_rotation:
<<: *global_job_definition
stage: build
variables:
CC: 'gcc-9'
CXX: 'g++-9'
script:
- export with_cuda=false myconfig=no_rotation with_coverage=true
- bash maintainer/CI/build_cmake.sh
tags:
- docker
- linux

ubuntu-20.04-sanitizer:
ubuntu:wo-dependencies:
<<: *global_job_definition
image: docker.pkg.github.com/espressomd/docker/ubuntu-20.04:b0de8c7df57d39edf72ad7d40c28bb67467dd7ec
stage: build
variables:
CC: 'clang-9'
CXX: 'clang++-9'
image: docker.pkg.github.com/espressomd/docker/ubuntu-wo-dependencies:06b6216c7aa3555bcf28c90734dbb84e7285c96f
script:
- export myconfig=maxset with_cuda=true with_cuda_compiler=clang with_coverage=false
- export with_static_analysis=true test_timeout=900
- export with_asan=true ASAN_OPTIONS="allocator_may_return_null=1"
- export with_ubsan=true UBSAN_OPTIONS=suppressions=${CI_PROJECT_DIR}/maintainer/CI/ubsan.supp
- export myconfig=maxset with_cuda=false make_check_unit_tests=false make_check_python=false
- bash maintainer/CI/build_cmake.sh
timeout: 2h
tags:
- docker
- linux
- cuda

### Builds with different Distributions
### Builds with different distributions

debian:10:
<<: *global_job_definition
stage: build
image: docker.pkg.github.com/espressomd/docker/debian:446ff604bbfa63f30ddb462697fa0d0dc2630460
script:
- export with_cuda=false
- export myconfig=maxset make_check_python=false
- export with_cuda=false myconfig=maxset make_check_python=false
- bash maintainer/CI/build_cmake.sh
tags:
- docker
Expand Down Expand Up @@ -182,13 +180,32 @@ fedora:latest:

### Builds with CUDA

clang-sanitizer:
<<: *global_job_definition
stage: build
variables:
CC: 'clang-9'
CXX: 'clang++-9'
script:
- export myconfig=maxset with_cuda=true with_cuda_compiler=clang with_coverage=false
- export with_static_analysis=true test_timeout=900
- export with_asan=true ASAN_OPTIONS="allocator_may_return_null=1"
- export with_ubsan=true UBSAN_OPTIONS=suppressions=${CI_PROJECT_DIR}/maintainer/CI/ubsan.supp
- bash maintainer/CI/build_cmake.sh
timeout: 2h
tags:
- docker
- linux
- cuda

cuda10-maxset:
<<: *global_job_definition
stage: build
image: docker.pkg.github.com/espressomd/docker/ubuntu-cuda-10.1:c9fe9d6d79ffd7e3e89ef282548e0b5278afde2c
variables:
CC: 'gcc-8'
CXX: 'g++-8'
script:
- export myconfig=maxset with_cuda=true with_coverage=false test_timeout=900 srcdir=${CI_PROJECT_DIR}
- export cmake_params="-DIPYTHON_EXECUTABLE=$(which jupyter)"
- bash maintainer/CI/build_cmake.sh
artifacts:
paths:
Expand All @@ -202,10 +219,13 @@ cuda10-maxset:
cuda9-maxset:
<<: *global_job_definition
stage: build
image: docker.pkg.github.com/espressomd/docker/ubuntu-cuda-9.0:c9fe9d6d79ffd7e3e89ef282548e0b5278afde2c
image: docker.pkg.github.com/espressomd/docker/ubuntu-18.04:06b6216c7aa3555bcf28c90734dbb84e7285c96f
variables:
CC: 'gcc-6'
CXX: 'g++-6'
GCOV: 'gcov-6'
script:
- export myconfig=maxset with_cuda=true with_coverage=true test_timeout=900 srcdir=${CI_PROJECT_DIR}
- sed -i 's/ or "DISPLAY" in os.environ/ or True/' src/python/espressomd/visualization.pyx
- bash maintainer/CI/build_cmake.sh
artifacts:
paths:
Expand All @@ -220,7 +240,9 @@ cuda9-maxset:
tutorials-samples-maxset:
<<: *global_job_definition
stage: build
image: docker.pkg.github.com/espressomd/docker/ubuntu-cuda-10.1:c9fe9d6d79ffd7e3e89ef282548e0b5278afde2c
variables:
CC: 'gcc-8'
CXX: 'g++-8'
script:
- export myconfig=maxset with_cuda=true with_coverage=false make_check_unit_tests=false make_check_python=false
- export make_check_tutorials=true make_check_samples=true make_check_benchmarks=false test_timeout=1200
Expand All @@ -233,7 +255,9 @@ tutorials-samples-maxset:
tutorials-samples-default:
<<: *global_job_definition
stage: build
image: docker.pkg.github.com/espressomd/docker/ubuntu-cuda-10.1:c9fe9d6d79ffd7e3e89ef282548e0b5278afde2c
variables:
CC: 'gcc-8'
CXX: 'g++-8'
script:
- export myconfig=default with_cuda=true with_coverage=false make_check_unit_tests=false make_check_python=false
- export make_check_tutorials=true make_check_samples=true make_check_benchmarks=false test_timeout=1200
Expand All @@ -248,7 +272,9 @@ tutorials-samples-default:
tutorials-samples-empty:
<<: *global_job_definition
stage: build
image: docker.pkg.github.com/espressomd/docker/ubuntu-cuda-10.1:c9fe9d6d79ffd7e3e89ef282548e0b5278afde2c
variables:
CC: 'gcc-8'
CXX: 'g++-8'
script:
- export myconfig=empty with_cuda=true with_coverage=false make_check_unit_tests=false make_check_python=false
- export make_check_tutorials=true make_check_samples=true make_check_benchmarks=false test_timeout=1200 with_scafacos=false
Expand All @@ -263,7 +289,9 @@ tutorials-samples-empty:
tutorials-samples-no-gpu:
<<: *global_job_definition
stage: build
image: docker.pkg.github.com/espressomd/docker/ubuntu-cuda-10.1:c9fe9d6d79ffd7e3e89ef282548e0b5278afde2c
variables:
CC: 'gcc-8'
CXX: 'g++-8'
script:
- export myconfig=maxset with_cuda=true with_coverage=false make_check_unit_tests=false make_check_python=false
- export make_check_tutorials=true make_check_samples=true make_check_benchmarks=false test_timeout=1200 hide_gpu=true
Expand All @@ -277,10 +305,12 @@ tutorials-samples-no-gpu:
installation:
<<: *global_job_definition
stage: build
image: docker.pkg.github.com/espressomd/docker/ubuntu-cuda-10.1:c9fe9d6d79ffd7e3e89ef282548e0b5278afde2c
variables:
CC: 'gcc-8'
CXX: 'g++-8'
script:
- export myconfig=maxset with_cuda=true with_coverage=false make_check_unit_tests=false make_check_python=false
- export srcdir=${CI_PROJECT_DIR} test_timeout=1800 build_type=Release
- export srcdir=${CI_PROJECT_DIR} build_type=Release
- bash maintainer/CI/build_cmake.sh
- cd build
- make install
Expand All @@ -298,13 +328,11 @@ installation:
- docker
- linux
- cuda
timeout: 2h
when: manual

empty:
<<: *global_job_definition
stage: build
image: docker.pkg.github.com/espressomd/docker/ubuntu-20.04:b0de8c7df57d39edf72ad7d40c28bb67467dd7ec
variables:
CC: 'clang-9'
CXX: 'clang++-9'
Expand All @@ -316,23 +344,12 @@ empty:
- linux
- cuda

ubuntu:wo-dependencies:
<<: *global_job_definition
stage: build
image: docker.pkg.github.com/espressomd/docker/ubuntu-wo-dependencies:446ff604bbfa63f30ddb462697fa0d0dc2630460
script:
- export myconfig=maxset with_cuda=false make_check_unit_tests=false make_check_python=false
- bash maintainer/CI/build_cmake.sh
tags:
- docker
- linux

### Builds with ROCm

rocm-maxset:
<<: *global_job_definition
stage: build
image: docker.pkg.github.com/espressomd/docker/rocm:446ff604bbfa63f30ddb462697fa0d0dc2630460
image: docker.pkg.github.com/espressomd/docker/rocm:06b6216c7aa3555bcf28c90734dbb84e7285c96f
script:
- export myconfig=maxset with_cuda=true with_cuda_compiler=hip
- bash maintainer/CI/build_cmake.sh
Expand Down Expand Up @@ -381,7 +398,6 @@ intel:19:
check_sphinx:
<<: *global_job_definition
stage: additional_checks
image: docker.pkg.github.com/espressomd/docker/ubuntu-cuda-10.1:c9fe9d6d79ffd7e3e89ef282548e0b5278afde2c
needs:
- cuda10-maxset
when: on_success
Expand All @@ -402,7 +418,6 @@ check_sphinx:
run_tutorials:
<<: *global_job_definition
stage: additional_checks
image: docker.pkg.github.com/espressomd/docker/ubuntu-cuda-10.1:c9fe9d6d79ffd7e3e89ef282548e0b5278afde2c
needs:
- cuda10-maxset
when: on_success
Expand All @@ -426,7 +441,6 @@ run_tutorials:
run_doxygen:
<<: *global_job_definition
stage: additional_checks
image: docker.pkg.github.com/espressomd/docker/ubuntu-cuda-10.1:c9fe9d6d79ffd7e3e89ef282548e0b5278afde2c
needs:
- cuda10-maxset
when: on_success
Expand All @@ -446,10 +460,9 @@ run_doxygen:
check_cuda_maxset_no_gpu:
<<: *global_job_definition
stage: additional_checks
image: docker.pkg.github.com/espressomd/docker/ubuntu-cuda-9.0:c9fe9d6d79ffd7e3e89ef282548e0b5278afde2c
when: on_success
needs:
- cuda9-maxset
- cuda10-maxset
script:
- export CUDA_VISIBLE_DEVICES=""
- cd ${CI_PROJECT_DIR}/build
Expand All @@ -462,10 +475,9 @@ check_cuda_maxset_no_gpu:
check_with_odd_no_of_processors:
<<: *global_job_definition
stage: additional_checks
image: docker.pkg.github.com/espressomd/docker/ubuntu-cuda-9.0:c9fe9d6d79ffd7e3e89ef282548e0b5278afde2c
when: on_success
needs:
- cuda9-maxset
- cuda10-maxset
script:
- cd ${CI_PROJECT_DIR}/build
- cmake -DTEST_NP=3 .
Expand All @@ -479,7 +491,6 @@ check_with_odd_no_of_processors:
.deploy_base:
<<: *global_job_definition
stage: deploy
image: docker.pkg.github.com/espressomd/docker/ubuntu-20.04:e24415d47e2611662efe56b9946f1d0c1dda32d7
only:
- python
before_script:
Expand Down
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ matrix:
- os: linux
sudo: required
services: docker
env: myconfig=maxset image=espressomd/docker-ubuntu-18.04:446ff604bbfa63f30ddb462697fa0d0dc2630460
env: myconfig=maxset image=espressomd/docker-ubuntu-20.04:06b6216c7aa3555bcf28c90734dbb84e7285c96f

script:
- maintainer/CI/build_docker.sh
24 changes: 5 additions & 19 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -279,13 +279,11 @@ if(WITH_TESTS)
list(APPEND BOOST_COMPONENTS unit_test_framework)
endif()

if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
set(BOOST_MINIMUM_VERSION "1.65.0")
if(CUDA_FOUND AND CUDA_VERSION VERSION_GREATER_EQUAL "9.0")
set(BOOST_MINIMUM_VERSION "1.66.0")
endif()
else()
set(BOOST_MINIMUM_VERSION "1.58.0")
set(BOOST_MINIMUM_VERSION "1.65.0")

if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel" AND CUDA_FOUND
AND CUDA_VERSION VERSION_GREATER_EQUAL "9.0")
set(BOOST_MINIMUM_VERSION "1.66.0")
endif()

# old Boost.MPI versions contain a use-after-free bug that seems to only cause
Expand All @@ -296,18 +294,6 @@ endif()

find_package(Boost ${BOOST_MINIMUM_VERSION} REQUIRED ${BOOST_COMPONENTS})

if(Boost_VERSION VERSION_GREATER_EQUAL 106400 AND Boost_VERSION VERSION_LESS
106500)
# Boost 1.64 has incompatible Serialization and MPI modules, see
# https://svn.boost.org/trac10/ticket/12723 . Some distributions, like Fedora,
# have backported the patch.
file(READ "${Boost_INCLUDE_DIR}/boost/mpi/detail/mpi_datatype_primitive.hpp"
boost_mpi_datatype_file)
if(boost_mpi_datatype_file MATCHES "boost::serialization::detail::get_data")
message(FATAL_ERROR "Boost 1.64 is unsupported")
endif()
endif()

#
# Paths
#
Expand Down
Loading