From: Justin Tobler Date: Mon, 09 Feb 2026 18:33:50 GMT Subject: Re: [PATCH 5/5] gitlab-ci: handle failed tests on MSVC+Meson job Message-ID: In-Reply-To: <20260209-b4-pks-ci-meson-improvements-v1-5-38444dec4874@pks.im> On 26/02/09 05:56PM, Patrick Steinhardt wrote: > The MSVC+Meson job does not currently have any logic to print failing > tests, nor does it upload the failed test artifacts. Backfill this logic > to make help debugging efforts in case any of its jobs has failed. > > GitHub already knows to do this, so we don't need an equivalent change > over there. > > Signed-off-by: Patrick Steinhardt > --- > .gitlab-ci.yml | 14 +++++++++++++- > 1 file changed, 13 insertions(+), 1 deletion(-) > > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml > index 04857b479d..71b8a6e642 100644 > --- a/.gitlab-ci.yml > +++ b/.gitlab-ci.yml > @@ -157,6 +157,8 @@ test:mingw64: > parallel: 10 > > .msvc-meson: > + variables: > + TEST_OUTPUT_DIRECTORY: "C:/Git-Test" > tags: > - saas-windows-medium-amd64 > before_script: > @@ -164,12 +166,13 @@ test:mingw64: > - choco install -y git meson ninja rust-ms > - Import-Module $env:ChocolateyInstall\helpers\chocolateyProfile.psm1 > - refreshenv > + - New-Item -Path $env:TEST_OUTPUT_DIRECTORY -ItemType Directory Before the script starts we create the test output directory. > build:msvc-meson: > extends: .msvc-meson > stage: build > script: > - - meson setup build --vsenv -Dperl=disabled -Dbackend_max_links=1 -Dcredential_helpers=wincred > + - meson setup build --vsenv -Dperl=disabled -Dbackend_max_links=1 -Dcredential_helpers=wincred -Dtest_output_directory="$TEST_OUTPUT_DIRECTORY" Now we set the test output directory build option accordingly. > - meson compile -C build > artifacts: > paths: > @@ -185,10 +188,19 @@ test:msvc-meson: > script: > - | > & "C:/Program Files/Git/usr/bin/bash.exe" -l -c 'ci/run-test-slice-meson.sh build $CI_NODE_INDEX $CI_NODE_TOTAL' > + after_script: > + - | > + if ($env:CI_JOB_STATUS -ne "success") { > + & "C:/Program Files/Git/usr/bin/bash.exe" -l -c 'ci/print-test-failures.sh' > + Move-Item -Path "$env:TEST_OUTPUT_DIRECTORY/failed-test-artifacts" -Destination t/ > + } Here we print any failures and move them so they are stored as a CI artifact. > parallel: 10 > artifacts: > + paths: > + - t/failed-test-artifacts > reports: > junit: build/meson-logs/testlog.junit.xml > + when: on_failure This patch also looks good. -Justin