gods/.circleci/config.yml
2022-04-06 18:12:01 +02:00

55 lines
1.4 KiB
YAML

version: 2.1
jobs:
test:
parameters:
version:
type: string
default: "latest"
working_directory: ~/gods
docker:
- image: circleci/golang:<<parameters.version>>
steps:
- checkout
- run:
name: Print Go version (go version)
command: |
go version
- run:
name: Run tests (gotestsum)
command: |
mkdir -p /tmp/test-reports
gotestsum --junitfile /tmp/test-reports/unit-tests.xml
- run:
name: Lint (golint)
command: |
go install github.com/golang/lint/golint@latest
golint -set_exit_status ./...
- run:
name: Enforce formatted code (go fmt)
command: |
! go fmt ./... 2>&1 | read
- run:
name: Examine and report suspicious constructs (go vet)
command: |
go vet -v ./...
- run:
name: Calculate cyclomatic complexity (gocyclo)
command: |
go install github.com/fzipp/gocyclo@latest
gocyclo -avg -over 15 .
- run:
name: Check for unchecked errors (errcheck)
command: |
go install github.com/kisielk/errcheck@latest
errcheck ./...
- store_test_results:
path: /tmp/test-reports
workflows:
test:
jobs:
- test:
matrix:
parameters:
version: ["1.18", "1.17", "1.10"]