diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ee3f70695e..df84f9afa0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -27,14 +27,14 @@ variables: .Ubuntu_Image: tags: - saas-linux-medium-amd64 - image: ubuntu:22.04 + image: ubuntu:24.04 rules: - if: $CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "merge_request_event" Ubuntu_GCC_preprocess: extends: .Ubuntu_Image cache: - key: Ubuntu_GCC_preprocess.ubuntu_22.04.v1 + key: Ubuntu_GCC_preprocess.ubuntu_24.04.v1 paths: - apt-cache/ - .cache/pip/ @@ -43,7 +43,7 @@ Ubuntu_GCC_preprocess: PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" before_script: - CI/install_debian_deps.sh openmw-deps openmw-deps-dynamic gcc_preprocess - - pip3 install --user click termtables + - pip3 install --break-system-packages --user termtables script: - CI/ubuntu_gcc_preprocess.sh @@ -79,7 +79,7 @@ Ubuntu_GCC_preprocess: - if [[ "${BUILD_TESTS_ONLY}" && ! "${BUILD_WITH_CODE_COVERAGE}" ]]; then ./openmw_settings_access_benchmark; fi - ccache -s - df -h - - if [[ "${BUILD_WITH_CODE_COVERAGE}" ]]; then gcovr --xml-pretty --exclude-unreachable-branches --print-summary --root "${CI_PROJECT_DIR}" -j $(nproc) -o ../coverage.xml; fi + - if [[ "${BUILD_WITH_CODE_COVERAGE}" ]]; then /root/.local/bin/gcovr --xml-pretty --exclude-unreachable-branches --print-summary --root "${CI_PROJECT_DIR}" -j $(nproc) -o ../coverage.xml; fi - ls | grep -v -e '^extern$' -e '^install$' -e '^components-tests.xml$' -e '^openmw-tests.xml$' -e '^openmw-cs-tests.xml$' | xargs -I '{}' rm -rf './{}' - cd .. - df -h @@ -99,7 +99,7 @@ Coverity: rules: - if: $CI_PIPELINE_SOURCE == "schedule" cache: - key: Coverity.ubuntu_22.04.v1 + key: Coverity.ubuntu_24.04.v1 paths: - apt-cache/ - ccache/ @@ -138,7 +138,7 @@ Coverity: Ubuntu_GCC: extends: .Ubuntu cache: - key: Ubuntu_GCC.ubuntu_22.04.v1 + key: Ubuntu_GCC.ubuntu_24.04.v1 before_script: - CI/install_debian_deps.sh gcc openmw-deps openmw-deps-dynamic variables: @@ -151,7 +151,7 @@ Ubuntu_GCC: Ubuntu_GCC_asan: extends: Ubuntu_GCC cache: - key: Ubuntu_GCC_asan.ubuntu_22.04.v1 + key: Ubuntu_GCC_asan.ubuntu_24.04.v1 variables: CMAKE_BUILD_TYPE: Debug CMAKE_CXX_FLAGS_DEBUG: -g -O1 -fno-omit-frame-pointer -fsanitize=address -fsanitize=pointer-subtract -fsanitize=leak @@ -164,7 +164,7 @@ Clang_Format: extends: .Ubuntu_Image stage: checks cache: - key: Ubuntu_Clang_Format.ubuntu_22.04.v1 + key: Ubuntu_Clang_Format.ubuntu_24.04.v1 paths: - apt-cache/ variables: @@ -180,7 +180,7 @@ Lupdate: extends: .Ubuntu_Image stage: checks cache: - key: Ubuntu_lupdate.ubuntu_22.04.v1 + key: Ubuntu_lupdate.ubuntu_24.04.v1 paths: - apt-cache/ variables: @@ -206,7 +206,7 @@ Teal: Ubuntu_GCC_Debug: extends: .Ubuntu cache: - key: Ubuntu_GCC_Debug.ubuntu_22.04.v2 + key: Ubuntu_GCC_Debug.ubuntu_24.04.v2 before_script: - CI/install_debian_deps.sh gcc openmw-deps openmw-deps-dynamic variables: @@ -222,7 +222,7 @@ Ubuntu_GCC_Debug: Ubuntu_GCC_tests: extends: Ubuntu_GCC cache: - key: Ubuntu_GCC_tests.ubuntu_22.04.v1 + key: Ubuntu_GCC_tests.ubuntu_24.04.v1 variables: CCACHE_SIZE: 1G BUILD_TESTS_ONLY: 1 @@ -236,7 +236,7 @@ Ubuntu_GCC_tests: .Ubuntu_GCC_tests_Debug: extends: Ubuntu_GCC cache: - key: Ubuntu_GCC_tests_Debug.ubuntu_22.04.v1 + key: Ubuntu_GCC_tests_Debug.ubuntu_24.04.v1 variables: CCACHE_SIZE: 1G BUILD_TESTS_ONLY: 1 @@ -252,12 +252,12 @@ Ubuntu_GCC_tests: Ubuntu_GCC_tests_asan: extends: Ubuntu_GCC cache: - key: Ubuntu_GCC_tests_asan.ubuntu_22.04.v1 + key: Ubuntu_GCC_tests_asan.ubuntu_24.04.v1 variables: CCACHE_SIZE: 1G BUILD_TESTS_ONLY: 1 CMAKE_BUILD_TYPE: Debug - CMAKE_CXX_FLAGS_DEBUG: -g -O1 -fno-omit-frame-pointer -fsanitize=address -fsanitize=pointer-subtract -fsanitize=leak + CMAKE_CXX_FLAGS_DEBUG: -g -O1 -fno-omit-frame-pointer -fsanitize=address -fsanitize=pointer-subtract -fsanitize=leak -w CMAKE_EXE_LINKER_FLAGS: -fsanitize=address -fsanitize=pointer-subtract -fsanitize=leak -fuse-ld=mold ASAN_OPTIONS: halt_on_error=1:strict_string_checks=1:detect_stack_use_after_return=1:check_initialization_order=1:strict_init_order=1 # Disable -Werror due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105562 @@ -272,12 +272,12 @@ Ubuntu_GCC_tests_asan: Ubuntu_GCC_tests_ubsan: extends: Ubuntu_GCC cache: - key: Ubuntu_GCC_tests_ubsan.ubuntu_22.04.v1 + key: Ubuntu_GCC_tests_ubsan.ubuntu_24.04.v1 variables: CCACHE_SIZE: 1G BUILD_TESTS_ONLY: 1 CMAKE_BUILD_TYPE: Debug - CMAKE_CXX_FLAGS_DEBUG: -g -O0 -fsanitize=undefined + CMAKE_CXX_FLAGS_DEBUG: -g -O0 -fsanitize=undefined -w UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1 artifacts: paths: [] @@ -289,7 +289,7 @@ Ubuntu_GCC_tests_ubsan: .Ubuntu_GCC_tests_tsan: extends: Ubuntu_GCC cache: - key: Ubuntu_GCC_tests_tsan.ubuntu_22.04.v1 + key: Ubuntu_GCC_tests_tsan.ubuntu_24.04.v1 variables: CCACHE_SIZE: 1G BUILD_TESTS_ONLY: 1 @@ -307,11 +307,18 @@ Ubuntu_GCC_tests_ubsan: Ubuntu_GCC_tests_coverage: extends: .Ubuntu_GCC_tests_Debug cache: - key: Ubuntu_GCC_tests_coverage.ubuntu_22.04.v1 + key: Ubuntu_GCC_tests_coverage.ubuntu_24.04.v1 variables: BUILD_WITH_CODE_COVERAGE: 1 + PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" + cache: + paths: + - .cache/pip + - apt-cache/ + - ccache/ before_script: - CI/install_debian_deps.sh gcc openmw-deps openmw-deps-dynamic openmw-coverage + - pip3 install --break-system-packages --user gcovr coverage: /^\s*lines:\s*\d+.\d+\%/ artifacts: paths: [] @@ -333,7 +340,7 @@ Ubuntu_GCC_tests_coverage: - "CI/**/*" - ".gitlab-ci.yml" cache: - key: Ubuntu_Static_Deps.ubuntu_22.04.v1 + key: Ubuntu_Static_Deps.ubuntu_24.04.v1 paths: - apt-cache/ - ccache/ @@ -350,7 +357,7 @@ Ubuntu_GCC_tests_coverage: .Ubuntu_Static_Deps_tests: extends: .Ubuntu_Static_Deps cache: - key: Ubuntu_Static_Deps_tests.ubuntu_22.04.v1 + key: Ubuntu_Static_Deps_tests.ubuntu_24.04.v1 variables: CCACHE_SIZE: 1G BUILD_TESTS_ONLY: 1 @@ -369,7 +376,7 @@ Ubuntu_Clang: before_script: - CI/install_debian_deps.sh clang openmw-deps openmw-deps-dynamic cache: - key: Ubuntu_Clang.ubuntu_22.04.v2 + key: Ubuntu_Clang.ubuntu_24.04.v2 variables: CC: clang CXX: clang++ @@ -382,7 +389,7 @@ Ubuntu_Clang: before_script: - CI/install_debian_deps.sh clang clang-tidy openmw-deps openmw-deps-dynamic cache: - key: Ubuntu_Clang_Tidy.ubuntu_22.04.v1 + key: Ubuntu_Clang_Tidy.ubuntu_24.04.v1 variables: CMAKE_BUILD_TYPE: Debug CMAKE_CXX_FLAGS_DEBUG: -O0 @@ -436,7 +443,7 @@ Ubuntu_Clang_Tidy_other: .Ubuntu_Clang_tests: extends: Ubuntu_Clang cache: - key: Ubuntu_Clang_tests.ubuntu_22.04.v1 + key: Ubuntu_Clang_tests.ubuntu_24.04.v1 variables: CCACHE_SIZE: 1G BUILD_TESTS_ONLY: 1 @@ -450,7 +457,7 @@ Ubuntu_Clang_Tidy_other: Ubuntu_Clang_tests_Debug: extends: Ubuntu_Clang cache: - key: Ubuntu_Clang_tests_Debug.ubuntu_22.04.v1 + key: Ubuntu_Clang_tests_Debug.ubuntu_24.04.v1 variables: CCACHE_SIZE: 1G BUILD_TESTS_ONLY: 1 @@ -474,7 +481,7 @@ Ubuntu_Clang_tests_Debug: - apt-cache/ before_script: - CI/install_debian_deps.sh $OPENMW_DEPS - - pip3 install --user numpy matplotlib termtables click + - pip3 install --break-system-packages --user termtables script: - CI/run_integration_tests.sh after_script: @@ -485,7 +492,7 @@ Ubuntu_Clang_integration_tests: needs: - Ubuntu_Clang cache: - key: Ubuntu_Clang_integration_tests.ubuntu_22.04.v2 + key: Ubuntu_Clang_integration_tests.ubuntu_24.04.v2 variables: OPENMW_DEPS: openmw-integration-tests @@ -494,9 +501,9 @@ Ubuntu_GCC_integration_tests_asan: needs: - Ubuntu_GCC_asan cache: - key: Ubuntu_GCC_integration_tests_asan.ubuntu_22.04.v1 + key: Ubuntu_GCC_integration_tests_asan.ubuntu_24.04.v1 variables: - OPENMW_DEPS: openmw-integration-tests libasan6 + OPENMW_DEPS: openmw-integration-tests libasan8 ASAN_OPTIONS: halt_on_error=1:strict_string_checks=1:detect_stack_use_after_return=1:check_initialization_order=1:strict_init_order=1:detect_leaks=0 .MacOS: diff --git a/CI/install_debian_deps.sh b/CI/install_debian_deps.sh index 3ba66133ca..f15f16b0a2 100755 --- a/CI/install_debian_deps.sh +++ b/CI/install_debian_deps.sh @@ -23,6 +23,7 @@ declare -rA GROUPED_DEPS=( libclang-dev ninja-build python3-clang + python3-click python3-pip unzip " @@ -57,42 +58,47 @@ declare -rA GROUPED_DEPS=( libsdl2-dev libboost-system-dev libboost-filesystem-dev libgl-dev " - [openmw-coverage]="gcovr" + [openmw-coverage]=" + python3-pip + " [openmw-integration-tests]=" ca-certificates gdb git git-lfs - libavcodec58 - libavformat58 - libavutil56 - libboost-iostreams1.74.0 - libboost-program-options1.74.0 - libboost-system1.74.0 - libbullet3.24 + libavcodec60 + libavformat60 + libavutil58 + libboost-iostreams1.83.0 + libboost-program-options1.83.0 + libboost-system1.83.0 + libbullet3.24t64 libcollada-dom2.5-dp0 - libicu70 + libicu74 libjpeg8 libluajit-5.1-2 liblz4-1 libmyguiengine3debian1v5 libopenal1 libopenscenegraph161 - libpng16-16 - libqt5opengl5 + libpng16-16t64 + libqt5opengl5t64 librecast1 libsdl2-2.0-0 libsqlite3-0 - libswresample3 - libswscale5 + libswresample4 + libswscale7 libtinyxml2.6.2v5 libyaml-cpp0.8 + python3-click + python3-matplotlib + python3-numpy python3-pip xvfb " - [libasan6]="libasan6" + [libasan8]="libasan8" [android]="binutils build-essential cmake ccache curl unzip git pkg-config"