Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions .github/workflows/publish-npm.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Publish useMultiTabDetection to NPM

on:
push:
branches:
- main

jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
registry-url: "https://registry.npmjs.org"

- name: Install dependencies
run: npm ci

- name: Run tests
run: npm test --if-present
continue-on-error: false

- name: Build package
run: npm run build --if-present

- name: Check if version already published
id: check-version
run: |
PACKAGE_NAME=$(node -p "require('./package.json').name")
PACKAGE_VERSION=$(node -p "require('./package.json').version")

if npm view "$PACKAGE_NAME@$PACKAGE_VERSION" version 2>/dev/null; then
echo "Version $PACKAGE_VERSION already exists on NPM"
echo "skip=true" >> $GITHUB_OUTPUT
else
echo "Version $PACKAGE_VERSION not yet published"
echo "skip=false" >> $GITHUB_OUTPUT
fi

- name: Publish to NPM
if: steps.check-version.outputs.skip == 'false'
run: npm publish --provenance
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

- name: Skip publishing
if: steps.check-version.outputs.skip == 'true'
run: echo "Skipping publish - version already exists on NPM"