# 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, lint, test deps: - fmt - lint - test fmt: desc: Format go files sources: - "*.go" cmds: - go fmt ./... lint: desc: Statically analyze code sources: - '*.go' cmds: - golangci-lint run test: desc: Run all tests 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] sources: - build/cover.html cmds: - ip addr list | grep inet - python3 -m http.server -d build/ 3434 serve-docs: desc: Serve the docs cmds: - godoc -http=0.0.0.0:3434 -play