Skip to content

Commit 2f00f3b

Browse files
committed
added workflow and updated keys
1 parent 6e8258c commit 2f00f3b

4 files changed

Lines changed: 209 additions & 10 deletions

File tree

.github/workflows/release.yml

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
name: Auto Release & Publish
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
permissions:
9+
contents: write
10+
id-token: write
11+
12+
jobs:
13+
publish-core:
14+
name: Publish qrlayout-core
15+
runs-on: ubuntu-latest
16+
steps:
17+
- name: Checkout
18+
uses: actions/checkout@v4
19+
with:
20+
fetch-depth: 0
21+
22+
- name: Setup Node.js
23+
uses: actions/setup-node@v4
24+
with:
25+
node-version: '20'
26+
registry-url: 'https://registry.npmjs.org'
27+
28+
- name: Get core version
29+
id: core_pkg
30+
run: |
31+
VERSION=$(node -p "require('./packages/core/package.json').version")
32+
echo "version=$VERSION" >> $GITHUB_OUTPUT
33+
echo "Core version: $VERSION"
34+
35+
- name: Check if core tag exists
36+
id: core_tag
37+
run: |
38+
git fetch --tags
39+
if git rev-parse "qrlayout-core@${{ steps.core_pkg.outputs.version }}" >/dev/null 2>&1; then
40+
echo "exists=true" >> $GITHUB_OUTPUT
41+
echo "qrlayout-core@${{ steps.core_pkg.outputs.version }} already published — skipping"
42+
else
43+
echo "exists=false" >> $GITHUB_OUTPUT
44+
echo "qrlayout-core@${{ steps.core_pkg.outputs.version }} not found — will publish"
45+
fi
46+
47+
- name: Install dependencies
48+
if: steps.core_tag.outputs.exists == 'false'
49+
run: npm ci
50+
51+
- name: Build core
52+
if: steps.core_tag.outputs.exists == 'false'
53+
run: npm run build:core
54+
55+
- name: Publish qrlayout-core
56+
if: steps.core_tag.outputs.exists == 'false'
57+
run: |
58+
cd packages/core
59+
echo "Publishing qrlayout-core@${{ steps.core_pkg.outputs.version }}..."
60+
npm publish --access public
61+
echo "Done!"
62+
env:
63+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
64+
65+
- name: Create GitHub Release for core
66+
if: steps.core_tag.outputs.exists == 'false'
67+
uses: softprops/action-gh-release@v2
68+
with:
69+
tag_name: qrlayout-core@${{ steps.core_pkg.outputs.version }}
70+
name: qrlayout-core v${{ steps.core_pkg.outputs.version }}
71+
body: |
72+
## qrlayout-core v${{ steps.core_pkg.outputs.version }}
73+
74+
### Install
75+
```bash
76+
npm i qrlayout-core
77+
```
78+
79+
See [CHANGELOG](https://github.com/shashi089/qr-code-layout-generate-tool/blob/main/packages/core/CHANGELOG.md) for details.
80+
draft: false
81+
prerelease: false
82+
env:
83+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
84+
85+
publish-ui:
86+
name: Publish qrlayout-ui
87+
runs-on: ubuntu-latest
88+
needs: publish-core
89+
steps:
90+
- name: Checkout
91+
uses: actions/checkout@v4
92+
with:
93+
fetch-depth: 0
94+
95+
- name: Setup Node.js
96+
uses: actions/setup-node@v4
97+
with:
98+
node-version: '20'
99+
registry-url: 'https://registry.npmjs.org'
100+
101+
- name: Get ui version
102+
id: ui_pkg
103+
run: |
104+
VERSION=$(node -p "require('./packages/ui/package.json').version")
105+
echo "version=$VERSION" >> $GITHUB_OUTPUT
106+
echo "UI version: $VERSION"
107+
108+
- name: Check if ui tag exists
109+
id: ui_tag
110+
run: |
111+
git fetch --tags
112+
if git rev-parse "qrlayout-ui@${{ steps.ui_pkg.outputs.version }}" >/dev/null 2>&1; then
113+
echo "exists=true" >> $GITHUB_OUTPUT
114+
echo "qrlayout-ui@${{ steps.ui_pkg.outputs.version }} already published — skipping"
115+
else
116+
echo "exists=false" >> $GITHUB_OUTPUT
117+
echo "qrlayout-ui@${{ steps.ui_pkg.outputs.version }} not found — will publish"
118+
fi
119+
120+
- name: Install dependencies
121+
if: steps.ui_tag.outputs.exists == 'false'
122+
run: npm ci
123+
124+
- name: Build ui
125+
if: steps.ui_tag.outputs.exists == 'false'
126+
run: npm run build:ui
127+
128+
- name: Publish qrlayout-ui
129+
if: steps.ui_tag.outputs.exists == 'false'
130+
run: |
131+
cd packages/ui
132+
echo "Publishing qrlayout-ui@${{ steps.ui_pkg.outputs.version }}..."
133+
npm publish --access public
134+
echo "Done!"
135+
env:
136+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
137+
138+
- name: Create GitHub Release for ui
139+
if: steps.ui_tag.outputs.exists == 'false'
140+
uses: softprops/action-gh-release@v2
141+
with:
142+
tag_name: qrlayout-ui@${{ steps.ui_pkg.outputs.version }}
143+
name: qrlayout-ui v${{ steps.ui_pkg.outputs.version }}
144+
body: |
145+
## qrlayout-ui v${{ steps.ui_pkg.outputs.version }}
146+
147+
### Install
148+
```bash
149+
npm i qrlayout-ui
150+
```
151+
152+
See [CHANGELOG](https://github.com/shashi089/qr-code-layout-generate-tool/blob/main/packages/ui/CHANGELOG.md) for details.
153+
draft: false
154+
prerelease: false
155+
env:
156+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

package.json

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"name": "qr-layout-workspace",
3+
"version": "0.0.0",
34
"private": true,
45
"description": "Monorepo for QR Layout Tool - A professional-grade engine for designing and printing QR code layouts.",
56
"keywords": [
@@ -14,18 +15,31 @@
1415
"typescript",
1516
"low-code"
1617
],
18+
"author": "Shashidhar Naik <shashidharnaik8@gmail.com>",
1719
"license": "MIT",
20+
"homepage": "https://github.com/shashi089/qr-code-layout-generate-tool#readme",
21+
"bugs": {
22+
"url": "https://github.com/shashi089/qr-code-layout-generate-tool/issues"
23+
},
1824
"repository": {
1925
"type": "git",
2026
"url": "git+https://github.com/shashi089/qr-code-layout-generate-tool.git"
2127
},
28+
"engines": {
29+
"node": ">=16.0.0"
30+
},
2231
"workspaces": [
2332
"packages/*"
2433
],
2534
"scripts": {
2635
"dev:ui": "npm --workspace packages/ui run dev",
2736
"build:core": "npm --workspace packages/core run build",
2837
"build:ui": "npm --workspace packages/ui run build",
29-
"build": "npm run build:core && npm run build:ui"
38+
"build": "npm run build:core && npm run build:ui",
39+
"publish:core": "npm --workspace packages/core publish --access public",
40+
"publish:ui": "npm --workspace packages/ui publish --access public",
41+
"publish:all": "npm run publish:core && npm run publish:ui",
42+
"version:core": "npm --workspace packages/core version",
43+
"version:ui": "npm --workspace packages/ui version"
3044
}
31-
}
45+
}

