Skip to content

Publish current branch to npm #345

Publish current branch to npm

Publish current branch to npm #345

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-config,
packages/communicator-bcrypt,
packages/communicator-datetime,
packages/communicator-email-ses,
packages/communicator-random,
packages/component-aws-s3,
packages/create,
packages/dbos-cloud,
packages/dbos-compiler,
packages/dbos-openapi,
packages/dbos-sqs,
packages/dbos-kafkajs,
]
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@v3
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 }}
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@v3
id: npmtest
if: ${{ steps.nbgv.outputs.PublicRelease == 'False'}}
with:
token: ${{ secrets.NPM_PUBLISH }}
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!"