Skip to content

ci: verify that a NuGet.org push actually published - #62

Merged
Blind-Striker merged 1 commit into
masterfrom
ci/verify-nuget-publication
Sep 8, 2026
Merged

Blind-Striker merged 1 commit into
masterfrom
ci/verify-nuget-publication

Conversation

@Blind-Striker

Copy link
Copy Markdown
Collaborator

--skip-duplicate reports every 409 as "already exists" and exits zero. Two dispatches went green under it while all four pushes were in fact refused by an ID prefix reservation; nothing reached the gallery and the lane still reported success.

Removing the flag would trade that failure for another, since retrying a dispatch after a partial push must not abort on the package that already landed. It therefore stays, and stops being what decides success. A verification step now asks the flat container for the exact versions the pack step produced, which separates the two outcomes the flag conflates: a package that genuinely already existed answers yes, a package the gallery refused answers no. Validation is asynchronous, so the check waits rather than reading the registry once, and fails naming the versions that never appeared.

Verified by running the script against nuget.org: a published package (Newtonsoft.Json 13.0.3) passes and correctly ignores the sibling .snupkg; an unpublished one polls and then fails with exit 1.

--skip-duplicate reports every 409 as "already exists" and exits zero. Two
dispatches went green under it while all four pushes were in fact refused,
because the package ids fall under an ID prefix reservation this account does
not hold; nothing reached the gallery and the lane still reported success.

Removing the flag would trade that failure for another, since retrying a
dispatch after a partial push must not abort on the package that already
landed. It therefore stays, and stops being what decides success. A
verification step now asks the flat container for the exact versions the pack
step produced, which separates the two outcomes the flag conflates: a package
that genuinely already existed answers yes, a package the gallery refused
answers no. Validation is asynchronous, so the check waits rather than reading
the registry once, and fails naming the versions that never appeared.
@Blind-Striker
Blind-Striker merged commit 96f80dc into master Sep 8, 2026
4 checks passed
@Blind-Striker
Blind-Striker deleted the ci/verify-nuget-publication branch September 14, 2026 12:55
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.

1 participant