Skip to content

Commit ee5f1b0

Browse files
yjwongclaude
andcommitted
fix(ci): stop the release upload racing itself on overlapping globs
The `files:` list matched nine assets twice. `artifacts/openshrimp-*` already covers the security-key helper, the HCS initrd, both rootfs images and the RDP helper, and each of those carried its own explicit line as well. A file listed twice is uploaded twice concurrently, and the second upload deletes the asset the first just created, so the step dies on a bare "Not Found" against delete-a-release-asset with no indication of which file or why. The duplication has been there for several releases and was survivable by luck: the action tolerates most of the resulting metadata races with "Matching asset is present after refresh; continuing...". v0.36.0 added a 26th asset, shifted the timing, and lost — twice, the second time worse, because a re-run finds the draft already populated and must delete-then-replace every asset rather than merely upload it. That the overlap is the cause rather than a coincidence is legible in the first attempt's log: all eight metadata warnings name one of the nine duplicated assets, and no asset outside that set produced one. Dropping the five redundant patterns leaves all 26 assets covered, none of them twice. Verified by matching the pattern list against the real asset names rather than by reading it. Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 83023a8 commit ee5f1b0

1 file changed

Lines changed: 6 additions & 5 deletions

File tree

.github/workflows/release.yaml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -915,14 +915,15 @@ jobs:
915915
uses: softprops/action-gh-release@v2
916916
with:
917917
generate_release_notes: true
918+
# These patterns must not overlap. A file matched twice is
919+
# uploaded twice concurrently, and the second upload deletes the
920+
# asset the first just created — a race that fails the whole step
921+
# with a bare "Not Found" once it lands badly. `openshrimp-*`
922+
# already covers the security-key helper, the HCS initrd, both
923+
# rootfs images and the RDP helper, so none of those get a line.
918924
files: |
919925
artifacts/openshrimp-*
920926
artifacts/moonshine-stt-*
921-
artifacts/openshrimp-security-key-vm-helper-*
922-
artifacts/openshrimp-hcs-initrd.img*
923-
artifacts/openshrimp-hcs-base-rootfs.vhdx.zst*
924-
artifacts/openshrimp-hcs-gui-rootfs.vhdx.zst*
925-
artifacts/openshrimp-hcs-rdp-helper-*
926927
artifacts/virtiofsd-*
927928
artifacts/OpenShrimp-*.dmg
928929
artifacts/*.tar.gz

0 commit comments

Comments
 (0)