version: '3' vars: IMAGE_NAME: hub.javil.eu/budgeteer tasks: default: cmds: - task: build-prod sqlc: desc: sqlc code generation sources: - ./sqlc.yaml - ./postgres/schema/* - ./postgres/queries/* generates: - ./postgres/*.sql.go cmds: - sqlc generate gomod: desc: Go modules sources: - ./go.mod - ./go.sum method: checksum cmds: - go mod download build: desc: Build budgeteer sources: - ./go.mod - ./go.sum - ./cmd/budgeteer/*.go - ./*.go - ./config/*.go - ./http/*.go - ./jwt/*.go - ./postgres/*.go - ./web/dist/**/* - ./postgres/schema/* generates: - build/budgeteer{{exeExt}} env: CGO_ENABLED: '0' cmds: - go build -o ./build/budgeteer{{exeExt}} ./cmd/budgeteer build-dev: desc: Build budgeteer in dev mode deps: [gomod, sqlc] cmds: - task: build build-prod: desc: Build budgeteer in prod mode deps: [gomod, sqlc, frontend] cmds: - task: build frontend: desc: Build vue frontend dir: web sources: - web/src/**/* generates: - web/dist/**/* cmds: - yarn - yarn build docker: desc: Build budgeeter:latest deps: [build-prod] sources: - ./build/budgeteer{{exeExt}} - ./build/Dockerfile cmds: - docker build -t {{.IMAGE_NAME}}:latest ./build - docker push {{.IMAGE_NAME}}:latest dev-docker: desc: Build budgeeter:dev sources: - ./docker/Dockerfile cmds: - docker build -t {{.IMAGE_NAME}}:dev . -f docker/Dockerfile - docker push {{.IMAGE_NAME}}:dev run: desc: Start budgeteer deps: [build-dev] cmds: - ./build/budgeteer{{exeExt}} rundocker: desc: Start docker-compose deps: [docker] cmds: - docker-compose up -d