version: 2.1 orbs: codecov: codecov/codecov@1.0.5 executors: exec_go_1_12: docker: - image: circleci/golang:1.12.16 exec_go_1_13: docker: - image: circleci/golang:1.13.8 exec_go_1_14: docker: - image: circleci/golang:1.14.0 commands: install: description: "Install dependencies" steps: - run: GO111MODULE=on go mod vendor -v vet: description: "Run go vet" steps: - run: go vet github.com/cucumber/godog - run: go vet github.com/cucumber/godog/gherkin - run: go vet github.com/cucumber/godog/colors fmt: description: "Run go fmt" steps: - run: test -z "$(go fmt ./...)" lint: description: "Run golint" steps: - run: go get -u golang.org/x/lint/golint - run: golint ./godog - run: golint ./cmd/godog/main.go godog: description: "Run godog" steps: - run: go install ./cmd/godog - run: godog -f progress --strict go_test: description: "Run go test" steps: - run: go test -v -race -coverprofile=coverage.txt -covermode=atomic coverage: description: "Report on code coverage" steps: - codecov/upload: file: "coverage.txt" all: description: "Run all commands against godog code" steps: - checkout - install - vet - fmt - lint - godog - go_test - coverage jobs: go1_12: working_directory: /go/src/github.com/cucumber/godog executor: exec_go_1_12 steps: - all go1_13: working_directory: /go/src/github.com/cucumber/godog executor: exec_go_1_13 steps: - all go1_14: working_directory: /go/src/github.com/cucumber/godog executor: exec_go_1_14 steps: - all workflows: version: 2 test: jobs: - go1_12 - go1_13 - go1_14