From be00764d054f53d8b0db9eecc4f01e9919193a02 Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Fri, 24 Jan 2025 21:19:46 +0000 Subject: [PATCH] ci: Don't run Meson tests in critical-path jobs Running the Meson tests doesn't take forever, but it does take a noticeable amount of time. For jobs in the critical path - like debian-testing and debian-arm64 - we need them to complete as soon as possible to produce a build for the hardware tests to consume. Running the tests here lengthens that time, and introduces more hazard since the tests have previously been prone to hitting timeouts, requiring the whole job to be retried before we can proceed. These jobs also have build-only jobs which are not in the critical path, and can run the tests just as well. Running the tests under sanitisers is just too slow to deal with in pre-merge pipelines. Signed-off-by: Daniel Stone Part-of: --- .gitlab-ci/build/gitlab-ci.yml | 11 +++++++++-- .gitlab-ci/meson/build.sh | 8 +++++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci/build/gitlab-ci.yml b/.gitlab-ci/build/gitlab-ci.yml index 8655b8c231c..312d658daa4 100644 --- a/.gitlab-ci/build/gitlab-ci.yml +++ b/.gitlab-ci/build/gitlab-ci.yml @@ -11,6 +11,7 @@ # instead timeout so that the retry mechanism can kick in. # A few exception are made, see overrides in the rest of this file. BUILD_JOB_TIMEOUT: 15m + RUN_MESON_TESTS: "true" timeout: 1h # We don't want to download any previous job's artifacts dependencies: [] @@ -118,6 +119,7 @@ debian-testing: -D tools=drm-shim S3_ARTIFACT_NAME: mesa-x86_64-default-${BUILDTYPE} LLVM_VERSION: 15 + RUN_MESON_TESTS: "false" # debian-build-testing already runs these script: - *meson-build - .gitlab-ci/prepare-artifacts.sh @@ -140,6 +142,7 @@ debian-testing-asan: -D mesa-clc=system S3_ARTIFACT_NAME: "" ARTIFACTS_DEBUG_SYMBOLS: 1 + RUN_MESON_TESTS: "false" # just too slow # Do a host build for mesa-clc (asan complains not being loaded as # the first library) HOST_BUILD_OPTIONS: > @@ -175,6 +178,7 @@ debian-testing-msan: MESON_TEST_ARGS: "--suite glcpp --suite format" GALLIUM_DRIVERS: "freedreno,iris,nouveau,r300,r600,llvmpipe,softpipe,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,radeonsi,tegra,d3d12,crocus" VULKAN_DRIVERS: intel,amd,broadcom,virtio + RUN_MESON_TESTS: "false" # just too slow # Do a host build for mesa-clc (msan complains about uninitialized # values in the LLVM libs) HOST_BUILD_OPTIONS: > @@ -205,6 +209,7 @@ debian-testing-ubsan: -D mesa-clc=system S3_ARTIFACT_NAME: "" ARTIFACTS_DEBUG_SYMBOLS: 1 + RUN_MESON_TESTS: "false" # just too slow HOST_BUILD_OPTIONS: > -D build-tests=false -D enable-glcpp-tests=false @@ -547,6 +552,7 @@ debian-arm32-asan: -D valgrind=disabled -D tools=dlclose-skip ARTIFACTS_DEBUG_SYMBOLS: 1 + RUN_MESON_TESTS: "false" # just too slow S3_ARTIFACT_NAME: mesa-arm32-asan-${BUILDTYPE} MESON_TEST_ARGS: "--no-suite mesa:compiler --no-suite mesa:util" @@ -570,6 +576,7 @@ debian-arm64: -D teflon=true GALLIUM_ST: -D gallium-rusticl=true + RUN_MESON_TESTS: "false" # run by debian-arm64-build-testing S3_ARTIFACT_NAME: mesa-arm64-default-${BUILDTYPE} script: - *meson-build @@ -587,8 +594,8 @@ debian-arm64-asan: -D valgrind=disabled -D tools=dlclose-skip ARTIFACTS_DEBUG_SYMBOLS: 1 + RUN_MESON_TESTS: "false" # just too slow S3_ARTIFACT_NAME: mesa-arm64-asan-${BUILDTYPE} - MESON_TEST_ARGS: "--no-suite mesa:compiler" debian-arm64-ubsan: extends: @@ -607,8 +614,8 @@ debian-arm64-ubsan: EXTRA_OPTION: > -D b_sanitize=undefined ARTIFACTS_DEBUG_SYMBOLS: 1 + RUN_MESON_TESTS: "false" # just too slow S3_ARTIFACT_NAME: mesa-arm64-ubsan-${BUILDTYPE} - MESON_TEST_ARGS: "--no-suite mesa:compiler" debian-arm64-build-test: extends: diff --git a/.gitlab-ci/meson/build.sh b/.gitlab-ci/meson/build.sh index 5279e180e76..03373ae8727 100755 --- a/.gitlab-ci/meson/build.sh +++ b/.gitlab-ci/meson/build.sh @@ -158,7 +158,7 @@ meson setup _build \ -D prefix=$PWD/install \ -D libdir=lib \ -D buildtype=${BUILDTYPE:?} \ - -D build-tests=true \ + -D build-tests=${RUN_MESON_TESTS} \ -D c_args="$(echo -n $C_ARGS)" \ -D c_link_args="$(echo -n $C_LINK_ARGS)" \ -D cpp_args="$(echo -n $CPP_ARGS)" \ @@ -182,9 +182,11 @@ uncollapsed_section_switch meson-build "meson: build" ninja +if [ "${RUN_MESON_TESTS}" = "true" ]; then + uncollapsed_section_switch meson-test "meson: test" + LC_ALL=C.UTF-8 meson test --num-processes "${FDO_CI_CONCURRENT:-4}" --print-errorlogs ${MESON_TEST_ARGS} +fi -uncollapsed_section_switch meson-test "meson: test" -LC_ALL=C.UTF-8 meson test --num-processes "${FDO_CI_CONCURRENT:-4}" --print-errorlogs ${MESON_TEST_ARGS} section_switch meson-install "meson: install" ninja install cd ..