packages/core/package.json

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "qrlayout-core",
3-
"version": "1.1.5",
4-
"description": "Headless rendering engine for QR code layouts, supporting ZPL, PDF, and Canvas.",
3+
"version": "1.1.6",
4+
"description": "Headless QR code label rendering engine — generate ZPL, PDF, PNG layouts from JSON. Works in browser and Node.js.",
55
"keywords": [
66
"qr-code",
77
"qr-layout",
@@ -18,15 +18,28 @@
1818
"barcode",
1919
"typescript",
2020
"nodejs",
21-
"canvas-rendering"
21+
"canvas-rendering",
22+
"label-designer",
23+
"mail-merge",
24+
"layout-engine",
25+
"react",
26+
"vue",
27+
"svelte"
2228
],
2329
"author": "Shashidhar Naik <shashidharnaik8@gmail.com>",
2430
"license": "MIT",
31+
"homepage": "https://github.com/shashi089/qr-code-layout-generate-tool/tree/main/packages/core#readme",
32+
"bugs": {
33+
"url": "https://github.com/shashi089/qr-code-layout-generate-tool/issues"
34+
},
2535
"repository": {
2636
"type": "git",
2737
"url": "git+https://github.com/shashi089/qr-code-layout-generate-tool.git",
2838
"directory": "packages/core"
2939
},
40+
"engines": {
41+
"node": ">=16.0.0"
42+
},
3043
"type": "module",
3144
"main": "dist/index.js",
3245
"module": "dist/index.js",
@@ -63,4 +76,4 @@
6376
"@types/qrcode": "^1.5.6",
6477
"typescript": "^5.3.3"
6578
}
66-
}
79+
}

packages/ui/package.json

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "qrlayout-ui",
3-
"version": "1.0.9",
4-
"description": "A framework-agnostic visual designer UI for QR code and label layouts.",
3+
"version": "1.0.10",
4+
"description": "Embeddable drag-and-drop QR label designer — works in React, Vue, Svelte, Angular and vanilla JS. Pairs with qrlayout-core.",
55
"keywords": [
66
"qr-code",
77
"qr-layout",
@@ -19,15 +19,28 @@
1919
"label-printing",
2020
"sticker-designer",
2121
"typescript",
22-
"framework-agnostic"
22+
"framework-agnostic",
23+
"zpl",
24+
"zebra-printer",
25+
"thermal-printer",
26+
"embeddable",
27+
"headless-ui",
28+
"pdf-export"
2329
],
2430
"author": "Shashidhar Naik <shashidharnaik8@gmail.com>",
2531
"license": "MIT",
32+
"homepage": "https://github.com/shashi089/qr-code-layout-generate-tool/tree/main/packages/ui#readme",
33+
"bugs": {
34+
"url": "https://github.com/shashi089/qr-code-layout-generate-tool/issues"
35+
},
2636
"repository": {
2737
"type": "git",
2838
"url": "git+https://github.com/shashi089/qr-code-layout-generate-tool.git",
2939
"directory": "packages/ui"
3040
},
41+
"engines": {
42+
"node": ">=16.0.0"
43+
},
3144
"private": false,
3245
"type": "module",
3346
"files": [
@@ -54,9 +67,12 @@
5467
"dependencies": {
5568
"qrlayout-core": "^1.1.1"
5669
},
70+
"peerDependencies": {
71+
"qrlayout-core": ">=1.1.1"
72+
},
5773
"devDependencies": {
5874
"typescript": "^5.3.3",
5975
"vite": "^7.2.7",
6076
"vite-plugin-dts": "^4.5.4"
6177
}
62-
}
78+
}

0 commit comments

Comments
 (0)