version: 2.1 orbs: go: circleci/go@0.2.0 prometheus: prometheus/prometheus@0.16.0 jobs: test: parameters: go_version: type: string run_style_and_unused: type: boolean default: false run_lint: type: boolean default: false use_gomod_cache: type: boolean default: true docker: - image: circleci/golang:<< parameters.go_version >> working_directory: /go/src/github.com/prometheus/client_golang steps: - checkout - when: condition: << parameters.use_gomod_cache >> steps: - go/load-cache: key: v1-go<< parameters.go_version >> - run: make check_license test - when: condition: << parameters.run_lint >> steps: - run: make lint - when: condition: << parameters.run_style_and_unused >> steps: - run: make style unused - when: condition: << parameters.use_gomod_cache >> steps: - go/save-cache: key: v1-go<< parameters.go_version >> - store_test_results: path: test-results workflows: version: 2 client_golang: jobs: # Refer to README.md for the currently supported versions. - test: name: go-1-15 go_version: "1.15" run_lint: true - test: name: go-1-16 go_version: "1.16" run_lint: true - test: name: go-1-17 go_version: "1.17" run_lint: true run_style_and_unused: true