version: "3" vars: APP_NAME: voicepaste VERSION: sh: git describe --tags --always --dirty 2>/dev/null || echo "dev" EXE: sh: go env GOEXE tasks: default: desc: Build for current platform deps: [build:frontend] cmds: - go build -ldflags "-s -w -X main.version={{.VERSION}}" -o dist/{{.APP_NAME}}{{.EXE}} . build:frontend: desc: Build frontend with Vite dir: web sources: - "*.html" - "*.js" - "*.css" - "public/**/*" - vite.config.js generates: - dist/**/* cmds: - bun install --frozen-lockfile - bun run build run: desc: Build and run deps: [default] cmds: - ./dist/{{.APP_NAME}}{{.EXE}} dev: desc: Run with go run (skip frontend build) cmds: - go run . clean: desc: Clean build artifacts cmds: - rm -rf dist/ web/dist web/node_modules tidy: desc: Tidy Go modules cmds: - go mod tidy