ci: fix HTTP-code parsing that left auto-build releases without a jar #3
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/ci-release-upload"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why the last three releases had no jar
Every scheduled auto-build since 2026-09-01 (
v6.0.1-unlock,v6.0.3-unlock,v6.0.5-unlock) created the release and then exited 1 about two seconds later, before uploading the patched jar. Cause, in the "Tag and create release" step:cut -d_ -f4-on__HTTP__201returns_201, so the guard always fired. This code path had never run before 09-01 (thev5.4.1-unlock1/2tags are manual and the prefix gate skipped every earlier run), which is why it went unnoticed. Verified by elimination: a 47 MB.jarupload with the ActionsGITHUB_TOKENfrom thelesannes-ubunturunner works fine (probe repo, since deleted). Actions logs are not readable on this instance (task … resource does not exist), hence the reproduction.Changes
${RESP##*__HTTP__}) instead ofcut.game_versions(TARGET_MC=26.2). Run #135 (09-02) failed because 6.0.2 was published for 1.21.x only and the patcher was fed a 1.21.4 jar.PATCHexisting release, replace a same-name asset), soforce_rebuildnow actually works instead of dying ongit tag.Validation
Ran end to end in a throwaway repo (
wait4mi/ekaxiom-ci-test, same runner, deleted afterwards):workflow_dispatchwithforce_rebuild=trueon a repo without tags → tagv6.0.5-unlockpushed, release created,Axiom-6.0.5-for-MC26.2-Ekaxiom.jar(47 074 587 bytes) attached, sha256d8b4b915…identical to the one the failed 09-04 run had computed.Releases already repaired
The three jars were rebuilt locally from the sha512-verified upstream files with the patcher at
eba340eand attached by hand on 2026-09-05; their release notes carry the hashes of the attached files.🤖 Generated with Claude Code
https://claude.ai/code/session_01BKdUPzBxffNM3DpudgeyXn
Independent review (fresh reviewer, diff only) found nothing blocking; two hardening points addressed in
79c0051: the gate now aborts on any API status other than 200/404 instead of reading it as "no tag / no asset" (which would have deleted and re-uploaded a good jar), and the stale-asset cleanup checks both the listing and the DELETE status so duplicates cannot pile up. Re-validated end to end on a throwaway repo (same runner): fresh build, repair of an empty release, no-op when the asset exists, tag without release object, andforce_rebuildwith everything present � all five publish exactly one jar. Merging.