From e4e0917206120f8b6e4b0b72c264a4ce3a5d6360 Mon Sep 17 00:00:00 2001 From: meh Date: Sat, 12 Sep 2026 12:39:43 +0700 Subject: [PATCH] Read release identity through Cargo --- .github/workflows/rust.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 51ca270..7be398f 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -95,10 +95,12 @@ jobs: env: CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} run: | + set -eu if [ -z "$CARGO_REGISTRY_TOKEN" ]; then echo "CARGO_REGISTRY_TOKEN not set; skipping publish"; exit 0; fi - v=$(sed -n 's/^version = "\(.*\)"$/\1/p' Cargo.toml | head -1) - if curl -fsSL "https://index.crates.io/wo/rk/worktablesindex" | sed -n 's/.*"vers":"\([^"]*\)".*/\1/p' | grep -qx "$v"; then - echo "WorkTablesIndex $v is already on crates.io; nothing to publish" + name=$(cargo read-manifest | jq -er '.name') + version=$(cargo read-manifest | jq -er '.version') + if cargo info --registry crates-io "$name@$version" >/dev/null 2>&1; then + echo "$name $version is already on crates.io; nothing to publish" exit 0 fi - cargo publish -p WorkTablesIndex + cargo publish -p "$name"