Skip to content

Commit dee9917

Browse files
authored
publishing (#723)
- **make packages public for npm publishing** - **add publish script**
2 parents 3b98e5b + bce6262 commit dee9917

File tree

9 files changed

+162
-5
lines changed

9 files changed

+162
-5
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

packages/client/package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
{
22
"name": "@vue-skuilder/client",
3+
"private": false,
4+
"publishConfig": {
5+
"access": "public"
6+
},
37
"version": "0.1.0",
4-
"private": true,
58
"license": "MIT",
69
"main": "dist/index.js",
710
"module": "dist/index.esm.js",

packages/common-ui/package.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
{
22
"name": "@vue-skuilder/common-ui",
3+
"private": false,
4+
"publishConfig": {
5+
"access": "public"
6+
},
37
"version": "0.1.0",
48
"main": "./dist/common-ui.umd.js",
59
"module": "./dist/common-ui.es.js",

packages/common/package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
{
22
"name": "@vue-skuilder/common",
3-
"private": true,
3+
"private": false,
4+
"publishConfig": {
5+
"access": "public"
6+
},
47
"version": "0.1.0",
58
"type": "module",
69
"main": "dist/index.js",

packages/courses/package.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
{
22
"name": "@vue-skuilder/courses",
3+
"private": false,
4+
"publishConfig": {
5+
"access": "public"
6+
},
37
"version": "0.1.0",
48
"type": "module",
59
"main": "./dist/index.cjs.js",

packages/db/package.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
{
22
"name": "@vue-skuilder/db",
3+
"private": false,
4+
"publishConfig": {
5+
"access": "public"
6+
},
37
"version": "0.1.0",
48
"description": "Database layer for vue-skuilder",
59
"main": "dist/index.js",

packages/express/package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
{
22
"name": "@vue-skuilder/express",
3+
"private": false,
4+
"publishConfig": {
5+
"access": "public"
6+
},
37
"version": "0.1.0",
48
"description": "an API",
59
"main": "dist/app.js",
@@ -17,7 +21,6 @@
1721
"type-check": "tsc --noEmit"
1822
},
1923
"packageManager": "yarn@4.6.0",
20-
"private": true,
2124
"author": "Colin Kennedy",
2225
"license": "GPL-3.0-or-later",
2326
"dependencies": {

packages/platform-ui/package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
{
22
"name": "@vue-skuilder/platform-ui",
3-
"private": true,
3+
"private": false,
4+
"publishConfig": {
5+
"access": "public"
6+
},
47
"version": "0.1.0",
58
"scripts": {
69
"dev": "vite",

packages/standalone-ui/package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
{
22
"name": "@vue-skuilder/standalone-ui",
3+
"private": false,
4+
"publishConfig": {
5+
"access": "public"
6+
},
37
"version": "0.1.0",
4-
"private": true,
58
"type": "module",
69
"scripts": {
710
"dev": "vite",

0 commit comments

Comments
 (0)