diff --git a/.circleci/config.yml b/.circleci/config.yml index 39ded4f2..2dff0101 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,10 +1,9 @@ version: 2 # global environment variables -# '& ' syntax is a YAML thing for creating referenceable documents env-shared: &env-shared environment: - GOFLAGS: "-mod=vendor" + GOFLAGS: "" # build steps shared across different jobs build-shared: &build-shared @@ -13,51 +12,49 @@ build-shared: &build-shared - run: name: Run gofmt -s command: | - if [ $(find . ! -path "./vendor/*" -name "*.go" -exec gofmt -s -d {} \;|wc -l) -gt 0 ]; then - find . ! -path "./vendor/*" -name "*.go" -exec gofmt -s -d {} \; + if [ $(find . -name "*.go" -exec gofmt -s -d {} \;|wc -l) -gt 0 ]; then + find . -name "*.go" -exec gofmt -s -d {} \; exit 1; fi - restore_cache: keys: - - pkg-cache-{{ checksum "go.sum" }}-v5 + - pkg-cache-{{ checksum "go.sum" }}-v6 + - run: + name: Download dependencies + command: go mod download - run: name: Run tests command: | go test -v ./... - run: name: Get gox - # -mod=vendor doesn't work with go get while in source tree with go.mod in it - working_directory: "/tmp" command: | - go get github.com/mitchellh/gox + go install github.com/mitchellh/gox@latest - run: name: Compile project on every platform command: | - gox -parallel 10 -os "linux freebsd" -osarch "darwin/i386 darwin/amd64 windows/i386 windows/amd64" + gox -parallel 10 -os "linux freebsd" -osarch "darwin/amd64 darwin/arm64 windows/amd64" - save_cache: - key: pkg-cache-{{ checksum "go.sum" }}-v5 + key: pkg-cache-{{ checksum "go.sum" }}-v6 paths: - ~/.cache/go-build + - /go/pkg/mod jobs: - # matrix build jobs run on every commit - # building on versioned Go and the latest one - # '<<: *' syntax is a YAML thing for including documents - "golang:1.17": + "golang:1.21": <<: *env-shared <<: *build-shared docker: - - image: circleci/golang:1.17 + - image: cimg/go:1.21 "golang:latest": <<: *env-shared <<: *build-shared docker: - - image: circleci/golang:latest - # release job run only when a commit is tagged + - image: cimg/go:1.23 release: <<: *env-shared docker: - - image: circleci/golang:1.17 + - image: cimg/go:1.21 steps: - checkout - run: @@ -73,8 +70,7 @@ workflows: version: 2 build: jobs: - # build matrix - - "golang:1.17" + - "golang:1.21" - "golang:latest" release: jobs: