Initial commit: Open sourcing all of the Maple Open Technologies code.
This commit is contained in:
commit
755d54a99d
2010 changed files with 448675 additions and 0 deletions
162
cloud/maplepress-backend/Taskfile.yml
Normal file
162
cloud/maplepress-backend/Taskfile.yml
Normal file
|
|
@ -0,0 +1,162 @@
|
|||
version: "3"
|
||||
|
||||
env:
|
||||
COMPOSE_PROJECT_NAME: maplepress
|
||||
|
||||
# Variables for Docker Compose command detection
|
||||
vars:
|
||||
DOCKER_COMPOSE_CMD:
|
||||
sh: |
|
||||
if command -v docker-compose >/dev/null 2>&1; then
|
||||
echo "docker-compose"
|
||||
elif docker compose version >/dev/null 2>&1; then
|
||||
echo "docker compose"
|
||||
else
|
||||
echo "docker-compose"
|
||||
fi
|
||||
|
||||
tasks:
|
||||
# Development workflow (requires infrastructure)
|
||||
dev:
|
||||
desc: Start app in development mode (requires infrastructure running)
|
||||
deps: [dev:check-infra]
|
||||
cmds:
|
||||
- "{{.DOCKER_COMPOSE_CMD}} -f docker-compose.dev.yml up --build"
|
||||
- echo "Press Ctrl+C to stop"
|
||||
|
||||
dev:down:
|
||||
desc: Stop development app
|
||||
cmds:
|
||||
- "{{.DOCKER_COMPOSE_CMD}} -f docker-compose.dev.yml down"
|
||||
|
||||
dev:restart:
|
||||
desc: Quick restart (fast!)
|
||||
cmds:
|
||||
- "{{.DOCKER_COMPOSE_CMD}} -f docker-compose.dev.yml restart"
|
||||
- echo "✅ MaplePress backend restarted"
|
||||
|
||||
dev:logs:
|
||||
desc: View app logs
|
||||
cmds:
|
||||
- "{{.DOCKER_COMPOSE_CMD}} -f docker-compose.dev.yml logs -f"
|
||||
|
||||
dev:shell:
|
||||
desc: Open shell in running container
|
||||
cmds:
|
||||
- docker exec -it maplepress-backend-dev sh
|
||||
|
||||
dev:check-infra:
|
||||
desc: Verify infrastructure is running
|
||||
silent: true
|
||||
cmds:
|
||||
- |
|
||||
if ! docker network inspect maple-dev >/dev/null 2>&1; then
|
||||
echo "❌ Infrastructure not running!"
|
||||
echo ""
|
||||
echo "Start it with:"
|
||||
echo " cd ../infrastructure/development && task dev:start"
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
if ! docker ps | grep -q maple-cassandra-1-dev; then
|
||||
echo "❌ Cassandra not running!"
|
||||
echo ""
|
||||
echo "Start it with:"
|
||||
echo " cd ../infrastructure/development && task dev:start"
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
echo "✅ Infrastructure is running"
|
||||
|
||||
# Database operations
|
||||
migrate:up:
|
||||
desc: Run all migrations up
|
||||
cmds:
|
||||
- ./maplepress-backend migrate up
|
||||
|
||||
migrate:down:
|
||||
desc: Run all migrations down
|
||||
cmds:
|
||||
- ./maplepress-backend migrate down
|
||||
|
||||
migrate:create:
|
||||
desc: Create new migration (usage task migrate:create -- create_users)
|
||||
cmds:
|
||||
- ./maplepress-backend migrate create {{.CLI_ARGS}}
|
||||
|
||||
db:clear:
|
||||
desc: Clear Cassandra database (drop and recreate keyspace)
|
||||
deps: [build]
|
||||
cmds:
|
||||
- echo "⚠️ Dropping keyspace 'maplepress'..."
|
||||
- docker exec maple-cassandra-1-dev cqlsh -e "DROP KEYSPACE IF EXISTS maplepress;"
|
||||
- echo "✅ Keyspace dropped"
|
||||
- echo "🔄 Running migrations to recreate schema..."
|
||||
- ./maplepress-backend migrate up
|
||||
- echo "✅ Database cleared and recreated"
|
||||
|
||||
db:reset:
|
||||
desc: Reset database using migrations (down then up)
|
||||
deps: [build]
|
||||
cmds:
|
||||
- echo "🔄 Running migrations down..."
|
||||
- ./maplepress-backend migrate down
|
||||
- echo "🔄 Running migrations up..."
|
||||
- ./maplepress-backend migrate up
|
||||
- echo "✅ Database reset complete"
|
||||
|
||||
# Build and test
|
||||
build:
|
||||
desc: Build the Go binary
|
||||
cmds:
|
||||
- task: wire
|
||||
- go build -o maplepress-backend
|
||||
|
||||
test:
|
||||
desc: Run tests
|
||||
cmds:
|
||||
- go test ./... -v
|
||||
|
||||
test:short:
|
||||
desc: Run short tests only
|
||||
cmds:
|
||||
- go test ./... -short
|
||||
|
||||
lint:
|
||||
desc: Run linters
|
||||
cmds:
|
||||
- task: nilaway
|
||||
- go vet ./...
|
||||
|
||||
nilaway:
|
||||
desc: Run nilaway static analyzer
|
||||
cmds:
|
||||
- nilaway ./...
|
||||
|
||||
wire:
|
||||
desc: Generate Wire dependency injection
|
||||
cmds:
|
||||
- cd app && wire
|
||||
|
||||
format:
|
||||
desc: Format code
|
||||
cmds:
|
||||
- go fmt ./...
|
||||
|
||||
tidy:
|
||||
desc: Tidy Go modules
|
||||
cmds:
|
||||
- go mod tidy
|
||||
|
||||
clean:
|
||||
desc: Clean build artifacts
|
||||
cmds:
|
||||
- rm -f maplepress-backend
|
||||
- rm -f app/wire_gen.go
|
||||
|
||||
deploy:
|
||||
desc: (DevOps only) Command will build the production container of this project and deploy to the private docker container registry.
|
||||
cmds:
|
||||
- docker build -f Dockerfile --rm -t registry.digitalocean.com/ssp/maplepress_backend:prod --platform linux/amd64 .
|
||||
- docker tag registry.digitalocean.com/ssp/maplepress_backend:prod registry.digitalocean.com/ssp/maplepress_backend:prod
|
||||
- docker push registry.digitalocean.com/ssp/maplepress_backend:prod
|
||||
Loading…
Add table
Add a link
Reference in a new issue