version: '3' vars: IMAGE_NAME: hub.javil.eu/budgeteer tasks: default: desc: Build budgeteer in production mode deps: [frontend, go-mod, go-sqlc] cmds: - task: backend run: desc: Start budgeteer deps: [backend, go-mod, go-sqlc] cmds: - ./build/budgeteer{{exeExt}} dev: desc: Build budgeteer in dev mode (without frontend) deps: [go-mod, go-sqlc] cmds: - task: backend ci: desc: Run CI build deps: [default, static] static: deps: [go-lint, go-vet, go-fmt, js-tsc, js-lint, cover] backend: desc: Build budgeteer 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: run: once sources: - web/src/package.json - web/src/yarn.lock generates: - web/node_modules/**/* 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