version: 2 references: workspace: &workspace /go/src/github.com/spf13/cobra run_tests: &run_tests run: name: "All Commands" command: | mkdir -p bin curl -Lso bin/shellcheck https://github.com/caarlos0/shellcheck-docker/releases/download/v0.4.6/shellcheck chmod +x bin/shellcheck go get -t -v ./... PATH=$PATH:$PWD/bin go test -v ./... go build if [ -z $NOVET ]; then diff -u <(echo -n) <(go vet . 2>&1 | grep -vE 'ExampleCommand|bash_completions.*Fprint'); fi jobs: go-current: docker: - image: circleci/golang:1.12 working_directory: *workspace steps: - checkout - *run_tests - run: name: "Check formatting" command: diff -u <(echo -n) <(gofmt -d -s .) go-previous: docker: - image: circleci/golang:1.11 working_directory: *workspace steps: - checkout - *run_tests go-latest: docker: - image: circleci/golang:latest working_directory: *workspace steps: - checkout - *run_tests workflows: version: 2 main: jobs: - go-current - go-previous - go-latest