Taskfile.yml
# yaml-language-server: $schema=https://taskfile.dev/schema.json
version: "3"
vars:
# Directories
BIN: bin
# Tool Versions
GO_ACC_VERSION: v0.2.6
GO_MOD_UPGRADE_VERSION: v0.6.1
GOLANGCI_LINT_VERSION: v1.49.0
GOTESTSUM_VERSION: v1.8.1
MOCKGEN_VERSION: v1.7.0-rc.1
WWHRD_VERSION: v0.3.0
env:
GOBIN: "{{.PWD}}/{{.BIN}}"
tasks:
tidy:
cmds:
- go mod tidy
deps:
cmds:
- go get
test:
cmds:
- go test -count=1 ./...
test-all:
cmds:
- go test -count=1 -tags=integration ./...
test-verbose:
cmds:
- go test -v -count=1 ./...
init-bin:
run: once
status:
- "test -d {{.BIN}}"
cmds:
- mkdir -p {{.BIN}}
install-test-tools:
run: once
deps:
- init-bin
status:
- go version -m {{.BIN}}/gotestsum | grep gotest.tools/gotestsum | grep {{.GOTESTSUM_VERSION}}
cmds:
- go install gotest.tools/gotestsum@{{.GOTESTSUM_VERSION}}
install-cover-tools:
run: once
deps:
- init-bin
status:
- go version -m {{.BIN}}/go-acc | grep github.com/ory/go-acc | grep {{.GO_ACC_VERSION}}
cmds:
- go install github.com/ory/go-acc@{{.GO_ACC_VERSION}}
install-mock-tools:
run: once
deps:
- init-bin
status:
- go version -m {{.BIN}}/mockgen | grep github.com/golang/mock | grep {{.MOCKGEN_VERSION}}
cmds:
- go install github.com/golang/mock/mockgen@{{.MOCKGEN_VERSION}}
install-certificate-tools:
run: once
deps:
- init-bin
status:
- go version -m {{.BIN}}/mkcert | grep github.com/FiloSottile/mkcert | grep {{.}}
cmds:
- go install github.com/FiloSottile/mkcert@{{.}}
install-license-tools:
run: once
deps:
- init-bin
status:
- go version -m {{.BIN}}/wwhrd | grep github.com/frapposelli/wwhrd | grep {{.WWHRD_VERSION}}
cmds:
- go install github.com/frapposelli/wwhrd@{{.WWHRD_VERSION}}
install-deps-tools:
run: once
deps:
- init-bin
status:
- go version -m {{.BIN}}/go-mod-upgrade | grep github.com/oligot/go-mod-upgrade | grep {{.GO_MOD_UPGRADE_VERSION}}
cmds:
- go install github.com/oligot/go-mod-upgrade@{{.GO_MOD_UPGRADE_VERSION}}
lint:
run: once
cmds:
- "golangci-lint run"
generate:
cmds:
- task: generate-mocks
- task: generate-cbor
- task: generate-docs
generate-mocks:
deps:
- install-mock-tools
cmds:
- go generate ./...
generate-docs:
cmds:
- go run cmd/docgen/main.go
generate-cbor:
cmds:
- go run cmd/cborgen/main.go
goreleaser:
desc: Run GoReleaser either in snapshot or release mode
vars:
NIGHTLY:
sh: 'if [[ $GITHUB_REF != refs/tags/v* ]]; then echo "GORELEASER_NIGHTLY=true GORELEASER_CURRENT_TAG=v0"; fi'
cmds:
- '{{ .NIGHTLY }} goreleaser release --timeout 30m --skip-validate --clean'