ci: switch npm publish to OIDC trusted publishing
Replaces NPM_TOKEN secret with id-token: write + --provenance so publishing uses GitHub's OIDC token directly. No repository secret required; provenance attestation is generated automatically. Also collapses the redundant second setup-node step (registry-url is now set on the first one). Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
@@ -29,24 +29,21 @@ jobs:
|
|||||||
needs: test
|
needs: test
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: github.ref == 'refs/heads/master' && github.event_name == 'push'
|
if: github.ref == 'refs/heads/master' && github.event_name == 'push'
|
||||||
|
permissions:
|
||||||
|
id-token: write
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: "22"
|
node-version: "22"
|
||||||
|
registry-url: "https://registry.npmjs.org"
|
||||||
cache: "npm"
|
cache: "npm"
|
||||||
|
|
||||||
- run: npm ci
|
- run: npm ci
|
||||||
|
|
||||||
- run: npm run build
|
- run: npm run build
|
||||||
|
|
||||||
- uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: "22"
|
|
||||||
registry-url: "https://registry.npmjs.org"
|
|
||||||
cache: "npm"
|
|
||||||
|
|
||||||
- name: Publish (skip if version already exists)
|
- name: Publish (skip if version already exists)
|
||||||
run: |
|
run: |
|
||||||
PKG_NAME=$(node -p "require('./package.json').name")
|
PKG_NAME=$(node -p "require('./package.json').name")
|
||||||
@@ -54,7 +51,5 @@ jobs:
|
|||||||
if npm view "${PKG_NAME}@${PKG_VERSION}" version 2>/dev/null; then
|
if npm view "${PKG_NAME}@${PKG_VERSION}" version 2>/dev/null; then
|
||||||
echo "Version ${PKG_VERSION} already published — skipping."
|
echo "Version ${PKG_VERSION} already published — skipping."
|
||||||
else
|
else
|
||||||
npm publish --access public
|
npm publish --provenance --access public
|
||||||
fi
|
fi
|
||||||
env:
|
|
||||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user