neo-go/.circleci/config.yml
Anna Shaleva 35590f0c96 circleci: update cache key to avoid fetching outdated cache
Avoid the following problem:
```
Found a cache from build 55879 at deps-
Size: 178 MiB
Cached paths:
  * /go/pkg/mod

Downloading cache archive...
Validating cache...

Unarchiving cache...

Failed to unarchive cache

Error untarring cache: Error extracting tarball /tmp/cache87609141 : tar: go: Cannot mkdir: Permission denied tar: go/pkg/mod: Cannot mkdir: No such file or directory tar: go: Cannot mkdir: Permission denied tar: go/pkg/mod/cache: Cannot mkdir: No such file or directory tar: go: Cannot mkdir: Permission denied tar: go/pkg/mod/cache/download: Cannot mkdir: No such file or directory tar: go: Cannot mkdir: Permission denied tar: go/pkg/mod/cache/download/cloud.google.com: Cannot mkdir: No such file or directory tar: go: Cannot mkdir: Permission denied tar: go/pkg/mod/cache/download/cloud.google.com/go: Cannot mkdir: No such file or directory tar: go: Cannot mkdir: Permission denied tar: go/pkg/mod/cache/download/cloud.google.com/go/@v: Cannot mkdir: No such file or directory tar: go: Cannot mkdir: Permission denied tar: go/pkg/mod/cache/download/cloud.google.com/go/@v/list: Cannot open: No such file or directory tar: go: Cannot mkdir: Permission denied tar: go/pkg/mod/cache/download/cloud.google.com/go/@v/list.lock: Cannot open: No such file or directory tar: go: Cannot mkdir: Pe: exit status 2
```
2022-03-30 12:18:01 +03:00

134 lines
3.3 KiB
YAML

version: 2.1
executors:
go1_16:
docker:
- image: cimg/go:1.16
environment:
GO111MODULE: "on"
go1_17:
docker:
- image: cimg/go:1.17
go1_18:
docker:
- image: cimg/go:1.18
commands:
gomod:
steps:
- restore_cache:
keys: [deps-v2-]
- run:
name: Download go module dependencies
command: go mod download
- save_cache:
key: deps-v2-{{ checksum "go.sum" }}-{{ checksum "go.sum" }}
paths: [/home/circleci/go/pkg/mod]
jobs:
lint:
working_directory: /home/circleci/go/src/github.com/nspcc-dev/neo-go
# TODO: temp workaround, need to upgrade to go1_18 after https://github.com/golangci/golangci-lint/issues/2649 is resolved.
executor: go1_17
steps:
- checkout
- gomod
- run:
name: go-lint
command: |
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.44.2
make lint
test_1_16:
working_directory: /home/circleci/go/src/github.com/nspcc-dev/neo-go
executor: go1_16
steps:
- checkout
- run: git submodule sync
- run: git submodule update --init
- gomod
- run: go test -v -race ./...
test_1_17:
working_directory: /home/circleci/go/src/github.com/nspcc-dev/neo-go
executor: go1_17
steps:
- checkout
- run: git submodule sync
- run: git submodule update --init
- gomod
- run: go test -v -race ./...
test_1_18:
working_directory: /home/circleci/go/src/github.com/nspcc-dev/neo-go
executor: go1_18
steps:
- checkout
- run: git submodule sync
- run: git submodule update --init
- gomod
- run: go test -v -race ./...
build_cli:
working_directory: /home/circleci/go/src/github.com/nspcc-dev/neo-go
executor: go1_18
steps:
- checkout
- gomod
- run: make build
- store_artifacts:
path: bin
destination: /
build_image:
working_directory: /home/circleci/go/src/github.com/nspcc-dev/neo-go
executor: go1_18
docker:
- image: golang:1-alpine
steps:
- run: apk update && apk add git make curl tar
- checkout
- gomod
- setup_remote_docker:
version: 20.10.6
- run:
name: Install Docker client
command: |
set -x
VER="20.10.6"
curl -L -o /tmp/docker-$VER.tgz https://download.docker.com/linux/static/stable/x86_64/docker-$VER.tgz
tar -xz -C /tmp -f /tmp/docker-$VER.tgz
mv /tmp/docker/* /usr/bin
- run: make image
workflows:
version: 2
workflow:
jobs:
- lint:
filters:
tags:
only: v/[0-9]+\.[0-9]+\.[0-9]+/
- test_1_16:
filters:
tags:
only: v/[0-9]+\.[0-9]+\.[0-9]+/
- test_1_17:
filters:
tags:
only: v/[0-9]+\.[0-9]+\.[0-9]+/
- test_1_18:
filters:
tags:
only: v/[0-9]+\.[0-9]+\.[0-9]+/
- build_cli:
filters:
tags:
only: v/[0-9]+\.[0-9]+\.[0-9]+/
- build_image:
requires:
- build_cli
filters:
tags:
only: v/[0-9]+\.[0-9]+\.[0-9]+/