# CircleCI 2.0 configuration file # # Check https://circleci.com/docs/2.0/language-go/ for more details version: 2 jobs: test: docker: # specify the version - image: cimg/go:1.18.0 # Specify service dependencies here if necessary # CircleCI maintains a library of pre-built images # documented at https://circleci.com/docs/2.0/circleci-images/ # - image: circleci/postgres:9.4 #### TEMPLATE_NOTE: go expects specific checkout path representing url #### expecting it in the form of #### /go/src/github.com/circleci/go-tool #### /go/src/bitbucket.org/circleci/go-tool steps: - checkout # specify any bash command here prefixed with `run: ` - run: go version - run: go get -v -t -d ./... - run: bash gofmt.sh - run: go vet ./... - run: go test -failfast ./... # The resource_class feature allows configuring CPU and RAM resources for each job. Different resource classes are available for different executors. https://circleci.com/docs/2.0/configuration-reference/#resourceclass resource_class: large race: docker: # specify the version - image: cimg/go:1.18.0 # Specify service dependencies here if necessary # CircleCI maintains a library of pre-built images # documented at https://circleci.com/docs/2.0/circleci-images/ # - image: circleci/postgres:9.4 #### TEMPLATE_NOTE: go expects specific checkout path representing url #### expecting it in the form of #### /go/src/github.com/circleci/go-tool #### /go/src/bitbucket.org/circleci/go-tool steps: - checkout # specify any bash command here prefixed with `run: ` # BoltDB, no longer maintained, has pointer issues. However, it's run # for years without actual issue so disabling the pointer tests - run: go version - run: go get -t -d ./... - run: command: go test -failfast -v -timeout 20m -gcflags=all=-d=checkptr=0 -race ./... environment: GORACE: "halt_on_error=1" end_to_end: docker: - image: cimg/go:1.18.0 - image: consul - image: gcr.io/etcd-development/etcd:v3.5.1 steps: - checkout - run: sudo apt-get update - run: sudo apt-get install python3 - run: sudo apt install python3-pip - run: python3 -m pip install requests - run: go version - run: go get -t -d -v ./... - run: go install -tags osusergo,netgo,sqlite_omit_load_extension -ldflags="-extldflags=-static" ./... - run: command: python3 system_test/full_system_test.py environment: RQLITED_PATH: /home/circleci/go/bin/rqlited # The resource_class feature allows configuring CPU and RAM resources for each job. Different resource classes are available for different executors. https://circleci.com/docs/2.0/configuration-reference/#resourceclass resource_class: large workflows: version: 2 build_and_test: jobs: - test - race - end_to_end