# Since switch to cimg, the GOPATH has been changed from /go to $HOME/go. # The latter will expand to the full path of /home/circleci/go. # On first run, this change may affect caching and some other commands if # you don’t correct the page in your config. # # Specify service dependencies here if necessary # CircleCI maintains a library of pre-built images # documented at https://circleci.com/docs/circleci-images # - image: cimg/postgres:14.5.0 # # For more information, please read https://github.com/CircleCI-Public/cimg-go/blob/main/README.md version: 2 jobs: "test_core_and_drivers_with_coverage": docker: - image: cimg/go:1.22 steps: - checkout - run: name: Debug version command: go version - run: name: Core and drivers tests command: | go test -race -v -coverprofile=coverage.txt -covermode=atomic . ./drivers/... - run: name: Code coverage command: | bash <(curl -s https://codecov.io/bash) "test_platforms": docker: - image: cimg/go:1.22 steps: - checkout - run: name: Debug version command: go version - run: # digispark needs libusb, opencv needs opencv name: Platform tests (except digispark and opencv) command: | go test -race -v $(go list ./platforms/... | grep -v platforms/digispark | grep -v platforms/opencv) "check_examples": docker: - image: cimg/go:1.22 steps: - checkout - run: name: Debug version command: go version - run: # digispark needs libusb, opencv needs opencv name: Check examples (except digispark, opencv) command: | ALL=$(grep -l -r --include "*.go" 'build example' ./) SOME=$(grep -L 'digispark' $(grep -L 'gocv' ${ALL})) for e in ${SOME} ; do go vet "${e}" ; done "fmt_check_examples": docker: - image: golangci/golangci-lint:v1.61.0 steps: - checkout - run: name: Debug linter version command: golangci-lint --version - run: # digispark needs libusb, opencv needs opencv name: Check examples for linter issues (except digispark, opencv) command: | ALL=$(grep -l -r --include "*.go" 'build example' ./) SOME=$(grep -L 'digispark' $(grep -L 'gocv' ${ALL})) for e in ${SOME} ; do golangci-lint run "${e}" --build-tags example --disable forcetypeassert --disable noctx ; done workflows: version: 2 build: jobs: - "test_core_and_drivers_with_coverage" - "test_platforms" - "check_examples" - "fmt_check_examples"