You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?
GitHub Action
Publish to npm
1.3.8
GitHub action to automatically publish packages to npm.
Create a new .github/workflows/npm-publish.yml
file:
name: npm-publish
on:
push:
branches:
- main # Change this to your default branch
jobs:
npm-publish:
name: npm-publish
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Publish if version has been updated
uses: pascalgn/[email protected]
with: # All of theses inputs are optional
tag_name: "v%s"
tag_message: "v%s"
create_tag: "true"
commit_pattern: "^Release (\\S+)"
workspace: "."
publish_command: "yarn"
publish_args: "--non-interactive"
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
Now, when someone changes the version in package.json
to 1.2.3 and pushes a commit with the message Release 1.2.3
, the npm-publish
action will create a new tag v1.2.3
and publish the package to the npm registry.
These inputs are optional: that means that if you don't enter them, default values will be used and it'll work just fine.
tag_name
: the name pattern of the new tagtag_message
: the message pattern of the new tagcreate_tag
: whether to create a git tag or not (defaults to"true"
)commit_pattern
: pattern that the commit message needs to followworkspace
: custom workspace directory that contains thepackage.json
filepublish_command
: custom publish command (defaults toyarn
)publish_args
: publish command arguments (for example--prod --verbose
, defaults to empty)
GITHUB_TOKEN
: this is a token that GitHub generates automatically, you only need to pass it to the action as in the exampleNPM_AUTH_TOKEN
: this is the token the action will use to authenticate to npm. You need to generate one in npm, then you can add it to your secrets (settings -> secrets) so that it can be passed to the action. DO NOT put the token directly in your workflow file.
- npm-publish is a similar project
- version-check allows to define custom workflows based on version changes