File tree Expand file tree Collapse file tree 2 files changed +49
-10
lines changed Expand file tree Collapse file tree 2 files changed +49
-10
lines changed Original file line number Diff line number Diff line change @@ -4,21 +4,24 @@ name: Publish API Contract to GitHub Packages
44on :
55 push :
66 branches :
7- - main # 每当 main 分支有更新时触发
7+ - main
88
99jobs :
1010 publish :
1111 runs-on : ubuntu-latest
1212 permissions :
13- contents : read
13+ contents : write
1414 packages : write
1515 steps :
1616 - uses : actions/checkout@v4
17+ with :
18+ token : ${{ secrets.GITHUB_TOKEN }}
19+
1720 - uses : actions/setup-node@v4
1821 with :
1922 node-version : ' 20'
2023 registry-url : ' https://npm.pkg.github.com'
21- scope : ' @tobenot' # 明确指定 scope
24+ scope : ' @tobenot'
2225
2326 - name : Install dependencies and build
2427 run : |
2831 env :
2932 NODE_AUTH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
3033
31- - name : Publish to GitHub Packages
32- run : npm publish
34+ - name : Update version and publish
35+ run : |
36+ npm version patch --no-git-tag-version
37+ npm publish
3338 env :
3439 NODE_AUTH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
40+
41+ - name : Commit and push version update
42+ run : |
43+ git config --local user.email "[email protected] " 44+ git config --local user.name "GitHub Action"
45+ git add package.json
46+ git commit -m "Auto update version for npm publish"
47+ git push
Original file line number Diff line number Diff line change @@ -98,23 +98,44 @@ jobs:
9898 publish :
9999 runs-on : ubuntu-latest
100100 permissions :
101- contents : read
101+ contents : write
102102 packages : write
103103 steps :
104104 - uses : actions/checkout@v4
105+ with :
106+ token : ${{ secrets.GITHUB_TOKEN }}
105107 - uses : actions/setup-node@v4
106108 with :
107- node-version : ' 18 '
109+ node-version : ' 20 '
108110 registry-url : ' https://npm.pkg.github.com'
109111 scope : ' @yourusername' # 替换为您的GitHub用户名
110- - run : npm ci && npm run build
112+ - name : Install dependencies and build
113+ run : |
114+ rm -rf package-lock.json node_modules
115+ npm install
116+ npm run build
111117 env :
112118 NODE_AUTH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
113- - run : npm publish
119+ - name : Update version and publish
120+ run : |
121+ npm version patch --no-git-tag-version
122+ npm publish
114123 env :
115124 NODE_AUTH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
125+ - name : Commit and push version update
126+ run : |
127+ git config --local user.email "[email protected] " 128+ git config --local user.name "GitHub Action"
129+ git add package.json
130+ git commit -m "Auto update version for npm publish"
131+ git push
116132` ` `
117133
134+ **关键改进:**
135+ - 自动递增补丁版本号(如 1.0.0 → 1.0.1)
136+ - 自动提交版本更新到仓库
137+ - 避免版本冲突错误
138+
118139---
119140
120141### **2. 前端仓库配置**
@@ -172,8 +193,13 @@ jobs:
172193---
173194
174195## **总结**
175- 1. 后端:每次推送到` main`分支时,自动发布新版本的契约包 。
196+ 1. 后端:每次推送到` main`分支时,自动递增版本号并发布新版本的契约包 。
1761972. 前端:通过`.npmrc`和PAT令牌安装最新版本的契约包。
1771983. 开发:直接导入类型,享受完整的类型安全。
178199
200+ **自动版本管理:**
201+ - 每次推送都会自动递增补丁版本号(1.0.0 → 1.0.1 → 1.0.2...)
202+ - 版本更新会自动提交到仓库
203+ - 避免版本冲突,确保每次都能成功发布
204+
179205这样,无论您的GitHub用户名是什么,都可以轻松实现前后端类型同步!
You can’t perform that action at this time.
0 commit comments