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 PROTOSPATH=/Litmus/result/influxd_test -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 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 jstest: docker: - image: circleci/golang:1.11-node-browsers working_directory: /go/src/github.com/influxdata/influxdb steps: - checkout # Run npm install, using Circle's cache if applicable. - restore_cache: name: Restore npm package cache keys: # Only cache on exact package-lock.json match, as in Circle's yarn example: - chronograf-npm-packages-{{ checksum "ui/package-lock.json" }} - run: make node_modules - save_cache: name: Save Yarn package cache key: chronograf-npm-packages-{{ checksum "ui/package-lock.json" }} paths: - ~/.cache/npm - run: make test-js - run: make chronograf_lint gotest: docker: - image: circleci/golang:1.11 environment: GOCACHE: /tmp/go-cache GOFLAGS: "-mod=readonly -p=2" # Go on Circle thinks 32 CPUs are available, but there aren't. 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: 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 because of -count=1, so it will not complete quickly. # TODO add these checks to the Makefile # - run: go get -v -t -d ./... - 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 ./... # In go1.11, running go mod vendor when go.mod contains replace entries, "taints" go.sum, even with -mod=readonly. # See https://github.com/golang/go/issues/27868. # Clean up go.sum so that we save to the same module key we attempted to restore from. # TODO: remove this call to git checkout after we are on go1.12. - run: git checkout -- go.sum - 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 build: docker: - image: circleci/golang:1.11-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. - restore_cache: name: Restore Yarn package cache keys: - chronograf-npm-packages-{{ checksum "ui/package-lock.json" }} - run: make build - persist_to_workspace: root: . paths: - bin/linux/influxd - bin/linux/influx - etc/litmus_success_notify.sh - etc/litmus_fail_notify.sh deploy-nightly: docker: - image: circleci/golang:1.11-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. - restore_cache: name: Restore Yarn package cache keys: - chronograf-npm-packages-{{ checksum "ui/package-lock.json" }} - setup_remote_docker - run: name: "Docker Login" command: docker login -u "$QUAY_USER" -p $QUAY_PASS quay.io - 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.11-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. - restore_cache: name: Restore Yarn package cache keys: - chronograf-npm-packages-{{ checksum "ui/package-lock.json" }} - setup_remote_docker - run: name: "Docker Login" command: docker login -u "$QUAY_USER" -p $QUAY_PASS quay.io - run: name: "Build release" command: make release workflows: version: 2 build: jobs: - gotest - jstest - build - litmus_daily: requires: - build 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]+$/