backend-lint.sh 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/bin/bash
  2. function exit_if_fail {
  3. command=$@
  4. echo "Executing '$command'"
  5. eval $command
  6. rc=$?
  7. if [ $rc -ne 0 ]; then
  8. echo "'$command' returned $rc."
  9. exit $rc
  10. fi
  11. }
  12. go get -u github.com/alecthomas/gometalinter
  13. go get -u github.com/jgautheron/goconst/cmd/goconst
  14. go get -u honnef.co/go/tools/cmd/staticcheck
  15. go get -u github.com/golangci/golangci-lint/cmd/golangci-lint
  16. # use gometalinter when lints are not available in golangci or
  17. # when gometalinter is better. Eg. goconst for gometalinter does not lint test files
  18. # which is not desired.
  19. exit_if_fail gometalinter --enable-gc --vendor --deadline 10m --disable-all \
  20. --enable=goconst\
  21. --enable=staticcheck
  22. # use golangci-when possible
  23. exit_if_fail golangci-lint run --deadline 10m --disable-all \
  24. --enable=deadcode\
  25. --enable=gofmt\
  26. --enable=gosimple\
  27. --enable=govet\
  28. --enable=ineffassign\
  29. --enable=structcheck\
  30. --enable=typecheck\
  31. --enable=unconvert\
  32. --enable=unused\
  33. --enable=varcheck
  34. exit_if_fail go vet ./pkg/...
  35. exit_if_fail make revive
  36. exit_if_fail make revive-alerting
  37. exit_if_fail make gosec