diff --git a/.circleci/config.yml b/.circleci/config.yml index 819fd8e..aa33a2d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -5,6 +5,30 @@ version: 2.1 # Define a job to be invoked later in a workflow. # See: https://circleci.com/docs/2.0/configuration-reference/#jobs jobs: + lint: + working_directory: ~/repo + docker: + - image: cimg/go:1.22.2 + steps: + - checkout + - restore_cache: + keys: + - go-mod-v4-{{ checksum "go.sum" }} + - run: + name: Install Dependencies + command: go mod download + - save_cache: + key: go-mod-v4-{{ checksum "go.sum" }} + paths: + - "/go/pkg/mod" + - run: + name: Install golangci-lint + command: | + curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin + - run: + name: Run golangci-lint + command: golangci-lint run --timeout=5m + testbuild: working_directory: ~/repo # Specify the execution environment. You can specify an image from Dockerhub or use one of our Convenience Images from CircleCI's Developer Hub. @@ -27,28 +51,12 @@ jobs: - "/go/pkg/mod" - run: name: Run tests - command: go test ./... + command: go test -race ./... - run: name: Run build command: go build ./... - store_test_results: path: /tmp/test-reports - lint: - docker: - - image: golangci/golangci-lint:v2.6.2-alpine - steps: - - checkout - - run: golangci-lint run - test: - docker: - # We use golang:bookworm instead of golang:alpine because we want to run - # tests with the race detector enabled. The race detector requires glibc, - # which is only present in the Debian-based containers. - - image: golang:1.25-bookworm - working_directory: ~/repo - steps: - - checkout - - run: go test -v -race ./... # Invoke jobs via workflows # See: https://circleci.com/docs/2.0/configuration-reference/#workflows workflows: