Skip to content

Commit 5ec36d6

Browse files
feat: add release workflow for npm publishing on merging changeset PR (#1015)
1 parent 9b3d92b commit 5ec36d6

File tree

2 files changed

+68
-59
lines changed

2 files changed

+68
-59
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
name: Release to npm
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- main
7+
types:
8+
- closed
9+
10+
jobs:
11+
publish-to-npm:
12+
name: Publish to npm Registry
13+
runs-on: ubuntu-latest
14+
if: github.head_ref == 'changeset-release/main'
15+
steps:
16+
- name: Check out code
17+
uses: actions/checkout@v3
18+
- uses: pnpm/action-setup@v4.0.0
19+
with:
20+
version: 6.32.2
21+
- name: Setup Node.js environment
22+
uses: actions/setup-node@v3
23+
with:
24+
node-version-file: ".nvmrc"
25+
cache: "pnpm"
26+
27+
- name: Install dependencies
28+
run: pnpm install
29+
30+
- name: Build packages
31+
run: pnpm run build --filter=./packages
32+
33+
# Delete existing .npmrc file if it exists
34+
- name: Delete existing .npmrc
35+
run: |
36+
if [ -f .npmrc ]; then
37+
echo "Deleting existing .npmrc file"
38+
rm .npmrc
39+
fi
40+
41+
- name: Create .npmrc for npm Registry
42+
run: |
43+
echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc
44+
echo "registry=https://registry.npmjs.org/" >> ~/.npmrc
45+
46+
- name: Publish Framework Package
47+
run: |
48+
current_version=$(jq -r '.version' packages/framework/package.json)
49+
latest_version=$(npm show @ensembleui/react-framework version || echo "none")
50+
51+
if [ "$current_version" != "$latest_version" ]; then
52+
echo "Publishing @ensembleui/react-framework version $current_version"
53+
pnpm publish --filter ./packages/framework --no-git-checks
54+
else
55+
echo "No version change detected for @ensembleui/react-framework. Skipping publish."
56+
fi
57+
58+
- name: Publish Runtime Package
59+
run: |
60+
current_version=$(jq -r '.version' packages/runtime/package.json)
61+
latest_version=$(npm show @ensembleui/react-runtime version || echo "none")
62+
63+
if [ "$current_version" != "$latest_version" ]; then
64+
echo "Publishing @ensembleui/react-runtime version $current_version"
65+
pnpm publish --filter ./packages/runtime --no-git-checks
66+
else
67+
echo "No version change detected for @ensembleui/react-runtime. Skipping publish."
68+
fi

.github/workflows/release.yml

Lines changed: 0 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -59,62 +59,3 @@ jobs:
5959
destination: "ensemble-react-starter"
6060
parent: false
6161
glob: "*.zip"
62-
63-
publish-to-npm:
64-
name: Publish to npm Registry
65-
runs-on: ubuntu-latest
66-
needs: release
67-
steps:
68-
- name: Check out code
69-
uses: actions/checkout@v3
70-
- uses: pnpm/action-setup@v4.0.0
71-
with:
72-
version: 6.32.2
73-
- name: Setup Node.js environment
74-
uses: actions/setup-node@v3
75-
with:
76-
node-version-file: ".nvmrc"
77-
cache: "pnpm"
78-
79-
- name: Install dependencies
80-
run: pnpm install
81-
82-
- name: Build packages
83-
run: pnpm run build --filter=./packages
84-
85-
# Delete existing .npmrc file if it exists
86-
- name: Delete existing .npmrc
87-
run: |
88-
if [ -f .npmrc ]; then
89-
echo "Deleting existing .npmrc file"
90-
rm .npmrc
91-
fi
92-
93-
- name: Create .npmrc for npm Registry
94-
run: |
95-
echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc
96-
echo "registry=https://registry.npmjs.org/" >> ~/.npmrc
97-
98-
- name: Publish Framework Package
99-
run: |
100-
current_version=$(jq -r '.version' packages/framework/package.json)
101-
latest_version=$(npm show @ensembleui/react-framework version || echo "none")
102-
103-
if [ "$current_version" != "$latest_version" ]; then
104-
echo "Publishing @ensembleui/react-framework version $current_version"
105-
pnpm publish --filter ./packages/framework --no-git-checks
106-
else
107-
echo "No version change detected for @ensembleui/react-framework. Skipping publish."
108-
fi
109-
110-
- name: Publish Runtime Package
111-
run: |
112-
current_version=$(jq -r '.version' packages/runtime/package.json)
113-
latest_version=$(npm show @ensembleui/react-runtime version || echo "none")
114-
115-
if [ "$current_version" != "$latest_version" ]; then
116-
echo "Publishing @ensembleui/react-runtime version $current_version"
117-
pnpm publish --filter ./packages/runtime --no-git-checks
118-
else
119-
echo "No version change detected for @ensembleui/react-runtime. Skipping publish."
120-
fi

0 commit comments

Comments
 (0)