Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
128 changes: 61 additions & 67 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,76 +1,70 @@
version: 2.0
version: 2.1

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
"test":
parameters:
version:
type: string
default: "latest"
golint:
type: boolean
default: true
modules:
type: boolean
default: true
goproxy:
type: string
default: ""
docker:
- image: circleci/golang:latest
- image: "circleci/golang:<< parameters.version >>"
working_directory: /go/src/github.com/gorilla/websocket
steps: &steps
environment:
GO111MODULE: "on"
GOPROXY: "<< parameters.goproxy >>"
steps:
- checkout
- run: go version
- run: go get -t -v ./...
- run:
name: "Print the Go version"
command: >
go version
- run:
name: "Fetch dependencies"
command: >
if [[ << parameters.modules >> = true ]]; then
go mod download
export GO111MODULE=on
else
go get -v ./...
fi
# 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
- run:
name: "Run golint"
command: >
if [ << parameters.version >> = "latest" ] && [ << parameters.golint >> = true ]; then
go get -u golang.org/x/lint/golint
golint ./...
fi
- run:
name: "Run gofmt"
command: >
if [[ << parameters.version >> = "latest" ]]; then
diff -u <(echo -n) <(gofmt -d -e .)
fi
- run:
name: "Run go vet"
command: >
if [[ << parameters.version >> = "latest" ]]; then
go vet -v ./...
fi
- run:
name: "Run go test (+ race detector)"
command: >
go test -v -race ./...

workflows:
version: 2
build:
tests:
jobs:
- "latest"
- "1.12"
- "1.11"
- "1.10"
- "1.9"
- "1.8"
- "1.7"
- test:
matrix:
parameters:
version: ["latest", "1.15", "1.14", "1.13", "1.12", "1.11"]