Files
turbovault-app/Taskfile.yml
2026-03-29 02:37:49 -04:00

214 lines
4.5 KiB
YAML

version: '3'
tasks:
default:
desc: "Show available tasks"
cmds:
- task --list
dev:
desc: "Start development environment (Docker, database, Rails + Tailwind + Jobs)"
cmds:
- task: docker:up
- task: db:prepare
- rails tailwindcss:build
- echo "🚀 Starting TurboVault..."
- echo "📱 App at http://localhost:3000"
- echo "📧 Mailpit at http://localhost:8025"
- echo "⚙️ Background jobs (Solid Queue) enabled"
- echo ""
- echo "👤 Demo Account (development):"
- echo " Email demo@turbovault.com"
- echo " Password password123"
- echo ""
- bin/dev
setup:
desc: "Initial project setup (Docker, dependencies, database)"
cmds:
- task: docker:up
- task: install
- task: db:setup
install:
desc: "Install Ruby dependencies"
cmds:
- bundle install
docker:up:
desc: "Start PostgreSQL and Mailpit containers"
cmds:
- docker compose up -d
- echo "Waiting for services to be ready..."
- sleep 3
- echo "PostgreSQL at localhost:5432"
- echo "Mailpit UI at http://localhost:8025"
docker:down:
desc: "Stop all Docker containers"
cmds:
- docker compose down
docker:logs:
desc: "View Docker logs (all services)"
cmds:
- docker compose logs -f
docker:logs:postgres:
desc: "View PostgreSQL logs only"
cmds:
- docker compose logs -f postgres
docker:logs:mailpit:
desc: "View Mailpit logs only"
cmds:
- docker compose logs -f mailpit
docker:reset:
desc: "Stop containers and remove all data"
cmds:
- docker compose down -v
mailpit:
desc: "Open Mailpit web UI in browser"
cmds:
- echo "Opening Mailpit at http://localhost:8025"
- open http://localhost:8025 || xdg-open http://localhost:8025 || echo "Please visit http://localhost:8025 in your browser"
db:create:
desc: "Create database"
cmds:
- rails db:create
db:migrate:
desc: "Run database migrations"
cmds:
- rails db:migrate
db:seed:
desc: "Seed database with initial data"
cmds:
- rails db:seed
db:setup:
desc: "Setup database (create, migrate, seed)"
cmds:
- task: db:create
- task: db:migrate
- task: db:seed
db:prepare:
desc: "Prepare database (creates if needed, runs pending migrations)"
cmds:
- rails db:prepare
db:reset:
desc: "Reset database (drop, create, migrate, seed)"
cmds:
- rails db:drop
- task: db:setup
db:rollback:
desc: "Rollback last migration"
cmds:
- rails db:rollback
server:
desc: "Start Rails server"
cmds:
- rails server
dev:
desc: "Start Rails server with bin/dev (if using Procfile.dev)"
cmds:
- bin/dev
console:
desc: "Start Rails console"
cmds:
- rails console
test:
desc: "Run all tests"
cmds:
- rails test
test:system:
desc: "Run system tests"
cmds:
- rails test:system
lint:
desc: "Run RuboCop linter"
cmds:
- bundle exec rubocop
lint:fix:
desc: "Auto-fix RuboCop issues"
cmds:
- bundle exec rubocop -A
security:
desc: "Run security checks (Brakeman + Bundler Audit)"
cmds:
- bundle exec brakeman
- bundle exec bundler-audit check --update
routes:
desc: "Show all routes"
cmds:
- rails routes
clean:
desc: "Clean temporary files and logs"
cmds:
- rm -rf tmp/cache/*
- rm -rf log/*.log
- echo "Cleaned tmp and logs"
igdb:sync:
desc: "Manually run IGDB sync job (for testing)"
cmds:
- rake igdb:sync
igdb:status:
desc: "Check IGDB sync status"
cmds:
- rake igdb:status
igdb:clear:
desc: "Clear IGDB sync lock (if job is stuck)"
cmds:
- rake igdb:clear_lock
typecheck:
desc: "Run Sorbet type checker"
cmds:
- bundle exec srb tc
typecheck:watch:
desc: "Run Sorbet type checker in watch mode"
cmds:
- bundle exec srb tc --watch
tapioca:init:
desc: "Initialize Tapioca (run once after adding Sorbet)"
cmds:
- bundle exec tapioca init
tapioca:gems:
desc: "Generate RBI files for gems"
cmds:
- bundle exec tapioca gems
tapioca:dsl:
desc: "Generate RBI files for DSLs (Rails models, etc.)"
cmds:
- bundle exec tapioca dsl
tapioca:all:
desc: "Generate all RBI files (gems + DSLs)"
cmds:
- bundle exec tapioca gems
- bundle exec tapioca dsl