ci(vcpkg): skip Release for x64-windows-meshlib-iterator-debug triplet#6031
ci(vcpkg): skip Release for x64-windows-meshlib-iterator-debug triplet#6031
Conversation
…triplet The x64-windows-meshlib-iterator-debug triplet is only consumed by the Debug-IteratorDebug matrix cell in windows-*-config.json, which links exclusively against the Debug variant. Building the Release variant in prepare-images.yml's windows-vcpkg-build-upload job (and writing it to the per-triplet S3 cache at s3://vcpkg-export/<tag>/<triplet>/) is wasted work. Set VCPKG_BUILD_TYPE=debug in the triplet so vcpkg only produces Debug artifacts. The Release variant of x64-windows-meshlib (used by Release consumers) is unaffected since cache paths are partitioned by triplet. Also drop the redundant "-T v142" added via VCPKG_CMAKE_CONFIGURE_OPTIONS; the platform toolset is already pinned by VCPKG_PLATFORM_TOOLSET above. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Closing — The first failed CI run (job 74138061869) hit a hard incompatibility: This is a generic vcpkg-port problem, not specific to lz4: Branch HEAD preserved at tag |
Summary
The
x64-windows-meshlib-iterator-debugtriplet is consumed by exactly one matrix cell — theDebug-IteratorDebugbuild defined in.github/workflows/matrix/windows-*-config.json, which is configured asDebugand links only the Debug variant of vcpkg ports. Yetprepare-images.yml'swindows-vcpkg-build-uploadjob invokesthirdparty\install.batfor that triplet without any build-type narrowing, so vcpkg builds and uploads both the Debug and the Release variants tos3://vcpkg-export/<tag>/x64-windows-meshlib-iterator-debug/. The Release half is never read.Setting
VCPKG_BUILD_TYPE=debugin the triplet tells vcpkg to skip Release. Cache paths are partitioned by triplet (install.batbuilds the S3 prefix fromVCPKG_DEFAULT_TRIPLET), so thex64-windows-meshlibRelease cache used by Release consumers is unaffected.While here, also drop the redundant
line —
VCPKG_PLATFORM_TOOLSET "v142"two lines above already pins the toolset.Cache busting
The triplet file content is hashed into both the S3 ABI hash and the GitHub Actions cache key (
hashFiles(..., 'thirdparty/vcpkg/triplets/{triplet}.cmake', ...)insetup-vcpkg-windows/action.yml). The nextprepare-imagesrun with this triplet will rebuild from source once and repopulate; subsequent consumer runs get cache hits as usual.Host-tools note
install.batpasses--host-triplet %VCPKG_DEFAULT_TRIPLET%, so any port-build host tools for the iterator-debug triplet would also be debug-only. The packages inrequirements/windows.txtare all libraries (boost, eigen, opencascade, openvdb, etc.) — none ship heavy host compilers — so this should just be a slightly slower one-time port-build, not a breakage.Test plan
prepare-images.ymlwithwindows-vcpkg-rebuildtriggered:windows-vcpkg-build-upload (x64-windows-meshlib-iterator-debug)job finishes, S3 cache unders3://vcpkg-export/<tag>/x64-windows-meshlib-iterator-debug/contains Debug archives onlyDebug-IteratorDebugconsumer (windows-2025,msvc-2019,Debugconfig) restores cache and links successfullyx64-windows-meshlibtriplet cache)