version: 2.0 jobs: # Base test configuration for Go library tests Each distinct version should # inherit this base, and override (at least) the container image used. "test": &test docker: - image: circleci/golang:latest working_directory: /go/src/github.com/gorilla/websocket steps: &steps - checkout - run: go version - run: go get -t -v ./... # Only run gofmt, vet & lint against the latest Go version - run: > if [[ "$LATEST" = true ]]; then go get -u golang.org/x/lint/golint golint ./... fi - run: > if [[ "$LATEST" = true ]]; then diff -u <(echo -n) <(gofmt -d .) fi - run: > if [[ "$LATEST" = true ]]; then go vet -v . fi - run: if [[ "$LATEST" = true ]]; then go vet -v .; fi - run: go test -v -race ./... "latest": <<: *test environment: LATEST: true "1.12": <<: *test docker: - image: circleci/golang:1.12 "1.11": <<: *test docker: - image: circleci/golang:1.11 "1.10": <<: *test docker: - image: circleci/golang:1.10 "1.9": <<: *test docker: - image: circleci/golang:1.9 "1.8": <<: *test docker: - image: circleci/golang:1.8 "1.7": <<: *test docker: - image: circleci/golang:1.7 workflows: version: 2 build: jobs: - "latest" - "1.12" - "1.11" - "1.10" - "1.9" - "1.8" - "1.7"