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