mirror of
https://github.com/ryankazokas/turbovault-app.git
synced 2026-04-16 22:12:53 +00:00
214 lines
4.5 KiB
YAML
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
|