镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

Support retrying partial NuGet publishes - #458

Open
savannahostrowski wants to merge 1 commit into
python:mainfrom
savannahostrowski:fix-nuget-publish-retry
Open

savannahostrowski wants to merge 1 commit into
python:mainfrom
savannahostrowski:fix-nuget-publish-retry

Conversation

@savannahostrowski

Copy link
Copy Markdown
Member

During the 3.16.0a1 release, publishing to NuGet timed out after one package had already been uploaded. Retrying the publish failed with a 409 Conflict on that package before reaching the remaining packages, which meant I had to generate a NuGet API key and publish them through the CLI with --skip-duplicate.

This PR adds a NuGet packages to skip on retry field when republishing artifacts from an existing build. It accepts semicolon-separated filenames or wildcard patterns, allowing recovery runs to exclude packages confirmed as already uploaded. The field defaults to (none), so unexpected conflicts still fail normal publishes. The recovery step removes matching packages from the temporary downloaded artifact directory before the existing NuGet task publishes the remaining .nupkg files; the original build artifacts are unchanged.

It also increases the NuGet publish timeout from its default of 300 seconds to 600 seconds and documents the recovery workflow in the README.

Feedback on the PowerShell filtering is welcome! :)

@zooba

zooba commented Oct 13, 2026

Copy link
Copy Markdown
Member

So despite the docs saying that the allowPackageConflicts option is only for private feeds, the implementation seems to support it (provided the error message does actually match what is expected there, I didn't check that).

If we can just enable that option, I'd just do that unconditionally. It keeps things simpler, and if we happen to re-run an existing build, it's going to successfully overwrite other places where it's been published anyway which is messy enough that we are dealing with a mess regardless. Whether or not the build fails silently or loudly doesn't matter much at that point.

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