在PR阶段递增版本号
This commit is contained in:
@@ -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,17 +35,26 @@ 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)
|
# 如果版本号相同,则递增
|
||||||
|
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_PATCH=$((PATCH + 1))
|
||||||
@@ -57,12 +65,15 @@ jobs:
|
|||||||
jq --arg version "$NEW_VERSION" '.version = $version' package.json > package.json.tmp
|
jq --arg version "$NEW_VERSION" '.version = $version' package.json > package.json.tmp
|
||||||
mv package.json.tmp package.json
|
mv package.json.tmp package.json
|
||||||
|
|
||||||
# 提交版本变更(包含 [skip ci] 避免触发循环构建)
|
# 提交版本变更
|
||||||
|
git config user.name "github-actions"
|
||||||
|
git config user.email "github-actions@github.com"
|
||||||
git add package.json
|
git add package.json
|
||||||
git commit -m "chore: bump version to $NEW_VERSION [skip ci]"
|
git commit -m "chore: bump version to $NEW_VERSION"
|
||||||
|
|
||||||
# 推送到保护分支(需要 PAT_WITH_BYPASS 有绕过保护的权限)
|
|
||||||
git push
|
git push
|
||||||
|
else
|
||||||
|
echo "版本号已更新,跳过递增"
|
||||||
|
fi
|
||||||
|
|
||||||
- name: 安装依赖
|
- name: 安装依赖
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
Reference in New Issue
Block a user