88 lines
1.9 KiB
YAML
88 lines
1.9 KiB
YAML
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/mux
|
|
steps: &steps
|
|
# Our build steps: we checkout the repo, fetch our deps, lint, and finally
|
|
# run "go test" on the package.
|
|
- checkout
|
|
# Logs the version in our build logs, for posterity
|
|
- run: go version
|
|
- run:
|
|
name: "Fetch dependencies"
|
|
command: >
|
|
go get -t -v ./...
|
|
# Only run gofmt, vet & lint against the latest Go version
|
|
- run:
|
|
name: "Run golint"
|
|
command: >
|
|
if [ "${LATEST}" = true ] && [ -z "${SKIP_GOLINT}" ]; then
|
|
go get -u golang.org/x/lint/golint
|
|
golint ./...
|
|
fi
|
|
- run:
|
|
name: "Run gofmt"
|
|
command: >
|
|
if [[ "${LATEST}" = true ]]; then
|
|
diff -u <(echo -n) <(gofmt -d -e .)
|
|
fi
|
|
- run:
|
|
name: "Run go vet"
|
|
command: >
|
|
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"
|