diff --git a/.devcontainer/bin/setup-dev-env b/.devcontainer/bin/setup-dev-env index 9c7983cef..066ac45d3 100755 --- a/.devcontainer/bin/setup-dev-env +++ b/.devcontainer/bin/setup-dev-env @@ -3,6 +3,7 @@ install-go-devtools() { go install github.com/go-delve/delve/cmd/dlv@latest go install honnef.co/go/tools/cmd/staticcheck@latest + go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest } setup-ci() { diff --git a/.golangci-lint.yml b/.golangci-lint.yml new file mode 100644 index 000000000..e805f6226 --- /dev/null +++ b/.golangci-lint.yml @@ -0,0 +1,24 @@ +--- +run: + timeout: 5m + +linters: + disable-all: true + + enable: + - errcheck + - goconst + - gocyclo + - gofumpt + - gosec + - gosimple + - govet + - ineffassign + - misspell + - revive + - staticcheck + - typecheck + - unconvert + - unparam + - unused + - whitespace diff --git a/tests.mk b/tests.mk index 18d9d53b9..9d23ecb7f 100644 --- a/tests.mk +++ b/tests.mk @@ -1,6 +1,7 @@ -SYSTEM := $(shell sh -c 'uname -s 2>/dev/null') DOKKU_SSH_PORT ?= 22 DOKKU_DOMAIN ?= dokku.me +GO_PLUGINS := $(shell sh -c 'find plugins -type f -name "go.mod" -exec dirname "{}" \; | sort -u | sed -e "s/$$/\/.../" | xargs') +SYSTEM := $(shell sh -c 'uname -s 2>/dev/null') bats: ifeq ($(SYSTEM),Darwin) @@ -130,6 +131,9 @@ lint-ci: lint-setup @echo linting... @cat tmp/shellcheck/test-files | xargs shellcheck | tests/shellcheck-to-junit --output test-results/shellcheck/results.xml --files tmp/shellcheck/test-files --exclude $(shell cat tmp/shellcheck/exclude) +lint-golang: + golangci-lint run $(GO_PLUGINS) + lint-shfmt: shfmt # verifying via shfmt # shfmt -l -bn -ci -i 2 -d .