From e5ed9ab340af448eeaf7093b1e60e257d2b721b0 Mon Sep 17 00:00:00 2001 From: dynamder Date: Wed, 19 Aug 2026 19:51:00 +0800 Subject: [PATCH] fix(cd): extract bare version so tags/branches are vX.Y.Z, not vfunera-core@X.Y.Z cargo pkgid -p funera-core prints 'funera-core@X.Y.Z', so sed 's/.*#//' produced branch release/vfunera-core@0.3.0 and would have pushed tag vfunera-core@0.3.0 and created a release with the same name. Use cargo metadata + jq to get the bare version in the PR/tag/release steps. --- .github/workflows/cd.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index c82b832..97b9c1a 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -84,7 +84,9 @@ jobs: - name: Open release PR and merge if: ${{ !inputs.skip_bump }} run: | - VERSION="$(cargo pkgid -p funera-core | sed 's/.*#//')" + # `cargo pkgid` yields `funera-core@X.Y.Z`; extract the bare version + # so tags/branches are named vX.Y.Z (no `vfunera-core@` prefix). + VERSION="$(cargo metadata --no-deps --format-version 1 | jq -r '.packages[] | select(.name == "funera-core") | .version')" BRANCH="release/v${VERSION}" git push origin "HEAD:${BRANCH}" PR_URL="$(gh pr create --base main --head "${BRANCH}" \ @@ -97,7 +99,7 @@ jobs: - name: Push tag if: ${{ !inputs.skip_bump }} run: | - VERSION="$(cargo pkgid -p funera-core | sed 's/.*#//')" + VERSION="$(cargo metadata --no-deps --format-version 1 | jq -r '.packages[] | select(.name == "funera-core") | .version')" git push origin "refs/tags/v${VERSION}" - name: Publish funera_core @@ -120,7 +122,7 @@ jobs: - name: Create GitHub Release run: | - VERSION=$(cargo pkgid -p funera-core | sed 's/.*#//') + VERSION="$(cargo metadata --no-deps --format-version 1 | jq -r '.packages[] | select(.name == "funera-core") | .version')" git fetch --tags gh release create "v$VERSION" --generate-notes env: