@milistack/theme-cli
v1.9.1
Published
CLI tool for setting up Shopify theme semantic releases
Maintainers
Readme
@milistack/theme-cli
A powerful CLI tool for automating Shopify theme development with semantic versioning, preview deployments, and GitHub integration.
Features
- 🚀 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
Installation
npm install -g @milistack/theme-cliUsage
Initialize a New Theme Project
mili-themeThis will:
- Set up your theme project structure
- Configure GitHub workflows
- Set up semantic versioning
- Configure Shopify CLI integration
Available Commands
# Show help
mili-theme --help
# Update workflows and configurations
mili-theme --sync
# Connect or reconnect to GitHub
mili-theme --connect-github
# List stored configurations
mili-theme --list-stores
# Use a stored configuration
mili-theme --use-stored
# Remove a stored configuration
mili-theme --remove-store <store-name>Local Development
Want to contribute? Here's how to set up the CLI for local development:
Prerequisites
- Node.js >= 20.0.0
- npm >= 9.0.0
- Git
Setup Local Development Environment
Clone the Repository
git clone https://github.com/pasquinphilippe/mili-release.git cd mili-releaseInstall Dependencies
npm installSetup 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
Commit Convention
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:
Release Process
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-releaseTroubleshooting
Common Issues
Node Version Errors
nvm use 20 # or nvm install 20Permission Issues
# If you get EACCES errors sudo npm install -g @milistack/theme-cliWorkflow Sync Issues
# Remove existing workflows and try again rm -rf .github/workflows mili-theme --syncCommit 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 HuskyRelease Process Issues
# If semantic-release fails HUSKY=0 CI=true GITHUB_TOKEN=your-token npm run semantic-release
License
MIT © Milistack Group inc
Support
Need help? Open an issue or contact the maintainers.
