Skip to content

Commit

Permalink
build: CircleCI 2.1 build matrix (gorilla#595)
Browse files Browse the repository at this point in the history
* build: CircleCI 2.1   build matrix

* build: drop Go 1.9 & Go 1.10

* build: remove erroneous version
  • Loading branch information
elithrar authored Sep 12, 2020
1 parent 98cb6bf commit d07530f
Showing 1 changed file with 43 additions and 60 deletions.
103 changes: 43 additions & 60 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -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"]

0 comments on commit d07530f

Please sign in to comment.