mirror of
https://github.com/MizuchiLabs/mantrae.git
synced 2025-12-16 20:05:17 -06:00
116 lines
2.6 KiB
YAML
116 lines
2.6 KiB
YAML
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
|