config.yml 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. version: 2.1
  2. jobs:
  3. "test":
  4. parameters:
  5. version:
  6. type: string
  7. default: "latest"
  8. golint:
  9. type: boolean
  10. default: true
  11. modules:
  12. type: boolean
  13. default: true
  14. goproxy:
  15. type: string
  16. default: ""
  17. docker:
  18. - image: "circleci/golang:<< parameters.version >>"
  19. working_directory: /go/src/github.com/gorilla/websocket
  20. environment:
  21. GO111MODULE: "on"
  22. GOPROXY: "<< parameters.goproxy >>"
  23. steps:
  24. - checkout
  25. - run:
  26. name: "Print the Go version"
  27. command: >
  28. go version
  29. - run:
  30. name: "Fetch dependencies"
  31. command: >
  32. if [[ << parameters.modules >> = true ]]; then
  33. go mod download
  34. export GO111MODULE=on
  35. else
  36. go get -v ./...
  37. fi
  38. # Only run gofmt, vet & lint against the latest Go version
  39. - run:
  40. name: "Run golint"
  41. command: >
  42. if [ << parameters.version >> = "latest" ] && [ << parameters.golint >> = true ]; then
  43. go get -u golang.org/x/lint/golint
  44. golint ./...
  45. fi
  46. - run:
  47. name: "Run gofmt"
  48. command: >
  49. if [[ << parameters.version >> = "latest" ]]; then
  50. diff -u <(echo -n) <(gofmt -d -e .)
  51. fi
  52. - run:
  53. name: "Run go vet"
  54. command: >
  55. if [[ << parameters.version >> = "latest" ]]; then
  56. go vet -v ./...
  57. fi
  58. - run:
  59. name: "Run go test (+ race detector)"
  60. command: >
  61. go test -v -race ./...
  62. workflows:
  63. tests:
  64. jobs:
  65. - test:
  66. matrix:
  67. parameters:
  68. version: ["latest", "1.15", "1.14", "1.13", "1.12", "1.11"]