From 2f11497c3fe00df9f13fff9aaf519ef1b535dd47 Mon Sep 17 00:00:00 2001 From: Soeren Peters <peters@irmb.tu-bs.de> Date: Fri, 13 Nov 2020 09:46:47 +0100 Subject: [PATCH] Do a lot of refactoring in gitlab CI file. Make use of the new images in a few jobs. --- .gitlab-ci.yml | 179 ++++++++++++++++++++++++++----------------------- 1 file changed, 96 insertions(+), 83 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e3e7fcc72..63bb4ca84 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -61,7 +61,9 @@ gcc_9_python: - mpirun --version - mkdir -p $CI_PROJECT_DIR/$BUILD_FOLDER - cd $CI_PROJECT_DIR/$BUILD_FOLDER - - cmake .. -DBUILD_VF_CPU=ON -DBUILD_VF_GPU=ON + - cmake .. + -DBUILD_VF_CPU=ON + -DBUILD_VF_GPU=ON - cmake . -LAH - make -j4 @@ -81,6 +83,43 @@ clang_10: - export CXX=clang++ +############################################################################### +gcc_9_rebuild: + stage: build + + image: irmb/virtualfluids-deps-ubuntu20.04 + + tags: + - gpu + - linux + + before_script: + - export CCACHE_BASEDIR=$CI_PROJECT_DIR + - export CCACHE_DIR=$CI_PROJECT_DIR/cache + - ccache -s + + script: + - mkdir -p $CI_PROJECT_DIR/build + - cd $CI_PROJECT_DIR/build + - rm -r -f ./* + - cmake .. + -DBUILD_VF_CPU=ON + -DBUILD_VF_GPU=ON + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache + -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache + -DCMAKE_C_COMPILER_LAUNCHER=ccache + - make -j4 2>&1 | tee gcc_warnings.txt + - ccache -s + + artifacts: + paths: + - build/gcc_warnings.txt + + cache: + key: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG" + paths: + - $CI_PROJECT_DIR/cache + ############################################################################### msvc_16: stage: build @@ -114,7 +153,7 @@ msvc_16: - MSBuild.exe VirtualFluids.sln /property:Configuration=$env:BUILD_CONFIGURATION /verbosity:minimal /maxcpucount:4 cache: - key: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG-windows" + key: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG" paths: - $CI_PROJECT_DIR/$env:BUILD_FOLDER/ @@ -136,49 +175,6 @@ build_singularity_image: - singularity build Containers/VirtualFluidsOpenMPI.sif Containers/VirtualFluidsOpenMPI.def - ls -sh Containers/VirtualFluidsOpenMPI.sif - -############################################################################### -gcc_9_rebuild: - stage: build - - tags: - - gpu - - linux - - before_script: - - export DEBIAN_FRONTEND=noninteractive - - apt-get update - - apt-get install -y libboost-serialization-dev - - cd /tmp - - apt-get install -y unzip - - wget https://github.com/NVIDIA/cuda-samples/archive/10.1.2.zip - - unzip 10.1.2.zip - - export NVCUDASAMPLES_ROOT=$(pwd)/cuda-samples-10.1.2 - - apt-get install -y ccache - - ccache --version - - export CCACHE_BASEDIR=$CI_PROJECT_DIR - - export CCACHE_DIR=$CI_PROJECT_DIR/cache - - ccache -s - - script: - - cd $CI_PROJECT_DIR - - mkdir -p build_gcc_rebuild - - cd build_gcc_rebuild - - rm -r -f ./* - - cmake .. -DBUILD_VF_CPU=ON -DBUILD_VF_GPU=ON -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache - - make -j4 2>&1 | tee gcc_warnings.txt - - ccache -s - - artifacts: - paths: - - build_gcc_rebuild/gcc_warnings.txt - - cache: - key: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG" - paths: - - $CI_PROJECT_DIR/cache - - ############################################################################### ## Tests ## ############################################################################### @@ -193,6 +189,7 @@ gcc_9_python_unit_tests: script: - $VF_UNITTESTS +############################################################################### msvc_16_unit_tests: stage: test @@ -208,6 +205,7 @@ msvc_16_unit_tests: script: - .\bin\Release\basicsTests.exe +############################################################################### gcc_9_python_bindings_test: stage: test @@ -232,15 +230,13 @@ gcc_9_python_bindings_test: clang_build_analyzer_clang_10: stage: analyze + image: irmb/virtualfluids-deps-ubuntu20.04 + only: ["schedules"] needs: [] before_script: - - export DEBIAN_FRONTEND=noninteractive - - apt-get update - - cmake --version - - mpirun --version - export CC=clang - export CXX=clang++ - $CXX --version @@ -254,24 +250,30 @@ clang_build_analyzer_clang_10: script: - mkdir -p $CI_PROJECT_DIR/build - cd $CI_PROJECT_DIR/build - - rm -r -f ./* - - cmake .. -DBUILD_VF_CPU=ON -DUSE_OPENMP=OFF -DCMAKE_CXX_FLAGS=-ftime-trace + - cmake .. + -DBUILD_VF_CPU=ON + -DBUILD_VF_GPU=ON + -DUSE_OPENMP=OFF + -DCMAKE_CXX_FLAGS=-ftime-trace - ClangBuildAnalyzer --start . - make - ClangBuildAnalyzer --stop . CBA - ClangBuildAnalyzer --analyze CBA - -include_what_you_use_gcc_9: +############################################################################### +include_what_you_use_clang_10: stage: analyze + image: irmb/virtualfluids-deps-ubuntu20.04 + only: ["schedules"] needs: [] before_script: - - export DEBIAN_FRONTEND=noninteractive - - apt-get update + - export CC=clang + - export CXX=clang++ + - $CXX --version - cd /tmp - git clone https://github.com/include-what-you-use/include-what-you-use.git - cd include-what-you-use @@ -279,19 +281,23 @@ include_what_you_use_gcc_9: - cmake . -DCMAKE_PREFIX_PATH=/usr/lib/llvm-10 - make - export PATH+=:$(pwd)/bin - - echo $PATH script: - mkdir -p $CI_PROJECT_DIR/build - cd $CI_PROJECT_DIR/build - - rm -r -f ./* - - cmake .. -DBUILD_VF_CPU=ON -DUSE_OPENMP=OFF -DBUILD_VF_INCLUDE_WHAT_YOU_USE=ON + - cmake .. + -DBUILD_VF_CPU=ON + -DBUILD_VF_GPU=ON + -DUSE_OPENMP=OFF + -DBUILD_VF_INCLUDE_WHAT_YOU_USE=ON - make - +############################################################################### cppcheck: stage: analyze + image: irmb/virtualfluids-deps-ubuntu20.04 + needs: [] before_script: @@ -310,21 +316,21 @@ cppcheck: - html_report/ - cppcheck.xml +############################################################################### # lizard - Cyclomatic Complexity Analyzer # Ignore warnings is manually set to 191. This job will fail when new warnings are added. lizard: stage: analyze + image: irmb/virtualfluids-python-deps-ubuntu20.04 + needs: [] before_script: - - export DEBIAN_FRONTEND=noninteractive - - apt-get update - cd /tmp - git clone https://github.com/terryyin/lizard.git - cd lizard - python3 setup.py install - - which lizard - lizard --version script: @@ -335,10 +341,13 @@ lizard: paths: - lizard.txt +############################################################################### # code coverage gcov_gcc_9: stage: analyze + image: irmb/virtualfluids-python-deps-ubuntu20.04 + needs: [] before_script: @@ -346,57 +355,60 @@ gcov_gcc_9: - apt-get update - pip3 install gcovr - gcovr --version - - apt-get install -y libboost-serialization-dev - - cd /tmp - - apt-get install unzip - - wget https://github.com/NVIDIA/cuda-samples/archive/10.1.2.zip - - unzip 10.1.2.zip - - export NVCUDASAMPLES_ROOT=$(pwd)/cuda-samples-10.1.2 script: - - mkdir -p $CI_PROJECT_DIR/gcov_build - - cd $CI_PROJECT_DIR/gcov_build - - cmake .. -DBUILD_VF_CPU=ON -DBUILD_VF_GPU=ON -DBUILD_VF_COVERAGE=ON -DBUILD_VF_UNIT_TESTS=ON + - mkdir -p $CI_PROJECT_DIR/build + - cd $CI_PROJECT_DIR/build + - cmake .. + -DBUILD_VF_CPU=ON + -DBUILD_VF_GPU=ON + -DBUILD_VF_COVERAGE=ON + -DBUILD_VF_UNIT_TESTS=ON - make -j4 - ./bin/basicsTests - cd .. - mkdir coverage - - gcovr -r $CI_PROJECT_DIR -k gcov_build -f "src" --print-summary --html coverage/coverage.html --html-details --xml coverage/coverage.xml + - gcovr -r $CI_PROJECT_DIR -k build -f "src" --print-summary --html coverage/coverage.html --html-details --xml coverage/coverage.xml artifacts: paths: - coverage/ - - gcov_build/ + - build/ reports: cobertura: coverage/coverage.xml cache: - key: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG-gcov" + key: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG" paths: - - gcov_build + - build +############################################################################### # this job also produces a compile commands json file. clang-tidy: stage: analyze + image: irmb/virtualfluids-python-deps-ubuntu20.04 + needs: [] before_script: - run-clang-tidy -h script: - - cd $CI_PROJECT_DIR - - mkdir -p build_clang_tidy - - cd build_clang_tidy - - cmake .. -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DBUILD_VF_CPU=ON -DBUILD_VF_GPU=OFF + - mkdir -p $CI_PROJECT_DIR/build + - cd $CI_PROJECT_DIR/build + - cmake .. + -DCMAKE_EXPORT_COMPILE_COMMANDS=ON + -DBUILD_VF_CPU=ON + -DBUILD_VF_GPU=ON - python3 ../utilities/filterCompileCommands.py compile_commands.json - run-clang-tidy -quiet > clangtidy.txt artifacts: paths: - - build_clang_tidy/clangtidy.txt - - build_clang_tidy/compile_commands.json + - build/clangtidy.txt + - build/compile_commands.json ############################################################################### ## Deploy ## @@ -426,7 +438,7 @@ vf_to_phoenix: REMOTE_USER: - y0054816 - +############################################################################### cppcheck_to_elladan: stage: deploy needs: ["cppcheck"] @@ -444,7 +456,7 @@ cppcheck_to_elladan: script: - ansible-playbook -i ansible/hosts.cfg -u public_pages ansible/playbook_cppcheck.yml - +############################################################################### gcov_to_elladan: stage: deploy @@ -463,6 +475,7 @@ gcov_to_elladan: script: - ansible-playbook -i ansible/hosts.cfg -u public_pages ansible/playbook_gcov.yml +############################################################################### # sonar-scanner runs sonar-project.properties # the reports ins this file needs to match the artifacts. sonar-scanner: -- GitLab