Improve dev container and taskfile
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing

This commit is contained in:
2022-04-08 20:14:40 +00:00
parent 9b5119d3dd
commit 6b3026dc8e
16 changed files with 110 additions and 75 deletions

View File

@ -5,31 +5,32 @@ vars:
tasks:
default:
desc: Build budgeteer in production mode
deps: [frontend, cover]
cmds:
- task: build-prod
- task: backend
- task: cover
sqlc:
desc: sqlc code generation
sources:
- ./sqlc.yaml
- ./postgres/schema/*
- ./postgres/queries/*
generates:
- ./postgres/*.sql.go
run:
desc: Start budgeteer
deps: [backend]
cmds:
- sqlc generate
- ./build/budgeteer{{exeExt}}
gomod:
desc: Go modules
sources:
- ./go.mod
- ./go.sum
method: checksum
dev:
desc: Build budgeteer in dev mode (without frontend)
cmds:
- go mod download
- task: backend
build:
ci:
desc: Run CI build
deps: [go-lint, go-vet, go-fmt, js-tsc, js-lint]
cmds:
- task: default
backend:
desc: Build budgeteer
deps: [go-mod, go-sqlc]
sources:
- ./go.mod
- ./go.sum
@ -43,29 +44,37 @@ tasks:
cmds:
- go build -o ./build/budgeteer{{exeExt}} ./cmd/budgeteer
build-dev:
desc: Build budgeteer in dev mode
deps: [gomod, sqlc]
go-vet:
cmds:
- go vet
- go fmt
- golangci-lint run
- task: build
build-prod:
desc: Build budgeteer in prod mode
deps: [gomod, sqlc, frontend]
go-fmt:
cmds:
- go vet
- go fmt
- golangci-lint run
- task: build
ci:
desc: Run CI build
go-lint:
cmds:
- task: build-prod
- task: cover
- 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
@ -75,26 +84,40 @@ tasks:
frontend:
desc: Build vue frontend
dir: web
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
- yarn build
- yarn run vue-tsc --noEmit
- yarn run eslint "./src/**"
docker:
desc: Build budgeeter:latest
deps: [build-prod]
sources:
- ./build/budgeteer{{exeExt}}
- ./build/Dockerfile
js-tsc:
dir: web
deps: [js-mod]
cmds:
- docker build -t {{.IMAGE_NAME}}:latest ./build
- docker push {{.IMAGE_NAME}}:latest
- yarn run vue-tsc --noEmit
js-lint:
dir: web
deps: [js-mod]
cmds:
- yarn run eslint "./src/**"
dev-docker:
desc: Build budgeeter:dev
@ -103,17 +126,11 @@ tasks:
- ./web/package.json
- ./web/yarn.lock
cmds:
- docker build -t {{.IMAGE_NAME}}:dev . -f docker/Dockerfile.dev
- docker push {{.IMAGE_NAME}}:dev
run:
desc: Start budgeteer
deps: [build-dev]
- 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:
- ./build/budgeteer{{exeExt}}
rundocker:
desc: Start docker-compose
deps: [docker]
cmds:
- docker-compose up -d
- docker-compose -f docker/docker-compose.dev.yml -p budgeteer up -d