Skip to content

Commit bb6f2a8

Browse files
committed
ci: fix version finding
(cherry picked from commit 3b0f594)
1 parent 38cd24e commit bb6f2a8

1 file changed

Lines changed: 37 additions & 15 deletions

File tree

.github/workflows/release.yml

Lines changed: 37 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -52,27 +52,49 @@ jobs:
5252
- name: 📦 Install dependencies
5353
run: npm install
5454

55-
# 4. 构建跨平台包(不自动递增版本号)
56-
- name: 🏗️ Build cross-platform package
57-
run: npm run pack:prod:ci
58-
env:
59-
NODE_ENV: production
60-
61-
# 7. 获取版本号
62-
- name: 📌 Get version
55+
# 4. 获取并同步版本号
56+
- name: 📌 Get and Sync version
6357
id: get_version
6458
run: |
59+
# 1. 确定版本号
6560
if [ -n "${{ inputs.version }}" ]; then
66-
echo "VERSION=${{ inputs.version }}" >> $GITHUB_OUTPUT
61+
VERSION="${{ inputs.version }}"
6762
elif [[ $GITHUB_REF == refs/tags/* ]]; then
68-
echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
63+
VERSION="${GITHUB_REF#refs/tags/v}"
6964
else
7065
VERSION=$(node -p "require('./package.json').version")
71-
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
7266
fi
73-
echo "Current version: $(cat $GITHUB_OUTPUT | grep VERSION)"
67+
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
68+
echo "Final target version: $VERSION"
69+
70+
# 2. 同步版本号到所有 package.json (仅在 runner 环境中,不提交回仓库)
71+
node -e "
72+
const fs = require('fs');
73+
const paths = [
74+
'package.json',
75+
'packages/cli/package.json',
76+
'packages/cli/src/package.json',
77+
'packages/core/package.json',
78+
'packages/vscode-ide-companion/package.json'
79+
];
80+
paths.forEach(p => {
81+
if (fs.existsSync(p)) {
82+
const pkg = JSON.parse(fs.readFileSync(p, 'utf8'));
83+
const oldVersion = pkg.version;
84+
pkg.version = '$VERSION';
85+
fs.writeFileSync(p, JSON.stringify(pkg, null, 2) + '\n');
86+
console.log('✅ Updated ' + p + ': ' + oldVersion + ' -> $VERSION');
87+
}
88+
});
89+
"
90+
91+
# 5. 构建跨平台包(由于已经同步了版本号,这里使用 --no-version-bump)
92+
- name: 🏗️ Build cross-platform package
93+
run: npm run pack:prod:ci
94+
env:
95+
NODE_ENV: production
7496

75-
# 8. 查找构建产物
97+
# 6. 查找构建产物
7698
- name: 🔍 Find build artifacts
7799
id: find_artifacts
78100
run: |
@@ -90,7 +112,7 @@ jobs:
90112
echo "✅ Found artifact: $TGZ_FILE"
91113
ls -lh $TGZ_FILE
92114
93-
# 9. 创建 GitHub Release (使用 tag message 作为 release notes)
115+
# 7. 创建 GitHub Release (使用 tag message 作为 release notes)
94116
- name: 🚀 Create GitHub Release
95117
uses: softprops/action-gh-release@v1
96118
with:
@@ -103,7 +125,7 @@ jobs:
103125
env:
104126
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
105127

106-
# 10. 上传构建产物为 workflow artifact(方便下载测试)
128+
# 8. 上传构建产物为 workflow artifact
107129
- name: 📤 Upload build artifacts
108130
uses: actions/upload-artifact@v4
109131
with:

0 commit comments

Comments
 (0)