influxdb/.circleci/config.yml

100 lines
3.0 KiB
YAML

version: 2
jobs:
jstest:
docker:
- image: circleci/golang:1.11-node-browsers
working_directory: /go/src/github.com/influxdata/platform
steps:
- checkout
# Run yarn install, using Circle's cache if applicable.
- restore_cache:
name: Restore Yarn package cache
keys:
# Only cache on exact yarn.lock match, as in Circle's yarn example:
# https://circleci.com/docs/2.0/yarn/
- chronograf-yarn-packages-{{ checksum "chronograf/ui/yarn.lock" }}
- run: make node_modules
- save_cache:
name: Save Yarn package cache
key: chronograf-yarn-packages-{{ checksum "chronograf/ui/yarn.lock" }}
paths:
- ~/.cache/yarn
- run: make test-js
- run: make chronograf_lint
gotest:
docker:
- image: circleci/golang:1.11
environment:
GOCACHE: /tmp/go-cache
GOFLAGs: "-mod=readonly"
working_directory: /go/src/github.com/influxdata/platform
steps:
- checkout
# Populate GOCACHE.
- restore_cache:
name: Restoring GOCACHE
keys:
- platform-gocache-{{ .Branch }}-{{ .Revision }} # Matches when retrying a single run.
- platform-gocache-{{ .Branch }}- # Matches a new commit on an existing branch.
- platform-gocache- # Matches a new branch.
- run: make test-go # This uses the test cache so it may succeed or fail quickly.
- run: make vet
- run: make checkfmt
- run: make checktidy
- run: make test-go-race # This doesn't use the test cache, and will not complete quickly.
# TODO add these checks to the Makefile
# - run: go get -v -t -d ./...
# - run: go get honnef.co/go/tools/cmd/megacheck
# - run: megacheck ./...
- save_cache:
name: Saving GOCACHE
key: platform-gocache-{{ .Branch }}-{{ .Revision }}
paths:
- /tmp/go-cache
when: always
deploy:
docker:
- image: circleci/golang:1.11-node-browsers
environment:
GOCACHE: /tmp/go-cache
GOFLAGs: "-mod=readonly"
working_directory: /go/src/github.com/influxdata/platform
steps:
- checkout
# Speed up `make nightly` by restoring caches from previous runs.
- restore_cache:
name: Restoring GOCACHE
keys:
- platform-gocache- # Just match the most recent Go cache.
- restore_cache:
name: Restore Yarn package cache
keys:
- chronograf-yarn-packages-{{ checksum "chronograf/ui/yarn.lock" }}
- setup_remote_docker
- run: |
docker login -u "$QUAY_USER" -p $QUAY_PASS quay.io
make nightly
workflows:
version: 2
build-and-deploy:
jobs:
- gotest
- jstest
- deploy:
requires:
- gotest
- jstest
filters:
branches:
only: master