Skip to content

fix: upload release assets sequentially - #287

Merged
TheWildJames merged 1 commit into
mainfrom
fix/sequential-release-upload
Sep 5, 2026
Merged

TheWildJames merged 1 commit into
mainfrom
fix/sequential-release-upload

Conversation

@TheWildJames

Copy link
Copy Markdown
Member

The single softprops/action-gh-release step fired ~500 concurrent uploads and got the runner killed twice at the same point (release job, Create Release step, shutdown signal ~35s into the upload burst, zero completions).

This replaces it with sequential gh release upload: one asset at a time, 3 tries per file, release created first if missing (safe on retried runs with a partial release).

Validation: validate_workflows.py (8 files), validate_shell.py (63 scripts), bash -n on the new step, YAML parse, git diff --check — all clean.

The single softprops/action-gh-release step fired ~500 concurrent
uploads and got the runner killed twice at the same point mid-upload.
Upload one asset at a time via gh release upload with per-file
retries, creating the release first if missing.
Copilot AI lite review requested due to automatic review settings September 5, 2026 04:34

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The workflow change is localized and directly addresses the runner-kill issue by removing high-concurrency uploads, with only a minor retry-loop polish suggested.

Pull request overview

This PR updates the release workflow to avoid large concurrent asset uploads (which previously caused the runner to be killed) by switching from a bulk softprops/action-gh-release upload to a sequential gh release upload loop with retries.

Changes:

  • Replace the softprops/action-gh-release@v1 release step with a gh-based release create/view + sequential upload script.
  • Add fail-fast asset discovery (glob collection + empty check) before creating/uploading a release.
  • Add per-asset retry logic (3 attempts) and make the release creation idempotent on reruns.
File summaries
File Description
.github/workflows/main.yml Reworks the “Create Release” step to create/reuse the release and upload assets sequentially with retries to prevent runner overload.
Review details
  • Files reviewed: 1/1 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +1401 to +1402
echo "Retry $attempt/3 failed for: $f" >&2
sleep 10

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch — addressed in #288.

@TheWildJames
TheWildJames merged commit 97e11f0 into main Sep 5, 2026
2 checks passed
TheWildJames added a commit that referenced this pull request Sep 5, 2026
Addresses Copilot review on #287: only sleep between attempts,
and log attempt count instead of retry count.
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