Skip to content
Snippets Groups Projects
.gitlab-ci.yml 73.3 KiB
Newer Older
###############################################################################
##                                                                           ##
Michael Kuron's avatar
Michael Kuron committed
##    General settings                                                       ##
##                                                                           ##
###############################################################################

stages:
Sebastian Eibl's avatar
Sebastian Eibl committed
   - test
   - deploy
###############################################################################
##                                                                           ##
##    Build templates                                                        ##
##                                                                           ##
###############################################################################

Sebastian Eibl's avatar
Sebastian Eibl committed
   script:
Dominik Thoennes's avatar
Dominik Thoennes committed
      - pip install -I cmake==3.16.3
Sebastian Eibl's avatar
Sebastian Eibl committed
      - export NUM_CORES=$(nproc --all)
      - export MAX_BUILD_CORES=$(( $(awk '( $1 == "MemTotal:" ) { print $2 }' /proc/meminfo) / ( 4 * 1024 * 1024  ) ))
      - "[[ $MAX_BUILD_CORES -lt $NUM_CORES ]] && export NUM_BUILD_CORES=$MAX_BUILD_CORES || export NUM_BUILD_CORES=$NUM_CORES"
      - $CXX --version
      - cmake --version
      - ccache --version
      - mpirun --version
      - python3 --version
      - python3 python/mesa_pd.py -y .
Sebastian Eibl's avatar
Sebastian Eibl committed
      - export CCACHE_BASEDIR=$CI_PROJECT_DIR
      - mkdir $CI_PROJECT_DIR/build
      - cd $CI_PROJECT_DIR/build
Dominik Thoennes's avatar
Dominik Thoennes committed
      - if command -v ompi_info && dpkg --compare-versions `ompi_info | head -2 | tail -1 | sed 's/[^0-9.]*\([0-9.]*\).*/\1/'` ge 1.10; then export MPIEXEC_PREFLAGS="--allow-run-as-root" ; fi
      - cmake ..
        -DCMAKE_CXX_FLAGS=$CMAKE_CXX_FLAGS
        -DWALBERLA_BUFFER_DEBUG=$WALBERLA_BUFFER_DEBUG
        -DWALBERLA_BUILD_TESTS=ON
        -DWALBERLA_BUILD_BENCHMARKS=ON
        -DWALBERLA_BUILD_TUTORIALS=ON
        -DWALBERLA_BUILD_TOOLS=ON
        -DWALBERLA_BUILD_SHOWCASES=ON
        -DWALBERLA_BUILD_WITH_MPI=$WALBERLA_BUILD_WITH_MPI
        -DWALBERLA_BUILD_WITH_CUDA=$WALBERLA_BUILD_WITH_CUDA
        -DWALBERLA_BUILD_WITH_PYTHON=$WALBERLA_BUILD_WITH_PYTHON
        -DWALBERLA_BUILD_WITH_OPENMP=$WALBERLA_BUILD_WITH_OPENMP
        -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -DMPIEXEC_PREFLAGS=$MPIEXEC_PREFLAGS
        -DWALBERLA_DOUBLE_ACCURACY=$WALBERLA_DOUBLE_ACCURACY
        -DWARNING_ERROR=ON
        -DWALBERLA_BUILD_WITH_METIS=$WALBERLA_BUILD_WITH_METIS
        -DWALBERLA_BUILD_WITH_PARMETIS=$WALBERLA_BUILD_WITH_PARMETIS
        -DWALBERLA_BUILD_WITH_FFTW=$WALBERLA_BUILD_WITH_FFTW
        -DWALBERLA_ENABLE_GUI=$WALBERLA_ENABLE_GUI
        -DWALBERLA_BUILD_WITH_CODEGEN=$WALBERLA_BUILD_WITH_CODEGEN
        -DWALBERLA_STL_BOUNDS_CHECKS=$WALBERLA_STL_BOUNDS_CHECKS
Sebastian Eibl's avatar
Sebastian Eibl committed
      - make -j $NUM_BUILD_CORES -l $NUM_CORES
      - ctest -LE $CTEST_EXCLUDE_LABELS -C $CMAKE_BUILD_TYPE --output-on-failure -j $NUM_CORES -T Test
   after_script:
Dominik Thoennes's avatar
Dominik Thoennes committed
      - pip3 install lxml
      - python3 cmake/ctest2junit.py build > report.xml
Sebastian Eibl's avatar
Sebastian Eibl committed
   tags:
      - docker
   variables:
      CTEST_EXCLUDE_LABELS: "longrun"
      WALBERLA_BUILD_WITH_MPI: "ON"
      WALBERLA_BUILD_WITH_OPENMP: "ON"
      OMP_NUM_THREADS: "4"
      OMP_WAIT_POLICY: "PASSIVE"
      CMAKE_BUILD_TYPE: "Release"
      WALBERLA_BUFFER_DEBUG: "OFF"
      WALBERLA_DOUBLE_ACCURACY: "ON"
      WALBERLA_BUILD_WITH_METIS: "ON"
      WALBERLA_BUILD_WITH_PARMETIS: "ON"
      WALBERLA_BUILD_WITH_FFTW: "ON"
   artifacts:
      when: always
      reports:
         junit:
            - report.xml
            - python/report.xml
