From 511a81cab33ca98b5ff55a03dc2c2b8daad4e50c Mon Sep 17 00:00:00 2001 From: Dan Jones Date: Fri, 7 Mar 2025 16:25:40 -0600 Subject: [PATCH] =?UTF-8?q?=F0=9F=9B=A0=20Add=20Taskfile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 11 +++---- Taskfile.yml | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+), 6 deletions(-) create mode 100644 Taskfile.yml diff --git a/.gitignore b/.gitignore index 1a431c2..71f6a2d 100644 --- a/.gitignore +++ b/.gitignore @@ -11,11 +11,8 @@ # Test binary, built with `go test -c` *.test -# Output of the go coverage tool, specifically when used with LiteIDE -*.out - -# Dependency directories (remove the comment below to include it) -# vendor/ +# Dependency directories +vendor/ # Go workspace file go.work @@ -23,4 +20,6 @@ go.work.sum # env file .env -cover.* + +build/ +.task/ diff --git a/Taskfile.yml b/Taskfile.yml new file mode 100644 index 0000000..025ff4b --- /dev/null +++ b/Taskfile.yml @@ -0,0 +1,86 @@ +version: '3' + +tasks: + default: + cmds: + - task: fmt + - task: test + - task: build + + fmt: + desc: Format go code + sources: + - '**/*.go' + cmds: + - go fmt ./... + - go mod tidy + + gen: + desc: Generate files + sources: + - '**/*.go' + cmds: + - go generate ./... + + vet: + desc: Vet go code + sources: + - '**/*.go' + cmds: + - go vet ./... + + critic: + desc: Critique go code + sources: + - '**/*.go' + cmds: + - gocritic check ./... + + staticcheck: + desc: Static check go code + sources: + - '**/*.go' + cmds: + - staticcheck ./... + + vuln: + desc: Check for vulnerabilities + sources: + - '**/*.go' + cmds: + - govulncheck ./... + + lint: + desc: Do static analysis + deps: + - vet + - critic + - staticcheck + - vuln + + test: + desc: Run unit tests + deps: [fmt, vet] + 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:3265 -t build