Skip to content

ci: fix duplicate release runs and npm-publish CI race#24

Merged
StefanSteiner merged 2 commits into
tableau:mainfrom
StefanSteiner:ssteiner/fix-release-triggers
May 18, 2026
Merged

ci: fix duplicate release runs and npm-publish CI race#24
StefanSteiner merged 2 commits into
tableau:mainfrom
StefanSteiner:ssteiner/fix-release-triggers

Conversation

@StefanSteiner
Copy link
Copy Markdown
Contributor

Summary

Fixes two issues from the v0.1.3 release:

  • Duplicate release.yml runs: The PAT fires both release: published AND push: tags events, causing two concurrent publish attempts. The second fails because crates are already on crates.io. Fix: remove push: tags trigger (use workflow_dispatch for emergency releases instead).
  • npm-build-publish races CI: The release: published event fires before CI finishes on the merge commit. The verify-ci step checks status immediately and finds pending. Fix: replace instant check with a retry loop (polls every 60s for up to 30 min).

Also makes cargo publish skip already-published crates instead of failing, so manual re-runs are safe.

Test plan

  • Merge this PR (uses ci: prefix — no version bump)
  • Next release-please merge should trigger exactly one release.yml run
  • npm-build-publish.yml should wait for CI before building
  • If re-run manually, already-published crates are skipped with a warning

- Remove push:tags trigger from release.yml — with the PAT, both
  release:published AND push:tags fire, causing duplicate runs. Keep
  only release:published + manual workflow_dispatch.
- Make publish step skip already-published crates instead of failing,
  so re-runs are safe.
- Replace instant CI status check in npm-build-publish with a
  wait/retry loop (30 attempts × 60s) since the release:published
  event fires before CI completes on the merge commit.
- Update GITHUB_OPERATIONS.md to reflect automated publish flow.
Forks inherit workflow files but not secrets, causing spurious failures
when syncing main. Add repository guard conditions so release-please,
release, and npm-build-publish only run on the upstream repo.
@StefanSteiner StefanSteiner merged commit 0853a66 into tableau:main May 18, 2026
10 checks passed
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