###############################################################################
##                                                                           ##
Martin Bauer's avatar
Martin Bauer committed
##    Linux builds                                                           ##
##                                                                           ##
###############################################################################

intel_19_serial:
Sebastian Eibl's avatar
Sebastian Eibl committed
   image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:19
   variables:
      WALBERLA_BUILD_WITH_CUDA: "ON"
      WALBERLA_BUILD_WITH_MPI: "OFF"
      WALBERLA_BUILD_WITH_OPENMP: "OFF"
      WALBERLA_BUILD_WITH_PARMETIS: "OFF"
      CMAKE_CXX_FLAGS: "-qoverride-limits"
Sebastian Eibl's avatar
Sebastian Eibl committed
   only:
      variables:
         - $ENABLE_NIGHTLY_BUILDS
   tags:
Sebastian Eibl's avatar
Sebastian Eibl committed
      - docker
      - intel
Sebastian Eibl's avatar
Sebastian Eibl committed
   image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:19
   variables:
      WALBERLA_BUILD_WITH_CUDA: "ON"
      WALBERLA_BUILD_WITH_OPENMP: "OFF"
      CMAKE_CXX_FLAGS: "-qoverride-limits"
Sebastian Eibl's avatar
Sebastian Eibl committed
   only:
      variables:
         - $ENABLE_NIGHTLY_BUILDS
   tags:
Sebastian Eibl's avatar
Sebastian Eibl committed
      - docker
      - intel
Sebastian Eibl's avatar
Sebastian Eibl committed
   image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:19
   variables:
      WALBERLA_BUILD_WITH_CUDA: "ON"
      CMAKE_CXX_FLAGS: "-qoverride-limits"
Dominik Thoennes's avatar
Dominik Thoennes committed
   only:
      variables:
         - $ENABLE_NIGHTLY_BUILDS
Sebastian Eibl's avatar
Sebastian Eibl committed
   tags:
Sebastian Eibl's avatar
Sebastian Eibl committed
      - docker
      - intel

intel_19_serial_dbg:
Sebastian Eibl's avatar
Sebastian Eibl committed
   image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:19
   variables:
      WALBERLA_BUILD_WITH_CUDA: "ON"
      WALBERLA_BUILD_WITH_MPI: "OFF"
      WALBERLA_BUILD_WITH_OPENMP: "OFF"
      WALBERLA_BUILD_WITH_PARMETIS: "OFF"
      CMAKE_BUILD_TYPE: "DebugOptimized"
      CMAKE_CXX_FLAGS: "-qoverride-limits"
Dominik Thoennes's avatar
Dominik Thoennes committed
   only:
      variables:
         - $ENABLE_NIGHTLY_BUILDS
Sebastian Eibl's avatar
Sebastian Eibl committed
   tags:
Sebastian Eibl's avatar
Sebastian Eibl committed
      - docker
      - intel

intel_19_mpionly_dbg:
Sebastian Eibl's avatar
Sebastian Eibl committed
   image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:19
   variables:
      WALBERLA_BUILD_WITH_CUDA: "ON"
      CMAKE_BUILD_TYPE: "DebugOptimized"
      WALBERLA_BUILD_WITH_OPENMP: "OFF"
      CMAKE_CXX_FLAGS: "-qoverride-limits"
Dominik Thoennes's avatar
Dominik Thoennes committed
   only:
      variables:
         - $ENABLE_NIGHTLY_BUILDS
Sebastian Eibl's avatar
Sebastian Eibl committed
   tags:
Sebastian Eibl's avatar
Sebastian Eibl committed
      - docker
      - intel

intel_19_hybrid_dbg:
Sebastian Eibl's avatar
Sebastian Eibl committed
   image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:19
   variables:
      WALBERLA_BUILD_WITH_CUDA: "ON"
      CMAKE_BUILD_TYPE: "DebugOptimized"
      CMAKE_CXX_FLAGS: "-qoverride-limits"
Sebastian Eibl's avatar
Sebastian Eibl committed
   tags:
Sebastian Eibl's avatar
Sebastian Eibl committed
      - docker
      - intel

intel_19_hybrid_dbg_sp:
Sebastian Eibl's avatar
Sebastian Eibl committed
   image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:19
   variables:
      WALBERLA_BUILD_WITH_CUDA: "ON"
      CMAKE_BUILD_TYPE: "DebugOptimized"
      WALBERLA_DOUBLE_ACCURACY: "OFF"
      WALBERLA_BUILD_WITH_PARMETIS: "OFF"
      WALBERLA_BUILD_WITH_METIS: "OFF"
      CMAKE_CXX_FLAGS: "-qoverride-limits"
Dominik Thoennes's avatar
Dominik Thoennes committed
   only:
      variables:
         - $ENABLE_NIGHTLY_BUILDS
   tags:
      - cuda
Loading full blame...