Skip to content

Publish current branch to npm #698

Publish current branch to npm

Publish current branch to npm #698

Workflow file for this run

name: Publish current branch to npm
on:
workflow_dispatch:
jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
strategy:
matrix:
package:
[
.,
packages/aws-s3-workflows,
packages/confluent-kafka-receive,
packages/create,
packages/dbos-cloud,
packages/drizzle-datasource,
packages/kafkajs-receive,
packages/knex-datasource,
packages/koa-serve,
packages/kysely-datasource,
packages/nodepg-datasource,
packages/pgnotifier-receive,
packages/postgres-datasource,
packages/prisma-datasource,
packages/sqs-receive,
packages/typeorm-datasource,
packages/otel,
]
steps:
- name: Checkout
uses: actions/checkout@v4.1.1
with:
fetch-depth: 0 # fetch-depth 0 needed for NBGV
- name: Use Node.js 20
uses: actions/setup-node@v4.0.2
with:
node-version: 20
- run: npm ci; npm run build
- name: Nerdbank.GitVersioning
id: nbgv
uses: dotnet/nbgv@v0.4.2
with:
stamp: ${{ matrix.package }}/package.json
- run: cd ${{ matrix.package }}; npm run build
- name: Publish release to npm
uses: JS-DevTools/npm-publish@v4
id: npmrelease
# boolean properties from NBGV step appears to be converted into *capitalized* strings
# so explicitly string compare PublicRelease output value
if: ${{ steps.nbgv.outputs.PublicRelease == 'True'}}
with:
token: ${{ secrets.NPM_PUBLISH_GRANULAR }}
registry: https://registry.npmjs.org/
tag: ${{ steps.nbgv.outputs.PrereleaseVersion == '' && 'latest' || 'preview' }} # Assign a 'preview' tag to versions end with '-preview'. Otherwise, assign a 'latest' tag to the latest release.
access: public
package: ${{ matrix.package }}
- name: Publish test package to npm
uses: JS-DevTools/npm-publish@v4
id: npmtest
if: ${{ steps.nbgv.outputs.PublicRelease == 'False'}}
with:
token: ${{ secrets.NPM_PUBLISH_GRANULAR }}
registry: https://registry.npmjs.org/
tag: 'test'
access: public
package: ${{ matrix.package }}
- if: ${{ steps.npmrelease.outputs.type }}
run: echo "Published a new release package!"
- if: ${{ steps.npmtest.outputs.type }}
run: echo "Published a new test package!"