86 lines
2.7 KiB
YAML
86 lines
2.7 KiB
YAML
# 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"
|