# Variables image_name := "time-banner" container_name := "time-banner-dev" port := "3000" # Default recipe default: @just --list # Development server with hot reload dev: @echo "๐Ÿš€ Starting development server..." cargo watch -x "run --bin time-banner" # Simple development server (no hot reload) run: @echo "๐Ÿš€ Starting server..." cargo run --bin time-banner # Comprehensive check pipeline check: format lint build test docker-build @echo "โœ… All checks passed!" # Format code format: @echo "๐ŸŽจ Formatting code..." cargo fmt --all # Check formatting format-check: @echo "๐Ÿ” Checking formatting..." cargo fmt --all -- --check # Lint with clippy lint: @echo "๐Ÿ” Running clippy..." cargo clippy --all-targets --all-features -- # Build project build: @echo "๐Ÿ”จ Building project..." cargo build --release # Run tests test: @echo "๐Ÿงช Running tests..." cargo test # Build Docker image docker-build: @echo "๐Ÿณ Building Docker image..." docker build -t {{image_name}}:latest . # Run Docker container docker-run: docker-build @echo "๐Ÿš€ Running Docker container..." docker run --rm -d --name {{container_name}} -p {{port}}:{{port}} {{image_name}}:latest @echo "Container started at http://localhost:{{port}}" # Stop Docker container docker-stop: @echo "๐Ÿ›‘ Stopping Docker container..." docker stop {{container_name}} || true # Docker logs docker-logs: @echo "๐Ÿ“‹ Showing Docker logs..." docker logs {{container_name}} # Follow Docker logs docker-logs-follow: @echo "๐Ÿ“‹ Following Docker logs..." docker logs -f {{container_name}} # Clean Docker artifacts docker-clean: docker-stop @echo "๐Ÿงน Cleaning Docker artifacts..." docker rmi {{image_name}}:latest || true # Full Docker development cycle docker-dev: docker-clean docker-run @echo "๐Ÿณ Docker development environment ready!" # Clean cargo artifacts clean: @echo "๐Ÿงน Cleaning cargo artifacts..." cargo clean # Install development dependencies install-deps: @echo "๐Ÿ“ฆ Installing development dependencies..." cargo install cargo-watch # Security audit audit: @echo "๐Ÿ”’ Running security audit..." cargo audit # Check dependencies for updates outdated: @echo "๐Ÿ“… Checking for outdated dependencies..." cargo outdated # Release build with optimizations release: @echo "๐Ÿš€ Building release version..." cargo build --release # Full CI pipeline (like what would run in CI) ci: format-check lint build test docker-build @echo "๐ŸŽฏ CI pipeline completed!" # Quick development check (faster than full check) quick: format lint @echo "โšก Quick check completed!"