name: Publish on: push: branches: - master permissions: contents: write pull-requests: write jobs: # ------------------------------------- # 1. Release job # ------------------------------------- release: runs-on: ubuntu-latest steps: - uses: googleapis/release-please-action@v4 id: release with: release-type: node config-file: release-please-config.json manifest-file: .release-please-manifest.json # The logic below handles the npm publication: - uses: actions/checkout@v4 # these if statements ensure that a publication only occurs when # a new release is created: if: ${{ steps.release.outputs.release_created }} - uses: actions/setup-node@v4 with: node-version: '20.x' registry-url: 'https://registry.npmjs.org' always-auth: true if: ${{ steps.release.outputs.release_created }} - run: npm ci if: ${{ steps.release.outputs.release_created }} - name: Build run: npm run build if: ${{ steps.release.outputs.release_created }} - run: npm publish --access public env: NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} if: ${{ steps.release.outputs.release_created }}