304 lines
10 KiB
YAML
304 lines
10 KiB
YAML
version: 2
|
|
|
|
jobs:
|
|
litmus_daily:
|
|
machine: true
|
|
steps:
|
|
- attach_workspace:
|
|
at: ~/project
|
|
- run: docker login -u=$QUAY_USER -p=$QUAY_PASS quay.io
|
|
- run: docker run --entrypoint "./run_litmus_tests_oss.sh" -e ONE_TEST=src/cloud/rest_api/smoke/test_smoke.py -e BINARYPATH=/Litmus/result/bin/linux/influxd -e BOLTPATH=/Litmus/result/influxd_test/influxd.bolt -e ENGINEPATH=/Litmus/result/influxd_test --net host -v /var/run/docker.sock:/var/run/docker.sock -v ~/project:/Litmus/result quay.io/influxdb/litmus:latest
|
|
- run:
|
|
name: Litmus Smoke Tests Success
|
|
when: on_success
|
|
command: bash ~/project/etc/litmus_success_notify.sh Smoke
|
|
path: ~/project
|
|
- run:
|
|
name: Litmus Smoke Tests Fail
|
|
when: on_fail
|
|
command: bash ~/project/etc/litmus_fail_notify.sh Smoke
|
|
- store_artifacts:
|
|
path: ~/project
|
|
destination: raw-daily-output
|
|
- store_test_results:
|
|
path: ~/project
|
|
destination: daily-junit
|
|
litmus_nightly:
|
|
machine: true
|
|
steps:
|
|
- attach_workspace:
|
|
at: ~/project
|
|
- run: docker login -u=$QUAY_USER -p=$QUAY_PASS quay.io
|
|
- run: docker run --entrypoint "./run_litmus_tests_oss.sh" -e TEST_LIST=tests_lists/gateway_api_tests.list -e DOCKERIMAGE=true --net host -v /var/run/docker.sock:/var/run/docker.sock -v ~/project:/Litmus/result quay.io/influxdb/litmus:latest
|
|
- run:
|
|
name: Litmus Nightly Tests Success
|
|
when: on_success
|
|
command: bash ~/project/etc/litmus_success_notify.sh Nightly
|
|
- run:
|
|
name: Litmus Nightly Tests Fail
|
|
when: on_fail
|
|
command: bash ~/project/etc/litmus_fail_notify.sh Nightly
|
|
- store_artifacts:
|
|
path: ~/project
|
|
destination: raw-nightly-output
|
|
- store_test_results:
|
|
path: ~/project
|
|
destination: nightly-junit
|
|
e2e:
|
|
docker:
|
|
- image: circleci/golang:1.12-node-browsers
|
|
environment:
|
|
GOCACHE: /tmp/go-cache
|
|
GOFLAGS: '-mod=readonly -p=4' # Go on Circle thinks 32 CPUs are available, but there aren't.
|
|
working_directory: /go/src/github.com/influxdata/influxdb
|
|
steps:
|
|
- checkout
|
|
|
|
# Speed up `make build` by restoring caches from previous runs.
|
|
- restore_cache:
|
|
name: Restoring GOCACHE
|
|
keys:
|
|
- influxdb-gocache- # Just match the most recent Go cache.
|
|
- restore_cache:
|
|
name: Restoring GOPATH/pkg/mod
|
|
keys:
|
|
- influxdb-gomod-{{ checksum "go.sum" }} # Just match the go.sum checksum cache.
|
|
- run: sudo apt-get install -y netcat-openbsd
|
|
- run: sudo apt-get install -y bzr
|
|
- run: make protoc
|
|
- run: make build
|
|
- run:
|
|
command: ./bin/linux/influxd --store=memory --e2e-testing=true
|
|
background: true
|
|
- run: make e2e
|
|
- store_test_results:
|
|
path: ui/junit-results
|
|
destination: junit-results
|
|
- store_artifacts:
|
|
path: ui/cypress/videos
|
|
destination: videos
|
|
- store_artifacts:
|
|
path: ui/cypress/screenshots
|
|
destination: screenshots
|
|
jstest:
|
|
docker:
|
|
- image: circleci/golang:1.12-node-browsers
|
|
working_directory: /go/src/github.com/influxdata/influxdb
|
|
steps:
|
|
- checkout
|
|
- run: make node_modules
|
|
- run: make ui_client
|
|
- run: make test-js
|
|
- run: make chronograf_lint
|
|
|
|
gotest:
|
|
docker:
|
|
- image: circleci/golang:1.12
|
|
environment:
|
|
GOCACHE: /tmp/go-cache
|
|
GOFLAGS: '-mod=readonly -p=2' # Go on Circle thinks 32 CPUs are available, but there aren't.
|
|
TEST_RESULTS: /tmp/test-results
|
|
working_directory: /go/src/github.com/influxdata/influxdb
|
|
steps:
|
|
- checkout
|
|
|
|
# Populate GOCACHE.
|
|
- restore_cache:
|
|
name: Restoring GOCACHE
|
|
keys:
|
|
- influxdb-gocache-{{ .Branch }}-{{ .Revision }} # Matches when retrying a single run.
|
|
- influxdb-gocache-{{ .Branch }}- # Matches a new commit on an existing branch.
|
|
- influxdb-gocache- # Matches a new branch.
|
|
# Populate GOPATH/pkg.
|
|
- restore_cache:
|
|
name: Restoring GOPATH/pkg/mod
|
|
keys:
|
|
- influxdb-gomod-{{ checksum "go.sum" }} # Matches based on go.sum checksum.
|
|
- run: sudo apt-get install -y bzr
|
|
- run: mkdir -p $TEST_RESULTS
|
|
- 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: GO111MODULE=on go mod vendor # staticcheck looks in vendor for dependencies.
|
|
- run: GO111MODULE=on go install honnef.co/go/tools/cmd/staticcheck # Install staticcheck from the version we specify in go.mod.
|
|
- run: staticcheck ./...
|
|
- run: GOTRACEBACK=all GO111MODULE=on gotestsum --format standard-verbose --junitfile /tmp/test-results/gotestsum.xml -- -race -count=1 ./...
|
|
# TODO add these checks to the Makefile
|
|
# - run: go get -v -t -d ./...
|
|
|
|
- save_cache:
|
|
name: Saving GOCACHE
|
|
key: influxdb-gocache-{{ .Branch }}-{{ .Revision }}
|
|
paths:
|
|
- /tmp/go-cache
|
|
when: always
|
|
- save_cache:
|
|
name: Saving GOPATH/pkg/mod
|
|
key: influxdb-gomod-{{ checksum "go.sum" }}
|
|
paths:
|
|
- /go/pkg/mod
|
|
when: always
|
|
- store_artifacts: # Upload test summary for display in Artifacts: https://circleci.com/docs/2.0/artifacts/
|
|
path: /tmp/test-results
|
|
destination: raw-test-output
|
|
- store_test_results: # Upload test results for display in Test Summary: https://circleci.com/docs/2.0/collect-test-data/
|
|
path: /tmp/test-results
|
|
build:
|
|
docker:
|
|
- image: circleci/golang:1.12-node-browsers
|
|
environment:
|
|
GOCACHE: /tmp/go-cache
|
|
GOFLAGS: '-mod=readonly -p=4' # Go on Circle thinks 32 CPUs are available, but there aren't.
|
|
working_directory: /go/src/github.com/influxdata/influxdb
|
|
steps:
|
|
- checkout
|
|
- run: sudo apt-get install -y bzr
|
|
- run: make checkcommit
|
|
|
|
# Speed up `make build` by restoring caches from previous runs.
|
|
- restore_cache:
|
|
name: Restoring GOCACHE
|
|
keys:
|
|
- influxdb-gocache- # Just match the most recent Go cache.
|
|
- restore_cache:
|
|
name: Restoring GOPATH/pkg/mod
|
|
keys:
|
|
- influxdb-gomod-{{ checksum "go.sum" }} # Just match the go.sum checksum cache.
|
|
- run: make protoc
|
|
- run: make build
|
|
- persist_to_workspace:
|
|
root: .
|
|
paths:
|
|
- project
|
|
- bin/linux/influxd
|
|
- bin/linux/influx
|
|
- etc/litmus_success_notify.sh
|
|
- etc/litmus_fail_notify.sh
|
|
deploy-nightly:
|
|
docker:
|
|
- image: circleci/golang:1.12-node-browsers
|
|
environment:
|
|
GOCACHE: /tmp/go-cache
|
|
GOFLAGS: '-mod=readonly -p=4' # Go on Circle thinks 32 CPUs are available, but there aren't.
|
|
working_directory: /go/src/github.com/influxdata/influxdb
|
|
steps:
|
|
- checkout
|
|
|
|
# Speed up `make nightly` by restoring caches from previous runs.
|
|
- restore_cache:
|
|
name: Restoring GOCACHE
|
|
keys:
|
|
- influxdb-gocache- # Just match the most recent Go cache.
|
|
- restore_cache:
|
|
name: Restoring GOPATH/pkg/mod
|
|
keys:
|
|
- influxdb-gomod-{{ checksum "go.sum" }} # Just match the go.sum checksum cache.
|
|
- setup_remote_docker
|
|
- run:
|
|
name: 'Docker Login'
|
|
command: docker login -u "$QUAY_USER" -p $QUAY_PASS quay.io
|
|
- run: sudo apt-get install -y bzr
|
|
- run: make protoc # installs protoc
|
|
- run:
|
|
name: 'Build nightly'
|
|
command: make nightly
|
|
- persist_to_workspace:
|
|
root: .
|
|
paths:
|
|
- etc/litmus_success_notify.sh
|
|
- etc/litmus_fail_notify.sh
|
|
|
|
release:
|
|
docker:
|
|
- image: circleci/golang:1.12-node-browsers
|
|
environment:
|
|
GOCACHE: /tmp/go-cache
|
|
GOFLAGS: '-mod=readonly -p=4' # Go on Circle thinks 32 CPUs are available, but there aren't.
|
|
DOCKER_VERSION: 2.0.0-alpha
|
|
working_directory: /go/src/github.com/influxdata/influxdb
|
|
steps:
|
|
- checkout
|
|
|
|
# Speed up `make nightly` by restoring caches from previous runs.
|
|
- restore_cache:
|
|
name: Restoring GOCACHE
|
|
keys:
|
|
- influxdb-gocache- # Just match the most recent Go cache.
|
|
- restore_cache:
|
|
name: Restoring GOPATH/pkg/mod
|
|
keys:
|
|
- influxdb-gomod-{{ checksum "go.sum" }} # Just match the go.sum checksum cache.
|
|
- setup_remote_docker
|
|
- run:
|
|
name: 'Docker Login'
|
|
command: docker login -u "$QUAY_USER" -p $QUAY_PASS quay.io
|
|
- run: sudo apt-get install -y bzr
|
|
- run: make protoc # installs protoc
|
|
- run:
|
|
name: 'Build release'
|
|
command: make release
|
|
|
|
workflows:
|
|
version: 2
|
|
build:
|
|
jobs:
|
|
- gotest
|
|
- jstest
|
|
- build
|
|
- litmus_daily:
|
|
requires:
|
|
- build
|
|
filters:
|
|
branches:
|
|
only: /^(?!pull\/).*$/
|
|
e2e:
|
|
jobs:
|
|
- e2e
|
|
nightly:
|
|
triggers:
|
|
- schedule:
|
|
cron: '0 7 * * *'
|
|
filters:
|
|
branches:
|
|
only:
|
|
- master
|
|
jobs:
|
|
- gotest
|
|
- jstest
|
|
- deploy-nightly:
|
|
requires:
|
|
- gotest
|
|
- jstest
|
|
filters:
|
|
branches:
|
|
only: master
|
|
- litmus_nightly:
|
|
requires:
|
|
- deploy-nightly
|
|
|
|
release:
|
|
jobs:
|
|
- gotest:
|
|
filters:
|
|
branches:
|
|
ignore: /.*/
|
|
tags:
|
|
only: /^v[0-9]+\.[0-9]+\.[0-9]+-alpha\.[0-9]+$/
|
|
|
|
- jstest:
|
|
filters:
|
|
branches:
|
|
ignore: /.*/
|
|
tags:
|
|
only: /^v[0-9]+\.[0-9]+\.[0-9]+-alpha\.[0-9]+$/
|
|
- release:
|
|
requires:
|
|
- gotest
|
|
- jstest
|
|
filters:
|
|
branches:
|
|
ignore: /.*/
|
|
tags:
|
|
only: /^v[0-9]+\.[0-9]+\.[0-9]+-alpha\.[0-9]+$/
|