Repository navigation
fix(ci): build the release asset upload URI correctly - #11
Merged
Merged
Conversation
PowerShell treats "?" as a legal variable-name character, so "$uploadUrl?name=$name" parsed as a single undefined variable and expanded to "=build_...zip". The upload POST then failed on every matrix leg with "Invalid URI: The hostname could not be parsed", on both the Windows and Linux runners. Expand the variable through braces and check the result is an absolute URI before posting, so a malformed URI names itself rather than surfacing as a parser error. The API base is now a parameter so the script can be driven against a local stub. Add a regression test covering the upload path, the existing-asset guard, and the overwrite branch. It fails on the previous interpolation.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The
v1.1release-binaries run built and packaged successfully on all 12 matrix legs, but every leg then failed on the upload step:"?"is a legal PowerShell variable-name character, so"$uploadUrl?name=$name"was parsed as a single undefined variable nameduploadUrl?name. The URI became=build_CUDA_12.8_MATLAB_2024a.zip— no scheme, no host — and the POST never left the runner.This is not platform-specific: all 6 Windows and all 6 Linux legs failed identically on the same line, since both runners execute
pwsh.Fix
"${uploadUrl}?name=$name") so the expansion stops at the variable.Testing
New regression test runs the script against a local
HttpListenerstub of the release API — no network or token needed. It covers the upload path, the existing-asset guard, the overwrite delete-then-upload branch, and an empty asset directory.8/8 pass on this branch; 4 assertions fail against the previous interpolation.
Note
workflow_dispatchstill requires this workflow to exist on the default branch (main); it currently lives ondevonly. Dispatching a re-run therefore needsdevmerged intomainfirst, or a fresh pre-release tag to re-fire thepublishedevent.