Overview
Release Hub is a unified command-line toolkit for automating and managing project releases. It provides a consistent, cross-ecosystem workflow for versioning, changelog generation, metadata synchronization, and release automation, all through a single streamlined interface. Designed to be both developer-friendly and CI-ready, Release Hub brings clarity and reliability to release workflows without locking you into any specific platform or ecosystem.
Why Release Hub?
Most release tools are fragmented or tied to a single platform. Release Hub offers a unified, extensible approach that balances automation with manual control while remaining simple and predictable in both local development and CI environments.
Features
- Automated semantic versioning with minimal setup
- Interactive mode for manual release workflows
- Multi-format manifest support
- Automatic version synchronization across all project files
- Custom release hooks for before/after bumps scripts
- Conventional Commit based changelog generation
- Fully CI-friendly for GitHub Actions, GitLab CI, and others
Documentation
Full documentation is available at teneplaysofficial.github.io
Installation & Usage
Global Installation
Install release-hub globally to use it anywhere:
npm install -g release-hub
Then run:
release-hub
Local (Dev Dependency)
You can install release-hub locally as a dev dependency:
npm i -D release-hub
Add a convenient script to your package.json:
{
"scripts": {
"release": "release-hub"
}
}
Run the release command:
npm run release
Using npx (No Install Needed)
Run directly without installing:
npx release-hub
Docker
- Run
release-hubusing Docker - no Node.js, npm, or global installs required. - This is the recommended way to use Release Hub in CI pipelines or clean environments.
Pull the Image
docker pull tenedev/release-hub:latest
Basic Usage
Run release-hub in the current project directory:
docker run --rm -it \
-v "$(pwd):/workspace" \
-w /workspace \
tenedev/release-hub:latest
What these flags mean:
--rm- Automatically removes the container after it exits.-it- Enables interactive mode (useful for prompts and CLI output).-v "$(pwd):/workspace"- Mounts your current project into the container.-w /workspace- Sets the working directory inside the container.
Running Commands & Flags
You can pass any release-hub command or flag directly:
docker run --rm -it \
-v "$(pwd):/workspace" \
-w /workspace \
tenedev/release-hub:latest <command> [flags]
Example:
docker run --rm -it \
-v "$(pwd):/workspace" \
-w /workspace \
tenedev/release-hub:latest -h
CI-Friendly Usage (Non-Interactive)
For CI environments (GitHub Actions, GitLab CI, etc.), omit -it:
docker run --rm \
-v "$PWD:/workspace" \
-w /workspace \
tenedev/release-hub:latest ci
[!TIP] When mounting your project directory into the container,
release-hubwill update files on your host system.Use
:rofor dry runs.docker run --rm \ -v "$PWD:/workspace:ro" \ -w /workspace \ tenedev/release-hub:latest ci
Using Versioned Tags (Recommended for CI)
For reproducible builds, pin a specific version:
docker run --rm -it \
-v "$(pwd):/workspace" \
-w /workspace \
tenedev/release-hub:1.0.0
[!NOTE]
latestalways tracks the newest stable release. Pin versions in CI for safety.
License
This project is licensed under the Apache-2.0 License