Skip to content

Commit bce6262

Browse files
committed
add publish script
1 parent 29510d3 commit bce6262

File tree

1 file changed

+130
-0
lines changed

1 file changed

+130
-0
lines changed

.github/workflows/publish-npm.yml

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
name: Publish to NPM
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
jobs:
9+
publish:
10+
runs-on: ubuntu-latest
11+
permissions:
12+
contents: read
13+
id-token: write
14+
steps:
15+
- name: Checkout repository
16+
uses: actions/checkout@v4
17+
18+
- name: Setup Node.js
19+
uses: actions/setup-node@v4
20+
with:
21+
node-version: 18
22+
cache: 'yarn'
23+
registry-url: 'https://registry.npmjs.org'
24+
25+
- name: Install Yarn
26+
run: corepack enable
27+
28+
- name: Install dependencies
29+
run: yarn install --immutable
30+
31+
- name: Lint packages
32+
run: |
33+
yarn workspace @vue-skuilder/common lint:check
34+
yarn workspace @vue-skuilder/db lint:check
35+
yarn workspace @vue-skuilder/express lint:check
36+
37+
- name: Type check packages
38+
run: |
39+
yarn workspace @vue-skuilder/express type-check
40+
yarn workspace @vue-skuilder/courses type-check
41+
42+
- name: Build packages in dependency order
43+
run: |
44+
echo "Building common package..."
45+
yarn workspace @vue-skuilder/common build
46+
47+
echo "Building db package..."
48+
yarn workspace @vue-skuilder/db build
49+
50+
echo "Building common-ui package..."
51+
yarn workspace @vue-skuilder/common-ui build
52+
53+
echo "Building courses package..."
54+
yarn workspace @vue-skuilder/courses build
55+
56+
echo "Building client package..."
57+
yarn workspace @vue-skuilder/client build
58+
59+
echo "Building platform-ui package..."
60+
yarn workspace @vue-skuilder/platform-ui build
61+
62+
echo "Building standalone-ui package..."
63+
yarn workspace @vue-skuilder/standalone-ui build
64+
65+
echo "Building express package..."
66+
yarn workspace @vue-skuilder/express build
67+
68+
- name: Verify build outputs
69+
run: |
70+
for package in common db common-ui courses client platform-ui standalone-ui express; do
71+
if [ ! -d "packages/$package/dist" ]; then
72+
echo "Error: dist directory not found for @vue-skuilder/$package"
73+
exit 1
74+
fi
75+
echo "✓ @vue-skuilder/$package build output verified"
76+
done
77+
78+
- name: Publish packages in dependency order
79+
env:
80+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
81+
run: |
82+
set -e
83+
84+
echo "Publishing @vue-skuilder/common..."
85+
cd packages/common && npm publish --access public
86+
87+
echo "Publishing @vue-skuilder/db..."
88+
cd ../db && npm publish --access public
89+
90+
echo "Publishing @vue-skuilder/common-ui..."
91+
cd ../common-ui && npm publish --access public
92+
93+
echo "Publishing @vue-skuilder/courses..."
94+
cd ../courses && npm publish --access public
95+
96+
echo "Publishing @vue-skuilder/client..."
97+
cd ../client && npm publish --access public
98+
99+
echo "Publishing @vue-skuilder/platform-ui..."
100+
cd ../platform-ui && npm publish --access public
101+
102+
echo "Publishing @vue-skuilder/standalone-ui..."
103+
cd ../standalone-ui && npm publish --access public
104+
105+
echo "Publishing @vue-skuilder/express..."
106+
cd ../express && npm publish --access public
107+
108+
echo "All packages published successfully!"
109+
110+
- name: Create GitHub Release
111+
uses: actions/create-release@v1
112+
env:
113+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
114+
with:
115+
tag_name: ${{ github.ref }}
116+
release_name: Release ${{ github.ref }}
117+
body: |
118+
Automated release for vue-skuilder packages
119+
120+
Published packages:
121+
- @vue-skuilder/common
122+
- @vue-skuilder/db
123+
- @vue-skuilder/common-ui
124+
- @vue-skuilder/courses
125+
- @vue-skuilder/client
126+
- @vue-skuilder/platform-ui
127+
- @vue-skuilder/standalone-ui
128+
- @vue-skuilder/express
129+
draft: false
130+
prerelease: false

0 commit comments

Comments
 (0)