# https://taskfile.dev version: '3' vars: GOBIN_ENV: sh: go env GOBIN GOPATH_ENV: sh: go env GOPATH BIN: '{{if .GOBIN_ENV}}{{.GOBIN_ENV}}{{else}}{{.GOPATH_ENV}}/bin{{end}}' tasks: default: desc: fmt, vet, and build deps: - fmt - lint - build-all fmt: desc: Format go files sources: - "**/*.go" cmds: - go fmt ./... lint: desc: Statically analyze code sources: - '**/*.go' cmds: - golangci-lint run test: desc: Run unit tests deps: [fmt] sources: - '**/*.go' generates: - build/cover.out cmds: - go test -race -cover -coverprofile build/cover.out ./... coverage-report: desc: Build coverage report deps: [test] sources: - build/cover.out generates: - build/cover.html cmds: - go tool cover -html=build/cover.out -o build/cover.html serve-report: desc: Serve the coverage report deps: [coverage-report] cmds: - ip addr list | grep inet - php -S 0.0.0.0:3434 -t build serve-docs: desc: Serve the current docs cmds: - godoc -http=0.0.0.0:3434 -play cmd-build: internal: true cmds: - go build -o build/ ./cmd/{{.CMD}} build-all: desc: Builds all available commands sources: - "**/*.go" generates: - build/convids - build/cool-down cmds: - task: cmd-build vars: CMD: "*"