Skip to content

ddavid93/automark-release

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.json and 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 link

Global Installation

npm install -g automark-release

Using npx (no installation required)

npx automark-release

Usage

Inside a project directory

Simply run the command from within your project:

cd my-project
automark-release

The 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-project

What it does

  1. Detects project - Reads package.json to get project name and version
  2. Asks for branch - Prompts which branch to use (defaults to current branch)
  3. Validates branch - Warns if target branch is not develop, main, or master
  4. Cleans dist - Removes the ./dist directory
  5. Builds project - Runs npm run build-ttsc or npm run build
  6. Commits changes - Creates a commit with message build: vX.X.X
  7. Creates tag - Creates a Git tag vX.X.X
  8. Pushes branch - Pushes changes to the selected target branch
  9. Sets NPM registry - Configures https://registry.npmjs.org
  10. 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 typecheck

Project Structure

automate-version/
├── src/
│   └── index.ts      # Main TypeScript source
├── dist/             # Compiled JavaScript output
├── package.json
├── tsconfig.json
└── README.md

Type 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 public

License

MIT

About

A CLI tool to automate versioning, building, and tagging in Git projects. Written in TypeScript with full type safety.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors