119 lines
2.6 KiB
YAML
119 lines
2.6 KiB
YAML
version: "3"
|
|
|
|
method: checksum
|
|
|
|
vars:
|
|
# Go binary
|
|
GO_CMD:
|
|
sh: command -v go >/dev/null 2>&1 && echo "go"
|
|
|
|
# Go build flags
|
|
GO_FLAGS: '-ldflags="-s -w"'
|
|
|
|
# Server binary name
|
|
SERVER_BINARY: server
|
|
|
|
# Frontend binary name
|
|
FRONTEND_BINARY: frontend
|
|
|
|
# File extension
|
|
EXT: '{{ if eq .OS "windows" }}.exe{{ end }}'
|
|
|
|
# Tailwind binary
|
|
TAILWIND_CMD: "tailwindcss"
|
|
|
|
tasks:
|
|
# Development tasks
|
|
dev:
|
|
desc: Start development server with hot reload
|
|
cmds:
|
|
- task --parallel tailwind templ
|
|
|
|
run:
|
|
env:
|
|
STRAPI_TOKEN: 918aad014c203e302ee185628a0591b1bc875bd999cb9cd7b9c81fac68f275cda75ea806c7ea7b352253a680838887b65a09a9904c6a140bfb3b794d19083c2659d5ad210bca8044436d67b3f6db4d7262168f66b5748b367e8d3239167c185f3b0f0932f8e10800bfb6ad0355ec7d5ca1edbe0d06814bee0a92ab7ebcef3022
|
|
desc: Build and run go server binary
|
|
deps: [build, build-css]
|
|
cmds:
|
|
- "./dist/{{ .SERVER_BINARY }}{{ .EXT }}"
|
|
|
|
# Build tasks
|
|
build:
|
|
desc: Build go server binary
|
|
deps: [dist]
|
|
sources:
|
|
- "**/*.go"
|
|
- "go.mod"
|
|
- "go.sum"
|
|
generates:
|
|
- dist/server
|
|
cmds:
|
|
- "{{ .GO_CMD }} build {{ .GO_FLAGS }} -o dist/{{ .SERVER_BINARY }}{{ .EXT }} cmd/main.go"
|
|
|
|
build-queries:
|
|
desc: Builds GraphQL queries
|
|
cmds:
|
|
- "{{ .GO_CMD }} run github.com/Khan/genqlient"
|
|
|
|
build-css:
|
|
desc: Build CSS once
|
|
sources:
|
|
- web/static/css/input.css
|
|
- tailwind.config.js
|
|
generates:
|
|
- web/static/css/style.css
|
|
cmds:
|
|
- "{{ .TAILWIND_CMD }} -i ./web/static/css/input.css -o ./web/static/css/style.css"
|
|
|
|
build-all:
|
|
desc: Build everything (Go binary + CSS)
|
|
deps: [build, build-css, build-queries]
|
|
|
|
# Watch tasks
|
|
templ:
|
|
desc: Run templ with integrated server and hot reload
|
|
cmds:
|
|
- 'templ generate --watch --proxy="http://localhost:8080" --cmd="go run ./cmd/web/main.go" --open-browser=false'
|
|
|
|
tailwind:
|
|
desc: Watch TailwindCSS changes
|
|
cmds:
|
|
- "{{ .TAILWIND_CMD }} -i ./web/static/css/input.css -o ./web/static/css/style.css --watch"
|
|
|
|
# Utility tasks
|
|
deps:
|
|
desc: Install dependencies
|
|
cmds:
|
|
- "{{ .GO_CMD }} mod download"
|
|
|
|
clean:
|
|
desc: Clean build artifacts
|
|
cmds:
|
|
- rm -rf dist/
|
|
- rm -f web/static/css/style.css
|
|
|
|
dist:
|
|
internal: true
|
|
silent: true
|
|
status:
|
|
- test -d dist/
|
|
cmds:
|
|
- mkdir -p dist/
|
|
|
|
# Testing and linting
|
|
test:
|
|
desc: Run tests
|
|
cmds:
|
|
- "{{ .GO_CMD }} test ./..."
|
|
|
|
fmt:
|
|
desc: Format Go code
|
|
cmds:
|
|
- "{{ .GO_CMD }} fmt ./..."
|
|
|
|
vet:
|
|
desc: Run go vet
|
|
cmds:
|
|
- "{{ .GO_CMD }} vet ./..."
|
|
|