version: "3" env: CGO_ENABLED: 0 GOBIN: "{{.USER_WORKING_DIR}}/bin" PROJECT: "git.loyso.art/frx/kurious" vars: GIT_COMMIT: sh: git log -n 1 --format=%h GIT_VERSION: sh: git tag | sort -r --version-sort | head -n1 BUILD_TIME: sh: TZ=UTC date -u +"%Y-%m-%dT%H:%M:%SZ" LDFLAGS: sh: echo '-X "{{.PROJECT}}.buildTime={{.BUILD_TIME}}" -X "{{.PROJECT}}.commit={{.GIT_COMMIT}}" -X "{{.PROJECT}}.version={{.GIT_VERSION}}"' tasks: install_tools: cmds: - "[[ ! -f $GOBIN/golangci-lint ]] && go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.55.2 || echo golang-ci lint installed" - "rm -rf $GOBIN/templ && go install github.com/a-h/templ/cmd/templ@v0.2.707 || echo templ installed" - "[[ ! -f $GOBIN/mockery ]] && go install github.com/vektra/mockery/v2@v2.42.1 || echo mockery installed" generate: run: once cmds: - "$GOBIN/templ generate" sources: - "internal/kurious/ports/http/templ/*.templ" - "internal/kurious/ports/http/bootstrap/*.templ" generates: - "internal/kurious/ports/http/templ/*.go" - "internal/kurious/ports/http/bootstrap/*.go" deps: - install_tools mocks: run: once cmd: "go generate ./internal/..." deps: - install_tools check: run: once cmds: - "$GOBIN/golangci-lint run ./..." deps: - generate test: run: once cmds: - go test ./internal/... deps: - generate build_web: cmds: - go build -o $GOBIN/kuriousweb -v -ldflags '{{.LDFLAGS}}' cmd/kuriweb/*.go deps: [check, test] build_background: cmds: - go build -o $GOBIN/kuriousbg -v -ldflags '{{.LDFLAGS}}' cmd/background/*.go deps: [check, test] build_dev_cli: cmds: - go build -o $GOBIN/sravnicli -v -ldflags '{{.LDFLAGS}}' cmd/dev/sravnicli/*.go deps: [check, test] build: cmds: - task: build_dev_cli - task: build_background - task: build_web run: deps: [build] cmds: - $GOBIN/kuriousweb