name: npm-publish
on:
  push:
    branches:
      - master # Change this to your default branch
jobs:
  npm-publish:
    name: npm-publish
    runs-on: ubuntu-latest
    steps:
    - name: Checkout repository
      uses: actions/checkout@master
    - name: Set up Node.js
      uses: actions/setup-node@master
      with:
        node-version: 10.0.0
    - name: Publish if version has been updated
      uses: pascalgn/npm-publish-action@4f4bf159e299f65d21cd1cbd96fc5d53228036df
      with: # All of theses inputs are optional
        tag_name: "%s"
        tag_message: "%s"
        commit_pattern: "^Release (\\S+)"
      env: # More info about the environment variables in the README
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Leave this as is, it's automatically generated
        NPM_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} # You need to set this in your repo settings

Add npm publish workflow to automatically release to npm
Add npm publish workflow to automatically release to npm

It will be triggered when a "Release XXX" commit is done containing an update of the package.json version
It will add a tag with the right version automatically

uses github action https://github.com/marketplace/actions/publish-to-npm