From 1db018d130e2160387a94386dd96e6e890c348be Mon Sep 17 00:00:00 2001 From: 777genius Date: Fri, 22 May 2026 13:34:55 +0300 Subject: [PATCH] fix(release): update badge on default branch --- .github/workflows/release.yml | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 26efbb7b..796eaca6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -797,26 +797,34 @@ jobs: - name: Update README version badge if: ${{ inputs.publish_release }} + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | set -euo pipefail + DEFAULT_BRANCH="$(gh repo view "${GITHUB_REPOSITORY}" --json defaultBranchRef --jq '.defaultBranchRef.name')" + git fetch origin "${DEFAULT_BRANCH}" + BADGE_WORKTREE="$(mktemp -d)" + git worktree add --detach "${BADGE_WORKTREE}" "origin/${DEFAULT_BRANCH}" + trap 'git worktree remove --force "${BADGE_WORKTREE}" >/dev/null 2>&1 || true' EXIT + BADGE_LABEL_WIDTH=51 BADGE_VALUE="${RELEASE_TAG}" BADGE_VALUE_WIDTH=$(( ${#BADGE_VALUE} * 7 + 10 )) BADGE_WIDTH=$(( BADGE_LABEL_WIDTH + BADGE_VALUE_WIDTH )) BADGE_LABEL_X=$(( BADGE_LABEL_WIDTH / 2 )) BADGE_VALUE_X=$(( BADGE_LABEL_WIDTH + BADGE_VALUE_WIDTH / 2 )) - mkdir -p .github/badges - cat > .github/badges/version.svg < "${BADGE_WORKTREE}/.github/badges/version.svg" <version: ${BADGE_VALUE}version${BADGE_VALUE} EOF - if git diff --quiet -- .github/badges/version.svg; then + if git -C "${BADGE_WORKTREE}" diff --quiet -- .github/badges/version.svg; then exit 0 fi - git config user.name "github-actions[bot]" - git config user.email "41898282+github-actions[bot]@users.noreply.github.com" - git add .github/badges/version.svg - git commit -m "docs(readme): update release badge to ${BADGE_VALUE}" - git push + git -C "${BADGE_WORKTREE}" config user.name "github-actions[bot]" + git -C "${BADGE_WORKTREE}" config user.email "41898282+github-actions[bot]@users.noreply.github.com" + git -C "${BADGE_WORKTREE}" add .github/badges/version.svg + git -C "${BADGE_WORKTREE}" commit -m "docs(readme): update release badge to ${BADGE_VALUE}" + git -C "${BADGE_WORKTREE}" push origin "HEAD:${DEFAULT_BRANCH}" - name: Keep release as draft if: ${{ github.event_name == 'workflow_dispatch' && !inputs.publish_release }}