Skip to content

fix(ci): pass wheel filenames as job output instead of re-downloading#418

Merged
pimlock merged 1 commit intomainfrom
fix/filter-release-wheels
Mar 18, 2026
Merged

fix(ci): pass wheel filenames as job output instead of re-downloading#418
pimlock merged 1 commit intomainfrom
fix/filter-release-wheels

Conversation

@pimlock
Copy link
Collaborator

@pimlock pimlock commented Mar 18, 2026

Summary

Passes wheel filenames as a job output from build-python-wheels to trigger-wheel-publish instead of re-downloading the artifact.

Root Cause

The trigger-wheel-publish job runs on a persistent self-hosted runner (agent-dev-kit-build-1) with no actions/checkout step. It was downloading the wheel artifact into release/ just to glob the filenames. Since download-artifact does not clean the destination directory, stale .whl files from every previous run accumulated there.

Confirmed on the runner instance:

/home/ubuntu/actions-runner/_work/OpenShell/OpenShell/release/

contained 120+ wheels spanning versions 0.0.5 through 0.0.10, while the actual artifact only contained 3 wheels (~5MB each).

Fix

  • Add a "Capture wheel filenames" step in build-python-wheels that writes the comma-separated basenames to $GITHUB_OUTPUT
  • trigger-wheel-publish reads needs.build-python-wheels.outputs.wheel_filenames directly — no download, no filesystem, no accumulation possible
  • The trigger job now only needs a shell and network access; it no longer touches the filesystem at all

@pimlock pimlock requested a review from a team as a code owner March 18, 2026 00:30
@pimlock pimlock marked this pull request as draft March 18, 2026 01:07
@pimlock pimlock force-pushed the fix/filter-release-wheels branch 4 times, most recently from 88c343d to 2c64396 Compare March 18, 2026 02:02
The trigger-wheel-publish job was downloading the wheel artifact onto a
persistent self-hosted runner just to glob the filenames. Since
download-artifact does not clean the destination directory, stale .whl
files from every previous run accumulated in release/ and were all sent
to GitLab as WHEEL_FILENAMES.

Confirmed on the runner: /home/ubuntu/actions-runner/_work/OpenShell/
OpenShell/release/ contained 120+ wheels spanning versions 0.0.5
through 0.0.10.

Fix: capture wheel filenames as a job output in build-python-wheels and
pass them directly to trigger-wheel-publish. The trigger job no longer
downloads the artifact at all — it only needs the filenames to construct
GitHub release asset URLs for GitLab/Kitmaker.
@pimlock pimlock force-pushed the fix/filter-release-wheels branch from 2c64396 to bcd0a20 Compare March 18, 2026 02:08
@pimlock pimlock changed the title fix(ci): filter stale wheels from release artifacts fix(ci): pass wheel filenames as job output instead of re-downloading Mar 18, 2026
@pimlock pimlock marked this pull request as ready for review March 18, 2026 02:40
@pimlock pimlock merged commit 73e1913 into main Mar 18, 2026
9 checks passed
@pimlock pimlock deleted the fix/filter-release-wheels branch March 18, 2026 16:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants