mosaic-zero / MAKEFILE_QUICK_REF.md
raylim's picture
Add GitHub Actions workflows and comprehensive test suite
4780d8d unverified
# Makefile Quick Reference
## Most Common Commands
```bash
# Setup
make install-dev # Install dev dependencies
make help # Show all available commands
# Testing
make test # Run tests with coverage
make test-fast # Run tests quickly (no coverage)
make test-ui # Test UI components only
make test-cli # Test CLI only
# Code Quality
make format # Format code with black
make format-check # Check formatting
make quality # Run all quality checks
# Running
make run-ui # Launch web interface
make run-single SLIDE=x.svs OUTPUT=out/ # Process single slide
make run-batch CSV=s.csv OUTPUT=out/ # Process batch
# Docker
make docker-build # Build image
make docker-run # Run web UI in container
make docker-shell # Shell into container
# Cleanup
make clean # Remove cache files
make clean-all # Remove everything
```
## Development Workflow
```bash
# 1. Initial setup
make install-dev
# 2. Make changes to code
# ... edit files ...
# 3. Format and test
make format
make test
# 4. Before committing
make quality
make test-coverage
# 5. Optional: Install pre-commit hooks
make pre-commit-install
```
## Docker Workflow
```bash
# Build and test locally
make docker-build
make docker-run
# Process slides with Docker
make docker-run-single SLIDE=my_slide.svs
make docker-run-batch CSV=settings.csv
# Push to registry
make docker-tag DOCKER_REGISTRY=myregistry.com/user
make docker-push DOCKER_REGISTRY=myregistry.com/user
```
## CI/CD
```bash
# Run all CI checks
make ci-test # Tests + format check (fast)
make ci-test-strict # Tests + format check + pylint (slow)
make ci-docker # Build Docker for CI
```
## Tips
- Use `make help` to see all available commands
- Use `make test-specific TEST=path/to/test` for debugging
- Use `make test-verbose` to see print statements
- Use `make info` to see project information
- Set environment variables to customize Docker:
```bash
export DOCKER_REGISTRY=myregistry.com/user
export DOCKER_TAG=v1.0.0
make docker-build
```