npm.io
1.6.0 • Published 17h agoCLI

goreleaser-npm-publisher

Licence
MIT
Version
1.6.0
Deps
5
Size
48 kB
Vulns
0
Weekly
0
Stars
8

goreleaser-npm-publisher logo

goreleaser-npm-publisher

NPM Version NPM Downloads NPM Unpacked Size
GitHub Actions Workflow Status Git Hub Release License
Quality Gate Status Coverage Lines of code

Automated tool for building and publishing NPM packages from Go binaries.

Quick start:

First, create a release of your package using goreleaser.

goreleaser build --clean

Then, run goreleaser-npm-publisher in the same directory. Make sure you're logged into the registry.

npx -y goreleaser-npm-publisher publish --clean

Alternatively, add the --token parameter to use your NPM_AUTH_TOKEN.

npx -y goreleaser-npm-publisher publish --clean --token npm_********

That’s it!

Use as a library

You can use goreleaser-npm-publisher as a standard npm package.

import { publish } from 'goreleaser-npm-publisher';

publish({ token: process.env.NPM_TOKEN })
  .then(console.log)
  .catch(console.error);

Use as a GitHub Action

You can use goreleaser-npm-publisher as a GitHub Action.

- name: Publish to npm
  uses: evg4b/goreleaser-npm-publisher-action@v1.2.0
  with:
    prefix: '@evg4b'
    token: ${{ secrets.NPM_AUTH_TOKEN }}

For more details, see the GitHub Action documentation.

CLI commands and options:

goreleaser-npm-publisher provides the following CLI commands:

list

Displays a list of packages that can be built in the current project using the specified options.

Options
Option Type Description
project string Path to the project root built by GoReleaser (. by default).
builder string Name of the GoReleaser builder whose output is used to build the packages.
name string Base name for the npm packages (defaults to the GoReleaser project name).
bin string Name of the installed command (defaults to the package name).
prefix string Scope prefix for the npm packages.
repository string Source repository URL for the npm packages (required for npm provenance).
repository-type string Type of the source repository (detected from the repository URL, git by default). One of git, svn, hg, bzr.
repository-directory string Directory of the package inside the source repository (for monorepos).
description string Description for the npm packages.
verbose boolean Show verbose output.
build

Builds all packages that can be built in the current project using the specified parameters. The built packages can be found in the dist/npm folder.

Options
Option Type Description
project string Path to the project root built by GoReleaser (. by default).
builder string Name of the GoReleaser builder whose output is used to build the packages.
clear boolean Clear the dist/npm folder before building.
name string Base name for the npm packages (defaults to the GoReleaser project name).
bin string Name of the installed command (defaults to the package name).
prefix string Scope prefix for the npm packages.
repository string Source repository URL for the npm packages (required for npm provenance).
repository-type string Type of the source repository (detected from the repository URL, git by default). One of git, svn, hg, bzr.
repository-directory string Directory of the package inside the source repository (for monorepos).
description string Description for the npm packages.
files string[] File globs to include in the npm packages (readme.md, license by default).
keywords string[] Keywords for the npm packages.
license string License (SPDX identifier) for the npm packages.
verbose boolean Show verbose output.
publish

Builds and publishes to the registry all packages that can be built in the current project using the specified parameters.

Options
Option Type Description
project string Path to the project root built by GoReleaser (. by default).
builder string Name of the GoReleaser builder whose output is used to build the packages.
clear boolean Clear the dist/npm folder before building.
name string Base name for the npm packages (defaults to the GoReleaser project name).
bin string Name of the installed command (defaults to the package name).
prefix string Scope prefix for the npm packages.
repository string Source repository URL for the npm packages (required for npm provenance).
repository-type string Type of the source repository (detected from the repository URL, git by default). One of git, svn, hg, bzr.
repository-directory string Directory of the package inside the source repository (for monorepos).
description string Description for the npm packages.
files string[] File globs to include in the npm packages (readme.md, license by default).
keywords string[] Keywords for the npm packages.
license string License (SPDX identifier) for the npm packages.
token string Token for npm registry authentication.
otp string One-time password for npm two-factor authentication.
verbose boolean Show verbose output.

Structure of npm package:

The output will include a main package and platform packages. The main package will contain the executable script that detects the platform and architecture, running the corresponding platform package. The platform packages will include the Go binary for the specific platform and architecture.

For example, for the package go-package with version 0.0.17, and with Goreleaser building for linux, windows, and darwin along with ia32, x64, and arm64 architectures:

Main package:

go-package@0.0.17
  os: linux, win32, darwin
  cpu: ia32, x64, arm64

Platform packages:

go-package_linux_386@0.0.17
  os: linux
  cpu: ia32
  bin: /Users/<user>/go-package/dist/npm/dist-go-package-linux-386-go-package

go-package_windows_386@0.0.17
  os: win32
  cpu: ia32
  bin: /Users/<user>/go-package/dist/npm/dist-go-package-windows-386-go-package-exe

go-package_linux_amd64@0.0.17
  os: linux
  cpu: x64
  bin: /Users/<user>/go-package/dist/npm/dist-go-package-linux-amd-64-v-1-go-package

go-package_linux_arm64@0.0.17
  os: linux
  cpu: arm64
  bin: /Users/<user>/go-package/dist/npm/dist-go-package-linux-arm-64-go-package

go-package_windows_arm64@0.0.17
  os: win32
  cpu: arm64
  bin: /Users/<user>/go-package/dist/npm/dist-go-package-windows-arm-64-go-package-exe

go-package_windows_amd64@0.0.17
  os: win32
  cpu: x64
  bin: /Users/<user>/go-package/dist/npm/dist-go-package-windows-amd-64-v-1-go-package-exe

go-package_darwin_amd64@0.0.17
  os: darwin
  cpu: x64
  bin: /Users/<user>/go-package/dist/npm/dist-go-package-darwin-amd-64-v-1-go-package

go-package_darwin_arm64@0.0.17
  os: darwin
  cpu: arm64
  bin: /Users/<user>/go-package/dist/npm/dist-go-package-darwin-arm-64-go-package

Supported platforms and architectures:

Platforms:
GOOS Node.js Platform
darwin darwin
linux linux
windows win32
android android
aix aix
freebsd freebsd
openbsd openbsd
solaris sunos
netbsd netbsd
Architectures:
GOARCH Node.js Platform
amd64 x64
386 ia32
arm arm
arm64 arm64
s390x s390x
s390 s390
riscv64 riscv64
ppc64 ppc64
ppc ppc
mips mips

Keywords