Skip to content

Commit b46f066

Browse files
authored
feat: add pr-release (#144)
1 parent 35b64f9 commit b46f066

File tree

4 files changed

+319
-1
lines changed

4 files changed

+319
-1
lines changed

.github/workflows/pr-release.yaml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Release to @pr-<number> tag on npm
2+
on:
3+
pull_request:
4+
workflow_dispatch:
5+
6+
jobs:
7+
release-pr:
8+
name: 'Release PR to npm'
9+
runs-on: buildjet-4vcpu-ubuntu-2204
10+
# comment out if:false to enable release PR to npm
11+
# if: false
12+
permissions: write-all
13+
steps:
14+
- uses: actions/checkout@v3
15+
with:
16+
# need this to get full git-history/clone in order to build changelogs and check changesets
17+
fetch-depth: 0
18+
ref: ${{ github.event.pull_request.head.ref }}
19+
20+
- uses: FuelLabs/github-actions/setups/node@master
21+
with:
22+
node-version: 20.11.0
23+
pnpm-version: 8.15.7
24+
- uses: FuelLabs/github-actions/setups/npm@master
25+
with:
26+
npm-token: ${{ secrets.NPM_TOKEN }}
27+
28+
- name: Build
29+
run: pnpm build
30+
31+
- name: Release to @pr-${{ github.event.pull_request.number }} tag on npm
32+
id: release
33+
run: |
34+
pnpm changeset:next
35+
git add .changeset/fuel-labs-ci.md
36+
pnpm changeset version --snapshot pr-${{ env.PR_NUMBER }}
37+
changetsets=$(pnpm changeset publish --tag pr-${{ env.PR_NUMBER }})
38+
published_version=$(echo "$changetsets" | grep -oP '@\K([0-9]+\.){2}[0-9]+-pr-${{ env.PR_NUMBER }}-\d+' | head -1)
39+
echo "published_version=$published_version" >> $GITHUB_OUTPUT
40+
env:
41+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
42+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
43+
PR_NUMBER: ${{ github.event.pull_request.number }}
44+
45+
- uses: mshick/add-pr-comment@v2
46+
with:
47+
message: |
48+
This PR is published in NPM with version **${{ steps.release.outputs.published_version }}**
49+
env:
50+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
"lint:ci": "biome lint --max-diagnostics=1000 --diagnostic-level=error .",
1616
"format": "biome format --write .",
1717
"changeset": "changeset",
18+
"changeset:next": "tsx ./scripts/changeset-next",
1819
"packages:version": "node ./scripts/version.js",
1920
"prepare": "husky"
2021
},
@@ -28,10 +29,10 @@
2829
"compare-versions": "6.1.0",
2930
"husky": "9.0.11",
3031
"lint-staged": "15.2.2",
32+
"tsx": "^4.16.2",
3133
"turbo": "1.13.3",
3234
"vitest": "1.6.0"
3335
},
34-
"packageManager": "pnpm@8.9.0",
3536
"engines": {
3637
"node": ">=18",
3738
"pnpm": ">=8"

0 commit comments

Comments
 (0)