Skip to content

COMP: Extend Pixi-Cxx post-build cleanup to MSVC artifacts (followup #6322)#6324

Merged
hjmjohnson merged 1 commit into
InsightSoftwareConsortium:mainfrom
hjmjohnson:followup/pixi-windows-artifacts-and-ccache-evict
May 22, 2026
Merged

COMP: Extend Pixi-Cxx post-build cleanup to MSVC artifacts (followup #6322)#6324
hjmjohnson merged 1 commit into
InsightSoftwareConsortium:mainfrom
hjmjohnson:followup/pixi-windows-artifacts-and-ccache-evict

Conversation

@hjmjohnson
Copy link
Copy Markdown
Member

Follow-up to #6322 (merged): widens the Pixi-Cxx workflow's post-build cleanup to also delete MSVC *.obj/*.lib artifacts and runs ccache --evict-older-than 1d before --cleanup so the windows-2022 runner gets the same disk relief that #6322 gave dashboard-script clients via itk_common.cmake.

Why a separate workflow change is needed

PR #6322 added the equivalent *.o/*.a cleanup to itk_common.cmake between ctest_build and ctest_test. That helps Azure DevOps / CircleCI / custom nightly clients that drive CTest via ctest -S dashboard.cmake.

The ITK.Pixi workflow runs cmake + ctest directly (no dashboard script — pixi run configure-ci then cmake --build build then ctest -j3 --test-dir build), so it does not pick up the itk_common.cmake cleanup hook. It has its own inline "Free disk space after build" step that already handled POSIX object files. This PR widens that step to also cover Windows MSVC artifacts and adds the older-than-1d ccache eviction that #6322 introduced for dashboard clients.

Diff
- find build -type f -name "*.o" -delete
- find build -type f -name "*.a" -delete
+ find build -type f -regex '.*\.\(o\|a\|obj\|lib\)$' -delete
  # Trim ccache to stay within CCACHE_MAXSIZE and remove orphaned entries
+ ccache --evict-older-than 1d 2>/dev/null ||true
  ccache --cleanup 2>/dev/null || true

@github-actions github-actions Bot added type:Compiler Compiler support or related warnings type:Infrastructure Infrastructure/ecosystem related changes, such as CMake or buildbots labels May 21, 2026
@hjmjohnson hjmjohnson marked this pull request as ready for review May 21, 2026 22:29
@greptile-apps

This comment was marked as resolved.

Comment thread .github/workflows/pixi.yml Outdated
Comment thread .github/workflows/pixi.yml Outdated
@hjmjohnson hjmjohnson marked this pull request as draft May 21, 2026 22:40
@hjmjohnson hjmjohnson force-pushed the followup/pixi-windows-artifacts-and-ccache-evict branch from 7e884f1 to 0d54a70 Compare May 21, 2026 22:41
@hjmjohnson hjmjohnson marked this pull request as ready for review May 21, 2026 22:46
@hjmjohnson hjmjohnson marked this pull request as draft May 21, 2026 23:10
@hjmjohnson hjmjohnson force-pushed the followup/pixi-windows-artifacts-and-ccache-evict branch 2 times, most recently from 458fce1 to 57b7dbb Compare May 21, 2026 23:49
@hjmjohnson
Copy link
Copy Markdown
Member Author

ITK.Linux failures fixed in #6325 (dashboard files deleting mesh .obj files).
1467 - itkMeshFileReadWriteOBJTest (Failed) ITKIOMeshOBJ
1468 - itkMeshFileReadWriteOBJWithPointDataTest (Failed) ITKIOMeshOBJ
1469 - itkOBJMeshIOTest1 (Failed) ITKIOMeshOBJ
1470 - itkOBJMeshIOTest2 (Failed) ITKIOMeshOBJ

Comment thread .github/workflows/pixi.yml
@hjmjohnson hjmjohnson force-pushed the followup/pixi-windows-artifacts-and-ccache-evict branch from 57b7dbb to 5c7262a Compare May 22, 2026 01:18
@hjmjohnson hjmjohnson marked this pull request as ready for review May 22, 2026 01:25
@hjmjohnson
Copy link
Copy Markdown
Member Author

hjmjohnson commented May 22, 2026

@dzenanz

These failures are fixed with other PR #6325

ITK.Arm64 / ARMBUILD-Python
ITK.Arm64 / ARMBUILD-Ubuntu-24.04-arm
ITK.Arm64 / ARMBUILD-x86_64-rosetta
ITK.Linux

@dzenanz
Copy link
Copy Markdown
Member

dzenanz commented May 22, 2026

PR 6235 is about ingestion, you must have meant some other PR, maybe #6325?

@hjmjohnson
Copy link
Copy Markdown
Member Author

PR 6235 is about ingestion, you must have meant some other PR, maybe #6325?

@dzenanz Yes. Dyslexia got the best of me. #6325 not 6235.

Delete Windows compiler intermediates (*.obj, *.lib) in the post-build
"Free disk space" step so windows-2022 gets the same disk recovery as
Linux and macOS, and run `ccache --evict-older-than 1d` before
`--cleanup` to match the eviction policy introduced for dashboard
clients in InsightSoftwareConsortium#6322.

Scope the deletion by path: *.obj also names Wavefront mesh fixtures
(ITKIOMeshOBJ, Cuberille) and *.lib names a DCMTK Makefile template,
so match compiled objects only under CMakeFiles/ and archives only
under lib/ to avoid removing test data before the test phase.

Follow-up to InsightSoftwareConsortium#6322; that PR moved equivalent logic into
itk_common.cmake for clients that drive CTest via dashboard scripts.
The Pixi workflow runs cmake + ctest directly and so needs its own
inline cleanup.
@hjmjohnson hjmjohnson force-pushed the followup/pixi-windows-artifacts-and-ccache-evict branch from 5c7262a to 0643ff5 Compare May 22, 2026 14:40
@hjmjohnson
Copy link
Copy Markdown
Member Author

windows build failure is a flake on downloading external data unrelated to this PR.

Root cause
The job is not failing because of compiler/test logic. It fails during build-time data fetching for:

GenericLabelInterpolatorRotateLabelsTest
test definition: [Modules/Filtering/GenericLabelInterpolator/test/CMakeLists.txt](https://github.com/InsightSoftwareConsortium/ITK/blob/0643ff5a34668420bf2e9879ad67db37582edeff/Modules/Filtering/GenericLabelInterpolator/test/CMakeLists.txt)
Relevant lines:

line 15: DATA{Input/classification_s4.mha}

@hjmjohnson hjmjohnson merged commit 7505c13 into InsightSoftwareConsortium:main May 22, 2026
15 of 18 checks passed
@hjmjohnson hjmjohnson deleted the followup/pixi-windows-artifacts-and-ccache-evict branch May 22, 2026 16:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type:Compiler Compiler support or related warnings type:Infrastructure Infrastructure/ecosystem related changes, such as CMake or buildbots

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants