A powerful CLI tool for automating Shopify theme development with semantic versioning, preview deployments, and GitHub integration.
- π Automated semantic versioning with semantic-release
- π Preview themes for pull requests
- π¦ GitHub Actions integration
- π οΈ Modern development workflow with Husky hooks
- π Automated changelog generation
- π Secure theme deployment
- β¨ Conventional commit enforcement
- π§ͺ Pre-commit test automation
npm install -g @milistack/theme-cliYou can use any of these commands to start:
mili-theme
# or
mili-release
# or
miliThis will:
- Set up your theme project structure
- Configure GitHub workflows
- Set up semantic versioning
- Configure Shopify CLI integration
- Set up Git hooks with Husky
- Configure conventional commits
The CLI can be invoked using any of these commands:
mili-theme # Primary command
mili-release # Alternative command
mili # Short commandThe CLI will guide you through:
- Project/client name setup
- Shopify store configuration
- GitHub repository setup
- Theme token configuration
- Workflow configuration
The setup process will:
- Create necessary project directories
- Set up GitHub Actions workflows
- Configure semantic-release
- Set up commit message validation
- Install and configure Husky hooks
- Create theme structure
- Set up environment variables
The CLI provides several commands for managing your theme project:
# Initialize a new theme project (interactive)
mili-theme
# Show help and available commands
mili-theme help
# or
mili-theme -h
# Show version
mili-theme -v
# Sync workflows and configurations
mili-theme sync
# GitHub Integration
mili-theme connect-github # Connect or reconnect to GitHub
# Store Configuration Management
mili-theme list-stores # List all stored configurations
mili-theme use-stored # Use a stored configuration
mili-theme remove-store <store-name> # Remove a stored configurationEach command will guide you through the necessary steps with interactive prompts where needed.
When working on the CLI itself:
# Watch mode with auto-reload
npm run dev
# Run tests
npm test
# Create a release
CI=true GITHUB_TOKEN=your-token npm run semantic-releaseWant to contribute? Here's how to set up the CLI for local development:
- Node.js >= 20.0.0
- npm >= 9.0.0
- Git
-
Clone the Repository
git clone https://github.com/pasquinphilippe/mili-release.git cd mili-release -
Install Dependencies
npm install
-
Setup Git Hooks The project uses Husky for Git hooks:
- Pre-commit hook runs tests automatically
- Commit-msg hook ensures conventional commit format
Hooks are installed automatically during
npm installvia the prepare script. -
Development Scripts
# Watch mode with auto-reload npm run dev # Run tests npm test # Create a release (CI environment) npm run semantic-release
We use conventional commits with specific rules:
# Features (triggers minor version bump)
feat: add new command for X
# Bug fixes (triggers patch version bump)
fix: resolve issue with Y
# Breaking changes (triggers major version bump)
feat!: redesign CLI interface
fix!: drop support for Node 16
# Documentation (no version bump)
docs: update installation instructions
# Chores (no version bump)
chore: update dependencies
# Other types
test: add unit tests
refactor: improve code structure
style: format code
perf: improve performanceCommit messages are automatically validated with the following rules:
- Type must be one of the above
- Subject line must be in lowercase
- Body lines must not exceed 200 characters
- Breaking changes must be noted with
!orBREAKING CHANGE:
Releases are fully automated using semantic-release:
-
Staging Releases
- Merges to
stagingcreate pre-releases - Version is determined by commit messages
- Preview themes are created automatically
- Merges to
-
Production Releases
- Merges to
maintrigger production releases - Changelog is generated automatically
- GitHub release is created
- npm package is published
- Version is bumped according to semantic versioning
- Merges to
To create a release locally (for testing):
# Ensure you're on main branch
git checkout main
# Run semantic-release
CI=true GITHUB_TOKEN=your-token npm run semantic-release-
Node Version Errors
nvm use 20 # or nvm install 20 -
Permission Issues
# If you get EACCES errors sudo npm install -g @milistack/theme-cli -
Workflow Sync Issues
# Remove existing workflows and try again rm -rf .github/workflows mili-theme --sync -
Commit Validation Errors
# If your commit message is rejected git commit --no-verify -m "your message" # Bypass hooks (not recommended) # or HUSKY=0 git commit -m "your message" # Bypass Husky
-
Release Process Issues
# If semantic-release fails HUSKY=0 CI=true GITHUB_TOKEN=your-token npm run semantic-release
MIT Β© Milistack Group inc
Need help? Open an issue or contact the maintainers.