linter.yml 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. name: Lint
  2. on:
  3. push:
  4. branches: [master]
  5. pull_request:
  6. branches: [master]
  7. types: [opened, synchronize, reopened]
  8. jobs:
  9. lint:
  10. runs-on: ubuntu-latest
  11. steps:
  12. - name: Set up Go 1.x
  13. uses: actions/setup-go@v2
  14. with:
  15. go-version: ^1.14
  16. - name: Checkout codebase
  17. uses: actions/checkout@v2
  18. - name: Cache go module
  19. uses: actions/cache@v2
  20. with:
  21. path: ~/go/pkg/mod
  22. key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
  23. restore-keys: ${{ runner.os }}-go-
  24. - name: Lint *.go files
  25. if: ${{ always() }}
  26. run: |
  27. go vet $(go list ./... | grep -v /external/)
  28. if [[ $? != 0 ]]; then
  29. exit 1
  30. fi
  31. - name: Lint other files
  32. if: ${{ always() }}
  33. uses: github/super-linter@v3.9.4
  34. env:
  35. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  36. VALIDATE_ALL_CODEBASE: false
  37. VALIDATE_BASH: false
  38. VALIDATE_DOCKERFILE: false
  39. VALIDATE_DOCKERFILE_HADOLINT: false
  40. VALIDATE_GO: false
  41. VALIDATE_JSON: false
  42. VALIDATE_MD: false
  43. VALIDATE_PROTOBUF: false
  44. - name: Show if need to format code
  45. if: ${{ always() }}
  46. run: |
  47. filesNeedToFormat=$(go fmt ./...)
  48. if [[ $filesNeedToFormat ]]; then
  49. echo -e "\033[0;36m[Error] The following Go files need to be formatted:\033[0m"
  50. echo -e "\033[0;31m$filesNeedToFormat\033[0m"
  51. exit 1
  52. fi
  53. - name: golangci-lint
  54. if: ${{ always() }}
  55. uses: golangci/golangci-lint-action@v2
  56. with:
  57. version: v1.31
  58. args: --config=.github/linters/.golangci.yml