Browse Source
* build: CircleCI 2.1 + build matrix * build: drop Go 1.9 & Go 1.10 * build: remove erroneous versionpull/602/head
1 changed files with 43 additions and 60 deletions
@ -1,87 +1,70 @@
@@ -1,87 +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/mux |
||||
steps: &steps |
||||
# Our build steps: we checkout the repo, fetch our deps, lint, and finally |
||||
# run "go test" on the package. |
||||
environment: |
||||
GO111MODULE: "on" |
||||
GOPROXY: "<< parameters.goproxy >>" |
||||
steps: |
||||
- checkout |
||||
# Logs the version in our build logs, for posterity |
||||
- run: go version |
||||
- run: |
||||
name: "Print the Go version" |
||||
command: > |
||||
go version |
||||
- run: |
||||
name: "Fetch dependencies" |
||||
command: > |
||||
go get -t -v ./... |
||||
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: |
||||
name: "Run golint" |
||||
command: > |
||||
if [ "${LATEST}" = true ] && [ -z "${SKIP_GOLINT}" ]; then |
||||
if [ << parameters.version >> = "latest" ] && [ << parameters.golint >> = true ]; then |
||||
go get -u golang.org/x/lint/golint |
||||
golint ./... |
||||
fi |
||||
- run: |
||||
name: "Run gofmt" |
||||
command: > |
||||
if [[ "${LATEST}" = true ]]; then |
||||
if [[ << parameters.version >> = "latest" ]]; then |
||||
diff -u <(echo -n) <(gofmt -d -e .) |
||||
fi |
||||
- run: |
||||
name: "Run go vet" |
||||
command: > |
||||
if [[ "${LATEST}" = true ]]; then |
||||
command: > |
||||
if [[ << parameters.version >> = "latest" ]]; 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 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"] |
||||
|
||||
Loading…
Reference in new issue