138 lines
2.4 KiB
YAML
138 lines
2.4 KiB
YAML
version: '3'
|
|
|
|
vars:
|
|
IMAGE_NAME: hub.javil.eu/budgeteer
|
|
|
|
tasks:
|
|
default:
|
|
desc: Build budgeteer in production mode
|
|
deps: [frontend]
|
|
cmds:
|
|
- task: backend
|
|
|
|
run:
|
|
desc: Start budgeteer
|
|
deps: [backend]
|
|
cmds:
|
|
- ./build/budgeteer{{exeExt}}
|
|
|
|
dev:
|
|
desc: Build budgeteer in dev mode (without frontend)
|
|
cmds:
|
|
- task: backend
|
|
|
|
ci:
|
|
desc: Run CI build
|
|
cmds:
|
|
- task: default
|
|
- task: static
|
|
|
|
static:
|
|
deps: [go-lint, go-vet, go-fmt, js-tsc, js-lint, cover]
|
|
|
|
backend:
|
|
desc: Build budgeteer
|
|
deps: [go-mod, go-sqlc]
|
|
sources:
|
|
- ./go.mod
|
|
- ./go.sum
|
|
- ./**/*.go
|
|
- ./web/dist/**/*
|
|
- ./postgres/schema/*
|
|
generates:
|
|
- build/budgeteer{{exeExt}}
|
|
env:
|
|
CGO_ENABLED: '0'
|
|
cmds:
|
|
- go build -o ./build/budgeteer{{exeExt}} ./cmd/budgeteer
|
|
|
|
go-vet:
|
|
cmds:
|
|
- go vet
|
|
|
|
go-fmt:
|
|
cmds:
|
|
- go fmt
|
|
|
|
go-lint:
|
|
cmds:
|
|
- golangci-lint run
|
|
|
|
go-sqlc:
|
|
desc: sqlc code generation
|
|
sources:
|
|
- ./sqlc.yaml
|
|
- ./postgres/schema/*
|
|
- ./postgres/queries/*
|
|
generates:
|
|
- ./postgres/*.sql.go
|
|
cmds:
|
|
- sqlc generate
|
|
|
|
go-mod:
|
|
desc: Go modules
|
|
sources:
|
|
- ./go.mod
|
|
- ./go.sum
|
|
method: checksum
|
|
cmds:
|
|
- go mod download
|
|
|
|
cover:
|
|
desc: Run test and analyze coverage
|
|
cmds:
|
|
- go test ./... -coverprofile=coverage.out -covermode=atomic
|
|
- go tool cover -html=coverage.out -o=coverage.html
|
|
|
|
frontend:
|
|
desc: Build vue frontend
|
|
deps: [js-build]
|
|
sources:
|
|
- web/src/**/*
|
|
generates:
|
|
- web/dist/**/*
|
|
|
|
frontend-dev:
|
|
desc: Run dev-server for frontend
|
|
dir: web
|
|
cmds:
|
|
- yarn run dev
|
|
|
|
js-build:
|
|
dir: web
|
|
deps: [js-mod]
|
|
cmds:
|
|
- yarn build
|
|
|
|
js-mod:
|
|
dir: web
|
|
cmds:
|
|
- yarn
|
|
|
|
js-tsc:
|
|
dir: web
|
|
deps: [js-mod]
|
|
cmds:
|
|
- yarn run vue-tsc --noEmit
|
|
|
|
js-lint:
|
|
dir: web
|
|
deps: [js-mod]
|
|
cmds:
|
|
- yarn run eslint "./src/**"
|
|
|
|
dev-docker:
|
|
desc: Build budgeeter:dev
|
|
sources:
|
|
- ./docker/Dockerfile.dev
|
|
- ./web/package.json
|
|
- ./web/yarn.lock
|
|
cmds:
|
|
- docker build -t {{.IMAGE_NAME}}:dev . -f docker/Dockerfile.dev
|
|
- docker push {{.IMAGE_NAME}}:dev
|
|
|
|
run-dev:
|
|
desc: Run dev environment in docker
|
|
deps: [dev-docker]
|
|
cmds:
|
|
- docker-compose -f docker/docker-compose.dev.yml -p budgeteer up -d |