@@ -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 : |
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