Skip to content

Commit 94469eb

Browse files
arvclaude
andcommitted
ci: give prebuild jobs contents:write so release uploads work
The prebuild jobs run `prebuild -u $GITHUB_TOKEN`, which uploads the built .node binaries to the GitHub release. That needs `contents: write`, but this repo's default workflow token is read-only (default_workflow_permissions: read), so the uploads would 403 and prebuild-install would find no binaries. Add `permissions: contents: write` to each of the 7 prebuild jobs. No trigger or flow change — releases are still cut via the `release` event (manual `npm version` + publishing a GitHub Release). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 6435e06 commit 94469eb

1 file changed

Lines changed: 14 additions & 0 deletions

File tree

.github/workflows/build.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,8 @@ jobs:
145145

146146
prebuild:
147147
if: ${{ github.event_name == 'release' }}
148+
permissions:
149+
contents: write # prebuild -u uploads the .node assets to the GitHub release
148150
strategy:
149151
fail-fast: false
150152
matrix:
@@ -176,6 +178,8 @@ jobs:
176178
177179
prebuild-linux-x64:
178180
if: ${{ github.event_name == 'release' }}
181+
permissions:
182+
contents: write # prebuild -u uploads the .node assets to the GitHub release
179183
name: Prebuild on Linux x64
180184
runs-on: ubuntu-latest
181185
container: node:20-bullseye
@@ -188,6 +192,8 @@ jobs:
188192

189193
prebuild-linux-x64-node-modern:
190194
if: ${{ github.event_name == 'release' }}
195+
permissions:
196+
contents: write # prebuild -u uploads the .node assets to the GitHub release
191197
name: Prebuild on Linux x64 (Node 25+)
192198
runs-on: ubuntu-latest
193199
container: node:20-bookworm
@@ -200,6 +206,8 @@ jobs:
200206

201207
prebuild-alpine:
202208
if: ${{ github.event_name == 'release' }}
209+
permissions:
210+
contents: write # prebuild -u uploads the .node assets to the GitHub release
203211
name: Prebuild on alpine
204212
runs-on: ubuntu-latest
205213
container: node:20-alpine
@@ -213,6 +221,8 @@ jobs:
213221

214222
prebuild-alpine-arm:
215223
if: ${{ github.event_name == 'release' }}
224+
permissions:
225+
contents: write # prebuild -u uploads the .node assets to the GitHub release
216226
strategy:
217227
fail-fast: false
218228
matrix:
@@ -235,6 +245,8 @@ jobs:
235245
236246
prebuild-linux-arm:
237247
if: ${{ github.event_name == 'release' }}
248+
permissions:
249+
contents: write # prebuild -u uploads the .node assets to the GitHub release
238250
strategy:
239251
fail-fast: false
240252
matrix:
@@ -256,6 +268,8 @@ jobs:
256268
257269
prebuild-linux-arm-node-modern:
258270
if: ${{ github.event_name == 'release' }}
271+
permissions:
272+
contents: write # prebuild -u uploads the .node assets to the GitHub release
259273
strategy:
260274
fail-fast: false
261275
matrix:

0 commit comments

Comments
 (0)