Makefile 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. .PHONY: dev prod deploy logs stop clean restart ps help test test-backend test-frontend migrate migrate-down
  2. dev: ## Запустить локальную разработку
  3. docker compose up -d
  4. cd backend && go run ./cmd/api &
  5. cd frontend && npm run dev
  6. prod: ## Запустить продакшен (сборка + деплой)
  7. bash deploy/deploy.sh
  8. deploy: prod ## Алиас для prod
  9. logs: ## Логи продакшена
  10. docker compose -f deploy/docker-compose.prod.yml logs -f
  11. stop: ## Остановить всё
  12. docker compose down
  13. docker compose -f deploy/docker-compose.prod.yml down
  14. clean: ## Остановить + удалить volume
  15. docker compose down -v
  16. docker compose -f deploy/docker-compose.prod.yml down -v
  17. restart: ## Перезапустить продакшен
  18. docker compose -f deploy/docker-compose.prod.yml restart
  19. ps: ## Статус контейнеров
  20. docker compose -f deploy/docker-compose.prod.yml ps
  21. test: ## Запустить все тесты
  22. $(MAKE) test-backend
  23. $(MAKE) test-frontend
  24. test-backend: ## Запустить тесты бэкенда
  25. cd backend && go test ./... -v -race
  26. test-frontend: ## Запустить тесты фронтенда
  27. cd frontend && npm run test 2>/dev/null || echo "No test script configured yet"
  28. migrate: ## Накатить миграции (локально)
  29. docker compose run --rm migrate
  30. migrate-down: ## Откатить последнюю миграцию (локально)
  31. docker compose run --rm migrate migrate -path=/migrations -database "postgres://photoplaces:photoplaces_dev@postgres:5432/photoplaces?sslmode=disable" down 1
  32. help: ## Показать помощь
  33. @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-15s\033[0m %s\n", $$1, $$2}'