From a7df91b92bb3582a3c19ff12dcfc89249323cc3b Mon Sep 17 00:00:00 2001 From: Matthew Jackson <1085847+MattJackson@users.noreply.github.com> Date: Fri, 10 Jul 2026 08:52:57 -0700 Subject: [PATCH] ci: drop the dead crates.io publish job (libfreemkv is git-tag-only) libfreemkv is publish=false (it git-deps the firmware crate freemkv-unlock, never on crates.io), so the Release workflow's 'cargo publish' step failed hard on every tag. Consumers git-tag-pin libfreemkv; the git tag is the release artifact. Removed the publish job. --- .github/workflows/release.yml | 28 +++++----------------------- 1 file changed, 5 insertions(+), 23 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2951a3b..b71ec22 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -39,29 +39,11 @@ jobs: # would always fail (no lockfile to lock against on a fresh runner). - run: cargo test - # crates.io publish is an INDEPENDENT job: it serves EXTERNAL consumers only. - # The freemkv binaries no longer depend on it (they git-tag-pin libfreemkv via - # a committed [patch.crates-io]), so this publish runs in parallel with their - # release builds rather than gating them. It `needs: [verify, test]` so a - # failing test suite still blocks publication to crates.io — external - # consumers who `cargo add libfreemkv` must never receive a release whose - # tests were failing. (The two upstream jobs run in parallel, so this gate - # does not serialize publish behind test beyond their own completion.) - publish: - needs: [verify, test] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v5 - - uses: dtolnay/rust-toolchain@1.86.0 - - uses: Swatinem/rust-cache@v2 - # --no-verify: CI already compiled this exact commit (in the `test` job - # and on every push via ci.yml). cargo publish's default re-verify does a - # full cold release build of the packaged tarball, which here is pure - # redundant work (~a cold lib build). Skip it. - - name: Publish to crates.io - run: cargo publish --no-verify - env: - CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} + # NOTE: there is no crates.io publish job. libfreemkv is git-tag-only + # (`package.publish = false` — it git-deps the firmware crate freemkv-unlock, + # which never ships to crates.io). Every consumer git-tag-pins libfreemkv via + # a committed [patch.crates-io]; the git tag itself IS the release artifact. + # A `cargo publish` here fails hard on `publish = false`, so it was removed. release: # Only needs `verify`; the GitHub Release can be cut as soon as the version