automark-release
v1.0.0
Published
A CLI tool to automate versioning, building, and tagging in Git projects.
Maintainers
Readme
automark-release
A CLI tool to automate versioning, building, and tagging in Git projects. Written in TypeScript with full type safety.
Features
- Project Autodetection: Automatically detects if you're inside a project directory
- Branch Selection: Choose which branch to use for the release (defaults to current branch)
- Version Management: Reads version from
package.jsonand creates Git tags - Build Automation: Cleans
dist/and runs build scripts - Git Integration: Commits, tags, and pushes changes automatically
- NPM Registry: Configures NPM registry for publishing
- Beautiful CLI: Colorful and informative terminal output
Installation
GitHub (source)
git clone https://github.com/ddavid93/automark-release.git
cd automark-release
npm install
npm run build
npm linkGlobal Installation
npm install -g automark-releaseUsing npx (no installation required)
npx automark-releaseUsage
Inside a project directory
Simply run the command from within your project:
cd my-project
automark-releaseThe tool will automatically detect the project and its version.
From a parent directory
Run the command and provide the project folder name when prompted:
automark-release
# Then enter: my-projectWhat it does
- Detects project - Reads
package.jsonto get project name and version - Asks for branch - Prompts which branch to use (defaults to current branch)
- Validates branch - Warns if target branch is not
develop,main, ormaster - Cleans dist - Removes the
./distdirectory - Builds project - Runs
npm run build-ttscornpm run build - Commits changes - Creates a commit with message
build: vX.X.X - Creates tag - Creates a Git tag
vX.X.X - Pushes branch - Pushes changes to the selected target branch
- Sets NPM registry - Configures
https://registry.npmjs.org - Pushes tag - Pushes the tag to the remote repository
Development
Prerequisites
- Node.js >= 16.0.0
- npm or pnpm
Setup
# Install dependencies
npm install
# Build the project
npm run build
# Run in development mode (watch)
npm run dev
# Type check without emitting
npm run typecheckProject Structure
automate-version/
├── src/
│ └── index.ts # Main TypeScript source
├── dist/ # Compiled JavaScript output
├── package.json
├── tsconfig.json
└── README.mdType Safety
This project follows strict TypeScript conventions:
- Interfaces: Prefixed with
I(e.g.,IColors,IPackageJson) - Types: Suffixed with
Type(e.g.,BranchNameType,TagNameType) - Strict mode: All strict TypeScript checks enabled
Publishing
# Build and publish to NPM
npm publish --access publicLicense
MIT
