66 paths :
77 - ' docs/**'
88 - ' examples/**'
9- - ' packages/element-ui-x/package.json '
9+ - ' packages/element-ui-x/** '
1010 pull_request :
1111 types : [opened, synchronize, reopened]
1212 branches : [master]
1313 paths :
1414 - ' docs/**'
1515 - ' examples/**'
16- - ' packages/element-ui-x/package.json '
16+ - ' packages/element-ui-x/** '
1717 pull_request_target :
1818 types : [closed]
1919 branches : [master]
2020 paths :
2121 - ' docs/**'
2222 - ' examples/**'
23- - ' packages/element-ui-x/package.json '
23+ - ' packages/element-ui-x/** '
2424 workflow_dispatch :
2525 inputs :
2626 deploy_target :
3434 - examples
3535
3636jobs :
37- sync-version :
38- name : 同步版本号
37+ deploy-docs :
38+ name : 部署文档站
39+ if : ${{ github.event_name != 'workflow_dispatch' || github.event.inputs.deploy_target == 'all' || github.event.inputs.deploy_target == 'docs' }}
3940 runs-on : ubuntu-latest
40- if : |
41- (github.event_name == 'push' && contains(github.event.head_commit.modified, 'packages/element-ui-x/package.json')) ||
42- github.event_name == 'workflow_dispatch'
43- outputs :
44- version-changed : ${{ steps.check-version.outputs.changed }}
45- new-version : ${{ steps.check-version.outputs.version }}
41+ env :
42+ VUEPRESS_GA_ID : ${{ secrets.VUEPRESS_GA_ID }}
4643
4744 steps :
4845 - name : Checkout repository
4946 uses : actions/checkout@v3
50- with :
51- token : ${{ secrets.GITHUB_TOKEN }}
52- fetch-depth : 0
5347
5448 - name : Configure Git
5549 run : |
@@ -61,78 +55,55 @@ jobs:
6155 with :
6256 node-version : ' 16'
6357
64- - name : Check and sync version
65- id : check- version
58+ - name : Get package version and replace dependencies
59+ id : version-setup
6660 run : |
61+ # 获取主包版本号
6762 MAIN_VERSION=$(node -p "require('./packages/element-ui-x/package.json').version")
6863 echo "Main package version: $MAIN_VERSION"
64+ echo "version=$MAIN_VERSION" >> $GITHUB_OUTPUT
6965
70- DOCS_VERSION=$(node -p "require('./docs/package.json').dependencies['vue-element-ui-x']" | sed 's/[\^~]//g')
71- echo "Docs package version: $DOCS_VERSION"
66+ # 备份原始的package.json文件
67+ cp docs/ package.json docs/package.json.backup
7268
73- if [ "$MAIN_VERSION" != "$DOCS_VERSION" ]; then
74- echo "Version mismatch detected, syncing..."
69+ # 临时替换文档站点的依赖为NPM版本
70+ echo "Replacing docs package.json dependency..."
71+ node -e "
72+ const fs = require('fs');
73+ const docsPackage = JSON.parse(fs.readFileSync('docs/package.json', 'utf8'));
7574
76- node -e "
77- const fs = require('fs');
78- const docsPackage = JSON.parse(fs.readFileSync('docs/package.json', 'utf8') );
75+ // 检查是否使用本地依赖
76+ if (docsPackage.dependencies['vue-element-ui-x'].startsWith('file:')) {
77+ console.log('Found local dependency, replacing with NPM version...' );
7978 docsPackage.dependencies['vue-element-ui-x'] = '^$MAIN_VERSION';
8079 fs.writeFileSync('docs/package.json', JSON.stringify(docsPackage, null, 2) + '\n');
81- console.log('Updated docs package.json to version ^$MAIN_VERSION');
82- "
83-
84- git add docs/package.json
85- git commit -m "docs: sync vue-element-ui-x version to ^$MAIN_VERSION" || echo "No changes to commit"
86- git push origin ${{ github.ref_name }} || echo "Nothing to push"
87-
88- echo "changed=true" >> $GITHUB_OUTPUT
89- echo "version=$MAIN_VERSION" >> $GITHUB_OUTPUT
90- else
91- echo "Versions are already in sync"
92- echo "changed=false" >> $GITHUB_OUTPUT
93- echo "version=$MAIN_VERSION" >> $GITHUB_OUTPUT
94- fi
95-
96- deploy-docs :
97- name : 部署文档站
98- needs : [sync-version]
99- if : |
100- always() &&
101- (needs.sync-version.result == 'success' || needs.sync-version.result == 'skipped') &&
102- (${{ github.event_name != 'workflow_dispatch' || github.event.inputs.deploy_target == 'all' || github.event.inputs.deploy_target == 'docs' }})
103- runs-on : ubuntu-latest
104- env :
105- VUEPRESS_GA_ID : ${{ secrets.VUEPRESS_GA_ID }}
106-
107- steps :
108- - name : Checkout repository
109- uses : actions/checkout@v3
110- with :
111- ref : ${{ github.ref }}
112-
113- - name : Pull latest changes
114- if : needs.sync-version.outputs.version-changed == 'true'
115- run : git pull origin ${{ github.ref_name }}
116-
117- - name : Configure Git
118- run : |
119- git config --global user.name "GitHub Actions"
120- git config --global user.email "github-actions@github.com"
80+ console.log('Replaced with version: ^$MAIN_VERSION');
81+ } else {
82+ console.log('Already using NPM version');
83+ }
84+ "
12185
122- - name : Setup Node.js
123- uses : actions/setup-node@v3
124- with :
125- node-version : ' 16'
86+ # 显示修改后的依赖
87+ echo "Updated docs dependency:"
88+ node -p "require('./docs/package.json').dependencies['vue-element-ui-x']"
12689
127- - name : Install dependencies
90+ - name : Install docs dependencies
12891 working-directory : docs
12992 run : |
93+ echo "Installing dependencies with NPM version..."
13094 npm install
13195
13296 - name : Build documentation
13397 working-directory : docs
13498 run : npm run build
13599
100+ - name : Restore original package.json
101+ run : |
102+ echo "Restoring original docs package.json..."
103+ mv docs/package.json.backup docs/package.json
104+ echo "Restored to:"
105+ node -p "require('./docs/package.json').dependencies['vue-element-ui-x']"
106+
136107 - name : Deploy to Vercel
137108 id : deploy-docs
138109 uses : amondnet/vercel-action@v25
@@ -148,15 +119,11 @@ jobs:
148119 uses : actions/github-script@v6
149120 with :
150121 script : |
151- let body = '📖 文档预览: ${{ steps.deploy-docs.outputs.preview-url }}';
152- if ('${{ needs.sync-version.outputs.version-changed }}' === 'true') {
153- body += '\n🔄 已自动同步版本号到: ${{ needs.sync-version.outputs.new-version }}';
154- }
155122 github.rest.issues.createComment({
156123 issue_number: context.issue.number,
157124 owner: context.repo.owner,
158125 repo: context.repo.repo,
159- body: body
126+ body: '📖 文档预览: ${{ steps.deploy-docs.outputs.preview-url }}\n🔄 使用NPM版本: ${{ steps.version-setup.outputs.version }}'
160127 })
161128
162129 deploy-examples :
@@ -175,15 +142,55 @@ jobs:
175142 with :
176143 node-version : ' 16'
177144
145+ - name : Get package version and replace dependencies
146+ id : version-setup
147+ run : |
148+ # 获取主包版本号
149+ MAIN_VERSION=$(node -p "require('./packages/element-ui-x/package.json').version")
150+ echo "Main package version: $MAIN_VERSION"
151+ echo "version=$MAIN_VERSION" >> $GITHUB_OUTPUT
152+
153+ # 备份原始的package.json文件
154+ cp examples/package.json examples/package.json.backup
155+
156+ # 临时替换示例项目的依赖为NPM版本
157+ echo "Replacing examples package.json dependency..."
158+ node -e "
159+ const fs = require('fs');
160+ const examplesPackage = JSON.parse(fs.readFileSync('examples/package.json', 'utf8'));
161+
162+ // 检查是否使用本地依赖
163+ if (examplesPackage.dependencies['vue-element-ui-x'].startsWith('file:')) {
164+ console.log('Found local dependency, replacing with NPM version...');
165+ examplesPackage.dependencies['vue-element-ui-x'] = '^$MAIN_VERSION';
166+ fs.writeFileSync('examples/package.json', JSON.stringify(examplesPackage, null, 2) + '\n');
167+ console.log('Replaced with version: ^$MAIN_VERSION');
168+ } else {
169+ console.log('Already using NPM version');
170+ }
171+ "
172+
173+ # 显示修改后的依赖
174+ echo "Updated examples dependency:"
175+ node -p "require('./examples/package.json').dependencies['vue-element-ui-x']"
176+
178177 - name : Install dependencies
179178 working-directory : examples
180179 run : |
180+ echo "Installing dependencies with NPM version..."
181181 npm install
182182
183183 - name : Build
184184 working-directory : examples
185185 run : npm run build
186186
187+ - name : Restore original package.json
188+ run : |
189+ echo "Restoring original examples package.json..."
190+ mv examples/package.json.backup examples/package.json
191+ echo "Restored to:"
192+ node -p "require('./examples/package.json').dependencies['vue-element-ui-x']"
193+
187194 - name : Deploy to Vercel
188195 id : deploy-examples
189196 uses : amondnet/vercel-action@v25
@@ -203,5 +210,5 @@ jobs:
203210 issue_number: context.issue.number,
204211 owner: context.repo.owner,
205212 repo: context.repo.repo,
206- body: '🚀 示例预览: ${{ steps.deploy-examples.outputs.preview-url }}'
213+ body: '🚀 示例预览: ${{ steps.deploy-examples.outputs.preview-url }}\n🔄 使用NPM版本: ${{ steps.version-setup.outputs.version }} '
207214 })
0 commit comments