From 4b74fa615a91352a857d18c0d006ad129ca754d3 Mon Sep 17 00:00:00 2001 From: yinxue <2643126914@qq.com> Date: Wed, 14 Jan 2026 03:17:24 +0000 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8PR=E9=98=B6=E6=AE=B5=E9=80=92=E5=A2=9E?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/devstar-vscode-release.yaml | 59 ++++++++++++-------- 1 file changed, 35 insertions(+), 24 deletions(-) diff --git a/.gitea/workflows/devstar-vscode-release.yaml b/.gitea/workflows/devstar-vscode-release.yaml index 56512fd..f0cdb3d 100644 --- a/.gitea/workflows/devstar-vscode-release.yaml +++ b/.gitea/workflows/devstar-vscode-release.yaml @@ -23,7 +23,6 @@ jobs: - name: 拉取代码 uses: actions/checkout@v4 with: - token: ${{ secrets.PAT_WITH_BYPASS }} # 使用具有绕过保护权限的 PAT fetch-depth: 0 - name: 配置 Git @@ -36,33 +35,45 @@ jobs: git config --global user.name "devstar" git config --global user.email "devstar@noreply.github.com" - - name: 自动递增版本号 - if: github.event_name == 'push' && github.ref == 'refs/heads/main' + - name: Check and bump version + if: github.event_name == 'pull_request' run: | apk add --no-cache jq - CURRENT_VERSION=$(jq -r '.version' package.json) - echo "当前版本: $CURRENT_VERSION" + # 获取远程 main 分支版本 + git fetch origin main + MAIN_VERSION=$(git show origin/main:package.json | jq -r '.version') + PR_VERSION=$(jq -r '.version' package.json) - # 分解版本号(使用 sh 兼容的语法) - MAJOR=$(echo "$CURRENT_VERSION" | cut -d'.' -f1) - MINOR=$(echo "$CURRENT_VERSION" | cut -d'.' -f2) - PATCH=$(echo "$CURRENT_VERSION" | cut -d'.' -f3) + echo "Main 分支版本: $MAIN_VERSION" + echo "当前 PR 版本: $PR_VERSION" - # 递增补丁版本号 - NEW_PATCH=$((PATCH + 1)) - NEW_VERSION="$MAJOR.$MINOR.$NEW_PATCH" - echo "新版本: $NEW_VERSION" - - # 更新 package.json - jq --arg version "$NEW_VERSION" '.version = $version' package.json > package.json.tmp - mv package.json.tmp package.json - - # 提交版本变更(包含 [skip ci] 避免触发循环构建) - git add package.json - git commit -m "chore: bump version to $NEW_VERSION [skip ci]" - - # 推送到保护分支(需要 PAT_WITH_BYPASS 有绕过保护的权限) - git push + # 如果版本号相同,则递增 + if [ "$MAIN_VERSION" = "$PR_VERSION" ]; then + echo "版本号未变更,开始递增..." + + # 分解版本号 + MAJOR=$(echo "$PR_VERSION" | cut -d'.' -f1) + MINOR=$(echo "$PR_VERSION" | cut -d'.' -f2) + PATCH=$(echo "$PR_VERSION" | cut -d'.' -f3) + + # 递增补丁版本号 + NEW_PATCH=$((PATCH + 1)) + NEW_VERSION="$MAJOR.$MINOR.$NEW_PATCH" + echo "新版本: $NEW_VERSION" + + # 更新 package.json + jq --arg version "$NEW_VERSION" '.version = $version' package.json > package.json.tmp + mv package.json.tmp package.json + + # 提交版本变更 + git config user.name "github-actions" + git config user.email "github-actions@github.com" + git add package.json + git commit -m "chore: bump version to $NEW_VERSION" + git push + else + echo "版本号已更新,跳过递增" + fi - name: 安装依赖 run: |