neo-go/.circleci/config.yml
2019-08-29 18:51:27 +03:00

125 lines
2.8 KiB
YAML

version: 2.1
executors:
go1_11:
docker:
- image: circleci/golang:1.11
environment:
GO111MODULE: "on"
go1_12:
docker:
- image: circleci/golang:1.12
environment:
GO111MODULE: "on"
commands:
gomod:
steps:
- restore_cache:
keys: [deps-]
- run:
name: Download go module dependencies
command: go mod download
- save_cache:
key: deps-{{ checksum "go.sum" }}-{{ checksum "go.sum" }}
paths: [/go/pkg/mod]
jobs:
lint:
working_directory: /go/src/github.com/CityOfZion/neo-go
executor: go1_12
steps:
- checkout
- gomod
- run:
name: go-lint
command: |
go get -u -v golang.org/x/lint/golint
golint -set_exit_status ./...
vet:
working_directory: /go/src/github.com/CityOfZion/neo-go
executor: go1_12
steps:
- checkout
- gomod
- run:
name: go-vet
command: go vet ./...
test_1_11:
working_directory: /go/src/github.com/CityOfZion/neo-go
executor: go1_11
steps:
- checkout
- gomod
- run: go test -v -race ./...
test_1_12:
working_directory: /go/src/github.com/CityOfZion/neo-go
executor: go1_12
steps:
- checkout
- gomod
- run: go test -v -race ./...
build_cli:
working_directory: /go/src/github.com/CityOfZion/neo-go
executor: go1_12
steps:
- checkout
- gomod
- run: make build
- store_artifacts:
path: bin
destination: /
build_image:
working_directory: /go/src/github.com/CityOfZion/neo-go
executor: go1_12
docker:
- image: alpine
steps:
- run: apk update && apk add git make curl tar
- checkout
- setup_remote_docker
- run:
name: Install Docker client
command: |
set -x
VER="17.03.0-ce"
curl -L -o /tmp/docker-$VER.tgz https://get.docker.com/builds/Linux/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:
- vet:
filters:
tags:
only: v/[0-9]+\.[0-9]+\.[0-9]+/
- lint:
filters:
tags:
only: v/[0-9]+\.[0-9]+\.[0-9]+/
- test_1_11:
filters:
tags:
only: v/[0-9]+\.[0-9]+\.[0-9]+/
- test_1_12:
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]+/