@primer/publish v0.0.0-6d6071d
primer/publish
This GitHub Action publishes to npm with the following conventions:
- If we're on the
masterbranch, theversionfield is used as-is and we just runnpm publish --access public.- After publishing a new version on the
masterbranch, we tag the commit SHA withv{version}via the GitHub API. - If the version in
package.jsonis already published, we exit with a78code, which is Actions-speak for "neutral".
- After publishing a new version on the
- If we're on a
release-<version>branch, we publish a release candidate to thenextnpm dist-tag with the version in the form:<version>-rc.<sha>.- A status check is created with the context
npm versionnoting whether theversionfield inpackage.jsonmatches the<version>portion of the branch. If it doesn't, the check's status is marked as pending.
- A status check is created with the context
- Otherwise, we publish a "canary" release, which has a version in the form:
0.0.0-<sha>.
Status checks
Depending on the branch, a series of statuses will be created by this action in your checks: publish is the action's check, and publish {package-name} is a commit status created by the action that reports the version published and links to unpkg.com via "Details":

If you're on a release branch (release-<version>) and the <version> portion of the branch name doesn't match the version field in package.json, you'll get a pending status reminding you to update it:

Usage
To use this action in your own workflow, add the following snippet to your .github/main.workflow file:
action "publish" {
uses = "primer/publish@master"
secrets = [
"GITHUB_TOKEN",
"NPM_AUTH_TOKEN",
]
}You will need to provide an npm access token with publish permissions via the NPM_AUTH_TOKEN secret in the Actions visual editor if you haven't already. The GITHUB_TOKEN secret is also required to create tags after releasing on the master branch.
We suggest that you place this action after any linting and/or testing actions to catch as many errors as possible before publishing.
npm CLI arguments
It's possible to pass additional arguments to npm via the args field in your workflow action. Because the primer-publish CLI accepts options of its own (such as --dry-run), you need to prefix any npm arguments with --:
action "publish" {
uses = "primer/publish@master"
+ args = ["--", "--registry=https://registry.your.org"]6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago