Skip to content

Instantly share code, notes, and snippets.

@ali-master
Created August 10, 2024 19:18
Show Gist options
  • Save ali-master/48ffc64840673561bf0543c029916f5c to your computer and use it in GitHub Desktop.
Save ali-master/48ffc64840673561bf0543c029916f5c to your computer and use it in GitHub Desktop.
Publish to NPM github action
name: Publish To NPM
on:
push:
branches: [master, beta]
jobs:
release:
name: Release
runs-on: ubuntu-latest
permissions:
contents: write # to be able to publish a GitHub release
issues: write # to be able to comment on released issues
pull-requests: write # to be able to comment on released pull requests
id-token: write # to enable use of OIDC for npm provenance
steps:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8
with:
node-version: '22'
- name: Update to latest npm (temporary fix for audit below)
run: npm install --global npm
- name: Install dependencies
run: npm clean-install
- name: Verify the integrity of provenance attestations and registry signatures for installed dependencies
run: npm audit signatures
- name: Prepublish
run: npm run prepublishOnly
- name: Prepare
run: npm run prepare
- name: Run tests and generate coverage report
run: npm run test
- name: Release
if: success()
env:
CI: true
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN}}
run: npx semantic-release
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment