version: "3" output: prefixed env: CGO_ENABLED: 0 IMAGE_SERVER_DEV: ko.local/mantrae IMAGE_AGENT_DEV: ko.local/mantrae-agent IMAGE_SERVER_PROD: ghcr.io/mizuchilabs/mantrae IMAGE_AGENT_PROD: ghcr.io/mizuchilabs/mantrae-agent vars: VERSION: sh: git describe --tags --abbrev=0 COMMIT: sh: git rev-parse --short HEAD DATE: sh: date -u +%Y-%m-%d LDFLAGS: >- -s -w -X 'github.com/mizuchilabs/mantrae/pkg/meta.Version={{.VERSION}}' -X 'github.com/mizuchilabs/mantrae/pkg/meta.Commit={{.COMMIT}}' -X 'github.com/mizuchilabs/mantrae/pkg/meta.Date={{.DATE}}' tasks: dev: desc: Run Go backend and Vite frontend concurrently deps: [backend, frontend] backend: desc: Run Go backend cmds: - go run server/cmd/main.go silent: false frontend: desc: Run Vite frontend cmds: - pnpm run dev dir: web silent: false agent: desc: Run Go agent cmds: - go run agent/cmd/main.go silent: false test: desc: Run Go tests cmds: - go vet ./... - go test ./... - golangci-lint run # 󰚰 Update deps update: desc: Update dependencies cmds: - go get -u ./... - cd web && pnpm update --latest #  Generate code gen: desc: Generate sqlc and buf cmds: - buf generate --clean - sqlc generate - go run -tags dev server/cmd/main.go -zod #  Build binary build: desc: Build Go binary deps: [build:frontend] cmds: - go build -o bin/server -ldflags="{{.LDFLAGS}}" ./server/cmd - go build -o bin/agent -ldflags="{{.LDFLAGS}}" ./agent/cmd - upx -9 bin/server - upx -9 bin/agent # 🏗 Build frontend build:frontend: desc: Build Svelte frontend dir: web cmds: - pnpm install - pnpm build cleanup:tags: desc: "Delete all tags older than cutoff (local + remote)" vars: CUTOFF: '{{.CUTOFF | default "v0.7.0"}}' cmds: - | for tag in $(git tag | sort -V | awk '$1 < "{{.CUTOFF}}"'); do echo "Deleting tag $tag" git tag -d "$tag" git push --delete origin "$tag" done # 󱓞 Release release: desc: Build and release Go binary deps: [build:frontend] cmds: - goreleaser release --clean --skip=validate # 󰡨 Build container docker:build: desc: Build local test container with ko deps: [build:frontend] cmds: - KO_DOCKER_REPO=$IMAGE_SERVER_DEV ko build ./server/cmd --bare - KO_DOCKER_REPO=$IMAGE_AGENT_DEV ko build ./agent/cmd --bare - grype $IMAGE_SERVER_DEV - grype $IMAGE_AGENT_DEV