• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

joaoh82 / rust_sqlite / 26777721491
69%

Build:
DEFAULT BRANCH: main
Ran 01 Jun 2026 07:47PM UTC
Jobs 1
Files 62
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

01 Jun 2026 07:42PM UTC coverage: 68.985%. Remained the same
26777721491

push

github

web-flow
SQLR-12 — make release.yml publish jobs idempotent (skip-if-already-published) (#156)

Re-dispatching release.yml at a version where some-but-not-all artifacts
already published (the v0.11.0 wave: the engine crate 413'd but every
other channel had shipped) used to fail on every job whose artifact was
already on its registry ("crate version already uploaded", "cannot
publish over existing version"). Completing a partial release meant
hand-publishing the missing crates from a local checkout.

Add a per-registry "already published?" guard to each registry-publish
job so a re-dispatch at the same version skips what's done and publishes
only what's missing:

- crates.io (publish-crate/-ask/-mcp): GET crates.io/api/v1/crates/
  <name>/<version> with a User-Agent (crates.io 403s without one);
  200 -> skip the cargo publish step, 404 -> publish. Transport error
  falls through to publish (preserves old fail-loud behavior).
- npm (publish-nodejs/-wasm/-notes-example): `npm view <pkg>@<ver>
  version` non-empty -> skip the npm publish step.
- PyPI (publish-python): GET pypi.org/pypi/sqlrite/<ver>/json logged for
  visibility; flip skip-existing false->true so a re-run uploads only the
  missing wheels (file-granular is the right unit for PyPI's multi-wheel
  wave) instead of failing on the first already-present file.

Each guard emits a ::notice:: so the run log explains every skip. The
GitHub-Release-only jobs (publish-ffi/-desktop/-go/build-mcp-binaries)
were already idempotent via softprops/action-gh-release create-or-update
and tolerate an existing tag/release — left unchanged.

docs/release-plan.md: rewrite the "Sad path" section to document
same-version re-dispatch recovery (retiring the old "never reuse a tag,
always bump past" workaround) and correct the stale tag-all "aborts on
existing tag" claim (it skips with a ::notice::).

Verified the guard decisions against the live registries: a re-dispatch
at the published 0.11.0 skips all single-artifact cha... (continued)

11357 of 16463 relevant lines covered (68.98%)

1.24 hits per line

Jobs
ID Job ID Ran Files Coverage
1 26777721491.1 01 Jun 2026 07:47PM UTC 62
68.98
GitHub Action Run
Source Files on build 26777721491
  • Tree
  • List 62
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • f3d80eb8 on github
  • Prev Build on main (#26744195757)
  • Next Build on main (#26780602675)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc