35590f0c96
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 ```
134 lines
3.3 KiB
YAML
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]+/
|