Skip to content

Commit 1b135a9

Browse files
committed
fix(ci): scope publishing permissions
1 parent 8386678 commit 1b135a9

2 files changed

Lines changed: 90 additions & 22 deletions

File tree

.github/workflows/auto-publish.yml

Lines changed: 86 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ on:
99
tags:
1010
- 'v*'
1111

12-
permissions:
13-
contents: write
14-
id-token: write
15-
1612
# 定义工作流中的作业
1713
jobs:
1814
build:
1915
# 指定运行环境为最新版本的ubuntu
2016
runs-on: ubuntu-latest
17+
permissions:
18+
contents: read
19+
outputs:
20+
dist_tag: ${{ steps.parse_tag.outputs.dist_tag }}
2121
steps:
2222
# 步骤1: 检出代码
2323
- name: CheckOut Code
@@ -91,36 +91,104 @@ jobs:
9191
exit 1
9292
fi
9393
94-
# 步骤8: 发布组件到NPM
94+
# 步骤8: 构建文档
95+
- name: Build VitePress
96+
run: pnpm build:docs --nocomponents
97+
env:
98+
VITEPRESS_BASE: /tiny-robot/${{ steps.parse_tag.outputs.dist_tag }}/
99+
PLAYGROUND_BASE: /tiny-robot/${{ steps.parse_tag.outputs.dist_tag }}/playground
100+
101+
- name: Verify build output
102+
run: ls -la ./docs/dist
103+
104+
- name: Upload package artifacts
105+
uses: actions/upload-artifact@v6
106+
with:
107+
name: package-dist
108+
path: |
109+
packages/components/dist
110+
packages/kit/dist
111+
packages/svgs/dist
112+
if-no-files-found: error
113+
retention-days: 1
114+
115+
- name: Upload docs artifacts
116+
uses: actions/upload-artifact@v6
117+
with:
118+
name: docs-dist
119+
path: docs/dist
120+
if-no-files-found: error
121+
retention-days: 1
122+
123+
publish:
124+
needs: build
125+
runs-on: ubuntu-latest
126+
permissions:
127+
contents: read
128+
id-token: write
129+
steps:
130+
- name: CheckOut Code
131+
uses: actions/checkout@v5
132+
with:
133+
ref: ${{ github.ref_name }}
134+
135+
- name: Setup pnpm
136+
uses: pnpm/action-setup@v5
137+
138+
- name: Setup Node
139+
uses: actions/setup-node@v5
140+
with:
141+
node-version: 24
142+
package-manager-cache: false
143+
registry-url: 'https://registry.npmjs.org'
144+
145+
- name: Install publish dependencies
146+
run: pnpm i --no-frozen-lockfile --ignore-scripts
147+
148+
- name: Download package artifacts
149+
uses: actions/download-artifact@v7
150+
with:
151+
name: package-dist
152+
path: ./packages
153+
154+
# 步骤9: 发布组件到NPM
95155
- name: Publish components
96-
run: pnpm lerna publish from-package --pre-dist-tag ${{ steps.parse_tag.outputs.dist_tag }} --yes
156+
run: pnpm lerna publish from-package --pre-dist-tag ${{ needs.build.outputs.dist_tag }} --yes
97157

98-
# 步骤9: 发布组件到GitHub Release
158+
release:
159+
needs: [build, publish]
160+
if: ${{ needs.build.outputs.dist_tag == 'latest' }}
161+
runs-on: ubuntu-latest
162+
permissions:
163+
contents: read
164+
steps:
165+
# 步骤10: 发布组件到GitHub Release
99166
- name: Release
100-
if: ${{ steps.parse_tag.outputs.dist_tag == 'latest' }}
101167
uses: softprops/action-gh-release@v1
102168
with:
103169
tag_name: ${{ github.ref_name }}
104170
generate_release_notes: true
105171
env:
106172
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }}
107173

108-
# 步骤10: 构建文档
109-
- name: Build VitePress
110-
run: pnpm build:docs --nocomponents
111-
env:
112-
VITEPRESS_BASE: /tiny-robot/${{steps.parse_tag.outputs.dist_tag}}/
113-
PLAYGROUND_BASE: /tiny-robot/${{steps.parse_tag.outputs.dist_tag}}/playground
114-
115-
- name: Verify build output
116-
run: ls -la ./docs/dist
174+
deploy-docs:
175+
needs: [build, publish]
176+
runs-on: ubuntu-latest
177+
permissions:
178+
contents: write
179+
steps:
180+
- name: Download docs artifacts
181+
uses: actions/download-artifact@v7
182+
with:
183+
name: docs-dist
184+
path: ./docs/dist
117185

118186
- name: Deploy docs
119187
uses: peaceiris/actions-gh-pages@v3
120188
with:
121189
github_token: ${{ secrets.GITHUB_TOKEN }}
122190
publish_dir: ./docs/dist
123-
destination_dir: ./${{steps.parse_tag.outputs.dist_tag}}/
191+
destination_dir: ./${{ needs.build.outputs.dist_tag }}/
124192
keep_files: true
125193
force_orphan: false
126194
user_name: 'github-actions[bot]'

.github/workflows/dispatch-publish.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ jobs:
3232
build:
3333
# 指定运行环境为最新版本的ubuntu
3434
runs-on: ubuntu-latest
35+
permissions:
36+
contents: write
37+
id-token: write
3538
steps:
3639
# 步骤1: 检出代码
3740
- name: CheckOut Code
@@ -47,7 +50,7 @@ jobs:
4750
- name: Setup Node
4851
uses: actions/setup-node@v5
4952
with:
50-
node-version: 22 # 使用Node.js 22版本
53+
node-version: 24 # 使用Node.js 24版本
5154
package-manager-cache: false
5255
registry-url: 'https://registry.npmjs.org' # 设置npm registry地址
5356

@@ -79,9 +82,6 @@ jobs:
7982
- name: Publish components
8083
if: ${{ inputs.publish_npm }}
8184
run: pnpm lerna publish from-package --pre-dist-tag ${{ inputs.tag }} --yes
82-
env:
83-
# 使用NPM令牌进行身份验证
84-
NODE_AUTH_TOKEN: ${{ secrets.NPM_OPENTINY_ROBOT_TOKEN }}
8585

8686
# 步骤9: 构建文档
8787
- name: Build VitePress

0 commit comments

Comments
 (0)