Skip to content

release gha example

name: Release
on:
push:
branches: ["main"]
permissions:
contents: read
jobs:
release:
# prevent this action from running on forks
if: github.repository == 'clintonsteiner/rehype-prism'
permissions:
contents: write
pull-requests: read
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "22.x"
registry-url: "https://registry.npmjs.org"
- name: Install dependencies
run: npm ci
- name: Extract version from package.json
uses: sergeysova/jq-action@v2
id: version
with:
cmd: "jq .version package.json -r"
- name: Get latest tag
uses: actions-ecosystem/action-get-latest-tag@v1
id: get-latest-tag
- name: Publish GitHub Release
uses: release-drafter/release-drafter@v6
if: ${{ contains(steps.get-latest-tag.outputs.tag, steps.version.outputs.value) == false }}
with:
version: ${{ steps.version.outputs.value }}
publish: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Publish to NPM
if: ${{ contains(steps.get-latest-tag.outputs.tag, steps.version.outputs.value) == false }}
run: npm publish --access=public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}