在PR阶段递增版本号

This commit is contained in:
2026-01-14 03:17:24 +00:00
parent 07bb207ff3
commit 4b74fa615a

View File

@@ -23,7 +23,6 @@ jobs:
- name: 拉取代码 - name: 拉取代码
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:
token: ${{ secrets.PAT_WITH_BYPASS }} # 使用具有绕过保护权限的 PAT
fetch-depth: 0 fetch-depth: 0
- name: 配置 Git - name: 配置 Git
@@ -36,33 +35,45 @@ jobs:
git config --global user.name "devstar" git config --global user.name "devstar"
git config --global user.email "devstar@noreply.github.com" git config --global user.email "devstar@noreply.github.com"
- name: 自动递增版本号 - name: Check and bump version
if: github.event_name == 'push' && github.ref == 'refs/heads/main' if: github.event_name == 'pull_request'
run: | run: |
apk add --no-cache jq apk add --no-cache jq
CURRENT_VERSION=$(jq -r '.version' package.json) # 获取远程 main 分支版本
echo "当前版本: $CURRENT_VERSION" git fetch origin main
MAIN_VERSION=$(git show origin/main:package.json | jq -r '.version')
PR_VERSION=$(jq -r '.version' package.json)
#版本号(使用 sh 兼容的语法) echo "Main版本: $MAIN_VERSION"
MAJOR=$(echo "$CURRENT_VERSION" | cut -d'.' -f1) echo "当前 PR 版本: $PR_VERSION"
MINOR=$(echo "$CURRENT_VERSION" | cut -d'.' -f2)
PATCH=$(echo "$CURRENT_VERSION" | cut -d'.' -f3)
# 递增补丁版本号 # 如果版本号相同,则递增
NEW_PATCH=$((PATCH + 1)) if [ "$MAIN_VERSION" = "$PR_VERSION" ]; then
NEW_VERSION="$MAJOR.$MINOR.$NEW_PATCH" echo "版本号未变更,开始递增..."
echo "新版本: $NEW_VERSION"
# 分解版本号
# 更新 package.json MAJOR=$(echo "$PR_VERSION" | cut -d'.' -f1)
jq --arg version "$NEW_VERSION" '.version = $version' package.json > package.json.tmp MINOR=$(echo "$PR_VERSION" | cut -d'.' -f2)
mv package.json.tmp package.json PATCH=$(echo "$PR_VERSION" | cut -d'.' -f3)
# 提交版本变更(包含 [skip ci] 避免触发循环构建) # 递增补丁版本号
git add package.json NEW_PATCH=$((PATCH + 1))
git commit -m "chore: bump version to $NEW_VERSION [skip ci]" NEW_VERSION="$MAJOR.$MINOR.$NEW_PATCH"
echo "新版本: $NEW_VERSION"
# 推送到保护分支(需要 PAT_WITH_BYPASS 有绕过保护的权限)
git push # 更新 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: 安装依赖 - name: 安装依赖
run: | run: |