CI: derive Windows test_artifacts_path from matrix fields#6187
Merged
Conversation
Drop the per-entry "test_artifacts_path" from the windows-*-config matrix
files and instead compute it in build-test-windows.yml as
windows/{vcpkg_triplet}/{config}/{build_system}.
This removes the hand-maintained paths (which had a collision in the
minimal config, where two distinct jobs both mapped to
windows/windows-2022/Debug) and guarantees a unique S3 upload path per job.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
test_artifacts_pathfrom all fourwindows-*-config.jsonmatrix files.build-test-windows.ymlinstead, aswindows/{vcpkg_triplet}/{config}/{build_system}.Why
The path was hand-maintained in each matrix entry. Besides being redundant (every component already exists as a matrix field), the old values had a real collision: in
windows-minimal-config.jsontwo distinct jobs (msvc-2022 Debug/MSBuild and msvc-2022 Release/CMake) both mapped towindows/windows-2022/Debug, so their Python regression artifacts overwrote each other in S3. Deriving fromvcpkg_triplet/config/build_systemyields a unique path per job in every config.Path mapping
The artifact upload (
Copy test artifacts to S3) only runs for non-iterator-debugtriplets, so only those entries produce a path. Computed (verified unique within each config):windows/{x64-windows-meshlib | x64-windows-vs2019-meshlib}/{Debug | Release}/{MSBuild | CMake}Test plan — verified in run 26679736956
full-ciran the full Windows matrix; all 9 jobs succeeded.upload-test-artifactstriggeredCopy test artifacts to S3 (Windows)in each of the 8 non-iterator-debug jobs, uploading to the newwindows/{vcpkg_triplet}/{config}/{build_system}path. Confirmed from the logs the 8 paths are all distinct (no overwrite):windows/x64-windows-meshlib/Debug/MSBuildwindows/x64-windows-meshlib/Release/MSBuildwindows/x64-windows-meshlib/Debug/CMakewindows/x64-windows-meshlib/Release/CMakewindows/x64-windows-vs2019-meshlib/Debug/MSBuildwindows/x64-windows-vs2019-meshlib/Release/MSBuildwindows/x64-windows-vs2019-meshlib/Debug/CMakewindows/x64-windows-vs2019-meshlib/Release/CMakeiterator-debugjob correctly skipped the regression/upload steps (no path needed).🤖 Generated with Claude Code