Skip to content

Comments

ci: make release workflow idempotent for re-runs#71

Merged
bug-ops merged 1 commit intomainfrom
fix/idempotent-release
Feb 20, 2026
Merged

ci: make release workflow idempotent for re-runs#71
bug-ops merged 1 commit intomainfrom
fix/idempotent-release

Conversation

@bug-ops
Copy link
Owner

@bug-ops bug-ops commented Feb 20, 2026

Summary

  • Switch crates.io publish to katyo/publish-crates@v2 with ignore-unpublished-changes: true
  • Enable skip-existing: true for PyPI publish via pypa/gh-action-pypi-publish
  • Handle npm "already published" error gracefully, failing only on unexpected errors

Allows safe re-runs of the release workflow when some registries already have the version published.

Test plan

  • Re-tag an existing version to trigger workflow
  • Verify all publish jobs succeed or gracefully skip
  • Verify GitHub Release is created

- Switch crates.io publish to katyo/publish-crates@v2 with
  ignore-unpublished-changes to skip already-published versions
- Enable skip-existing for PyPI publish
- Handle "already published" error gracefully in npm publish
@github-actions github-actions bot added type: tooling Development tools, CI/CD, or infrastructure component: core feedparser-rs-core Rust library component: python Python bindings (PyO3) component: node Node.js bindings (napi-rs) component: ci CI/CD workflows and automation size: S Small PR (<50 lines changed) labels Feb 20, 2026
@bug-ops bug-ops merged commit aa70076 into main Feb 20, 2026
29 checks passed
@bug-ops bug-ops deleted the fix/idempotent-release branch February 20, 2026 16:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

component: ci CI/CD workflows and automation component: core feedparser-rs-core Rust library component: node Node.js bindings (napi-rs) component: python Python bindings (PyO3) size: S Small PR (<50 lines changed) type: tooling Development tools, CI/CD, or infrastructure

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant