Skip to content

A tiny CLI to help setting up npm publish workflows.

License

Notifications You must be signed in to change notification settings

e18e/setup-publish

Repository files navigation

@e18e/setup-publish

npm version License: MIT

🚀 A tiny CLI to assist with setting up GitHub workflows for publishing packages to npm.

📦 Install

npm install -g @e18e/setup-publish

Or you can use npx:

npx @e18e/setup-publish

🚀 Usage

# If installed globally
setup-publish

# Or using npx
npx @e18e/setup-publish

🛠️ Features

  • Granular permissions - Each workflow step has minimal required permissions
  • SHA-pinned actions - GitHub actions referenced by commit SHA for security
  • Install scripts disabled - Prevents malicious package install scripts from running
  • Separated jobs - Build and publish run as independent jobs for better isolation
  • Secure publish - Publish job only uploads pre-built artifacts, no external code execution

⚙️ Options

By default, the CLI runs in interactive mode, prompting you for configuration options. You can also provide options directly via the command line with --no-interactive to skip the prompts entirely.

Option Description Default Available Values
--output <path> Output path for the generated workflow file .github/workflows/publish.yml Any valid file path
--template <name> Template to use for workflow generation default
  • default - Manual GitHub release management
  • changelogithub - Automated changelog with changelogithub
  • changesets - Automated releases with changesets
--env <env> GitHub environment for deployment protection none Any environment name
--interactive Run CLI in interactive mode true boolean

📚 Examples

Interactive Mode (Default)

setup-publish

Non-Interactive Mode

# Generate workflow with changesets template
setup-publish --no-interactive --template changesets

# Custom output path with GitHub environment
setup-publish --no-interactive --output .github/workflows/release.yml --env production

# Use changelogithub template with custom environment
setup-publish --no-interactive --template changelogithub --env staging

📋 Templates

🎯 Default

Manual GitHub release management - this is the most baic setup, allowing you to create releases manually via GitHub's interface.

📝 Changelogithub

Automated changelog generation using changelogithub - ideal for projects following conventional commits.

🔄 Changesets

Automated releases with changesets - great for monorepos and coordinated releases.

📄 License

MIT

About

A tiny CLI to help setting up npm publish workflows.

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Contributors 2

  •  
  •