github.com/linuxboot/fiano@v1.2.0/.circleci/config.yml (about) 1 # Check https://circleci.com/docs/2.0/language-go/ for more details 2 version: 2 3 workflows: 4 version: 2 5 build_and_test: 6 jobs: 7 - clean-code 8 - test: 9 requires: 10 - clean-code 11 - race: 12 requires: 13 - clean-code 14 - coverage: 15 requires: 16 - clean-code 17 - check_licenses: 18 requires: 19 - clean-code 20 jobs: 21 clean-code: 22 docker: 23 - image: cimg/go:1.17 24 steps: 25 - checkout 26 - run: 27 name: Install ineffassign 28 command: | 29 go get -u github.com/gordonklaus/ineffassign 30 ineffassign ./... 31 - run: 32 name: Check dependencies 33 command: | 34 go mod download 35 go mod verify 36 - run: 37 name: gofmt 38 command: test -z "$(gofmt -s -l cmds pkg)" 39 test: 40 docker: 41 - image: cimg/go:1.17 42 steps: 43 - checkout 44 - run: 45 name: Test all 46 command: go test -a -ldflags '-s' ./... 47 - run: 48 name: Test coverage 49 command: go test -cover ./... 50 # https://circleci.com/docs/2.0/configuration-reference/#resourceclass 51 resource_class: medium 52 race: 53 docker: 54 - image: cimg/go:1.17 55 steps: 56 - checkout 57 - run: 58 name: Race detector 59 command: go test -race ./... 60 coverage: 61 docker: 62 - image: cimg/go:1.17 63 steps: 64 - checkout 65 - run: 66 name: Test Coverage 67 command: | 68 set -e 69 > coverage.txt 70 for d in $(go list ./... | grep -v vendor); do 71 go test -coverprofile=profile.out -covermode=atomic $d 72 if [ -f profile.out ]; then 73 cat profile.out >> coverage.txt 74 rm profile.out 75 fi 76 done 77 - run: 78 name: Report Coverage 79 when: on_success 80 command: bash <(curl -s https://codecov.io/bash) 81 check_licenses: 82 docker: 83 - image: cimg/go:1.17 84 steps: 85 - checkout 86 - run: 87 name: Check licenses 88 command: go run scripts/checklicenses/checklicenses.go