Skip to content

Publish current branch to npm #47

Publish current branch to npm

Publish current branch to npm #47

Workflow file for this run

name: Publish current branch to npm
on:
workflow_dispatch:
jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@v4.1.0
with:
fetch-depth: 0 # fetch-depth 0 needed for NBGV
- name: Use Node.js 20
uses: actions/setup-node@v3
with:
node-version: 20
- name: Nerdbank.GitVersioning
id: nbgv
uses: dotnet/nbgv@v0.4.1
with:
stamp: package.json
- name: Nerdbank.GitVersioning
id: nbgv-dbos-cloud
uses: dotnet/nbgv@v0.4.1
with:
stamp: packages/dbos-cloud/package.json
- name: Nerdbank.GitVersioning
id: nbgv-dbos-openapi
uses: dotnet/nbgv@v0.4.1
with:
stamp: packages/dbos-openapi/package.json
- run: npm ci
- run: 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
- name: Publish 'dbos-cloud' release to npm
uses: JS-DevTools/npm-publish@v3
id: npmrelease-dbos-cloud
if: ${{ steps.nbgv.outputs.PublicRelease == 'True'}}
with:
package: packages/dbos-cloud
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
- name: Publish 'dbos-openapi' release to npm
uses: JS-DevTools/npm-publish@v3
id: npmrelease-dbos-openapi
if: ${{ steps.nbgv.outputs.PublicRelease == 'True'}}
with:
package: packages/dbos-openapi
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
- 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
- name: Publish 'dbos-cloud' test package to npm
uses: JS-DevTools/npm-publish@v3
id: npmtest-dbos-cloud
if: ${{ steps.nbgv.outputs.PublicRelease == 'False'}}
with:
package: packages/dbos-cloud
token: ${{ secrets.NPM_PUBLISH }}
registry: https://registry.npmjs.org/
tag: 'test'
access: public
- name: Publish 'dbos-openapi' test package to npm
uses: JS-DevTools/npm-publish@v3
id: npmtest-dbos-openapi
if: ${{ steps.nbgv.outputs.PublicRelease == 'False'}}
with:
package: packages/dbos-openapi
token: ${{ secrets.NPM_PUBLISH }}
registry: https://registry.npmjs.org/
tag: 'test'
access: public
- if: ${{ steps.npmrelease.outputs.type }}
run: echo "Published a new release package!"
- if: ${{ steps.npmtest.outputs.type }}
run: echo "Published a new test package!"