Skip to content

Commit 5c573bf

Browse files
yosriadyclaude
andauthored
Add release workflow (#4)
* Add release workflow * Pin pnpm version via packageManager field Fixes CI failure where pnpm/action-setup couldn't determine which pnpm version to install. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent b9eee2c commit 5c573bf

3 files changed

Lines changed: 22 additions & 26 deletions

File tree

.github/workflows/ci.yml

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: CLI CI
1+
name: Formo CLI CI Check
22

33
on:
44
pull_request:
@@ -17,71 +17,65 @@ jobs:
1717
runs-on: ubuntu-latest
1818
steps:
1919
- name: Checkout
20-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.0.0
20+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
2121

2222
- name: Setup pnpm
2323
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
24-
with:
25-
version: 10
2624

2725
- name: Setup Node
28-
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v4.3.0
26+
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
2927
with:
3028
node-version: "22.14.0"
3129
cache: 'pnpm'
3230

3331
- name: Install dependencies
3432
run: pnpm install --frozen-lockfile
3533

36-
- name: Build
34+
- name: Build CLI
3735
run: pnpm build
3836

3937
lint:
4038
runs-on: ubuntu-latest
4139
needs: build
4240
steps:
4341
- name: Checkout
44-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.0.0
42+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
4543

4644
- name: Setup pnpm
4745
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
48-
with:
49-
version: 10
5046

5147
- name: Setup Node
52-
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v4.3.0
48+
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
5349
with:
5450
node-version: "22.14.0"
5551
cache: 'pnpm'
5652

5753
- name: Install dependencies
5854
run: pnpm install --frozen-lockfile
5955

60-
- name: Lint
56+
- name: Run lint
6157
run: pnpm lint
6258

6359
test:
6460
runs-on: ubuntu-latest
6561
needs: [build, lint]
6662
steps:
6763
- name: Checkout
68-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.0.0
64+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
6965

7066
- name: Setup pnpm
7167
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
72-
with:
73-
version: 10
7468

7569
- name: Setup Node
76-
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v4.3.0
70+
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
7771
with:
7872
node-version: "22.14.0"
7973
cache: 'pnpm'
8074

8175
- name: Install dependencies
8276
run: pnpm install --frozen-lockfile
8377

84-
- name: Test
78+
- name: Run tests
8579
run: pnpm test
8680
env:
8781
TEST_TOKEN: ${{ secrets.TEST_TOKEN }}

.github/workflows/release.yml

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@ on:
66
- 'v*'
77

88
permissions:
9-
id-token: write # Required for npm provenance attestation
9+
id-token: write # Required for OIDC trusted publishing
1010
contents: write # Required for creating GitHub releases
1111

1212
jobs:
1313
publish:
1414
runs-on: ubuntu-latest
1515
steps:
1616
- name: Checkout
17-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.0.0
17+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
1818
with:
1919
fetch-depth: 0
2020

@@ -29,15 +29,16 @@ jobs:
2929
3030
- name: Setup pnpm
3131
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
32-
with:
33-
version: 10
3432

3533
- name: Setup Node
36-
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v4.3.0
34+
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
3735
with:
3836
node-version: "22.14.0"
3937
cache: 'pnpm'
40-
registry-url: 'https://registry.npmjs.org'
38+
# No registry-url - using OIDC trusted publishing instead
39+
40+
- name: Update npm for trusted publishing
41+
run: npm install -g npm@latest
4142

4243
- name: Install dependencies
4344
run: pnpm install --frozen-lockfile
@@ -68,9 +69,9 @@ jobs:
6869
TEST_TOKEN: ${{ secrets.TEST_TOKEN }}
6970

7071
- name: Publish to npm
71-
run: npm publish --access public --provenance
72-
env:
73-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
72+
run: npm publish --provenance
73+
# Explicitly use --provenance flag for clarity
74+
# OIDC trusted publishing (id-token: write) enables automatic provenance generation
7475

7576
- name: Generate release notes
7677
id: release_notes
@@ -158,7 +159,7 @@ jobs:
158159
EOF
159160
160161
- name: Create GitHub Release
161-
uses: softprops/action-gh-release@153bb8e04406b158c6c84fc1615b65b24149a1fe # v2.6.1
162+
uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0
162163
with:
163164
body_path: release_notes.md
164165
draft: false

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"name": "@formo/cli",
33
"version": "0.2.0",
4+
"packageManager": "pnpm@10.28.2",
45
"description": "Formo API CLI — query profiles and analytics data",
56
"bin": {
67
"formo": "dist/index.js"

0 commit comments

Comments
 (0)