Skip to content

Commit cbcc756

Browse files
committed
Tweak publishing setup
1 parent ffedb26 commit cbcc756

3 files changed

Lines changed: 60 additions & 17 deletions

File tree

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: Setup CI
2+
3+
inputs:
4+
node-version:
5+
description: "Node.js version"
6+
required: false
7+
default: 22
8+
9+
runs:
10+
using: composite
11+
steps:
12+
- name: Set up pnpm
13+
uses: pnpm/action-setup@91ab88e2619ed1f46221f0ba42d1492c02baf788 # v6.0.6
14+
15+
- name: Setup Node.js ${{ inputs.node-version }}
16+
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
17+
with:
18+
node-version: ${{ inputs.node-version }}
19+
cache: pnpm
20+
21+
- name: Install dependencies
22+
shell: bash
23+
run: pnpm install

.github/workflows/publish.yml

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,33 +7,49 @@ on:
77

88
concurrency: ${{ github.workflow }}-${{ github.ref }}
99

10+
permissions: {} # each job should define its own permission explicitly
11+
1012
jobs:
11-
publish:
12-
name: Publish
13-
if: github.repository == 'changesets/format'
13+
version:
14+
name: Version
1415
runs-on: ubuntu-latest
16+
timeout-minutes: 20
17+
outputs:
18+
hasChangesets: ${{ steps.changesets.outputs.hasChangesets }}
1519
permissions:
1620
contents: write # to create release (changesets/action)
21+
issues: write # to post issue comments (changesets/action)
1722
pull-requests: write # to create pull request (changesets/action)
18-
id-token: write # to use OpenID Connect token for trusted publishing (changesets/action)
1923
steps:
20-
- name: Check out repo
21-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
24+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
25+
- uses: ./.github/actions/ci-setup
2226

23-
- name: Set up pnpm
24-
uses: pnpm/action-setup@91ab88e2619ed1f46221f0ba42d1492c02baf788 # v6.0.6
27+
- name: Create or update release pull request
28+
id: changesets
29+
# https://github.com/changesets/action
30+
uses: changesets/action@63a615b9cd06ba9a3e6d13796c7fbcb080a60a0b # v1.8.0
2531

26-
- name: Set up Node.js
27-
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
32+
publish:
33+
name: Publish
34+
if: needs.version.outputs.hasChangesets == 'false'
35+
needs: version
36+
runs-on: ubuntu-latest
37+
environment: npm
38+
timeout-minutes: 20
39+
permissions:
40+
contents: write # to create release (changesets/action)
41+
id-token: write # to use OpenID Connect token for trusted publishing (changesets/action)
42+
steps:
43+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
44+
- uses: ./.github/actions/ci-setup
2845
with:
2946
node-version: 24
30-
cache: pnpm
31-
32-
- name: Install dependencies
33-
run: pnpm install
3447

3548
- name: Build
3649
run: pnpm build
3750

38-
- name: Create release PR or publish to npm
51+
- name: Publish to npm
52+
# https://github.com/changesets/action
3953
uses: changesets/action@63a615b9cd06ba9a3e6d13796c7fbcb080a60a0b # v1.8.0
54+
with:
55+
publish: pnpm release

package.json

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
"test": "vitest",
1616
"format": "oxfmt",
1717
"lint": "oxfmt --check",
18-
"typecheck": "tsc"
18+
"typecheck": "tsc",
19+
"release": "changeset publish"
1920
},
2021
"dependencies": {
2122
"package-manager-detector": "^1.6.0"
@@ -30,5 +31,8 @@
3031
"typescript": "~6.0.3",
3132
"vitest": "^4.1.5"
3233
},
33-
"packageManager": "pnpm@11.1.0"
34+
"packageManager": "pnpm@11.1.0",
35+
"engines": {
36+
"node": "^22.11 || ^24 || >=26"
37+
}
3438
}

0 commit comments

Comments
 (0)