build: clean up our CircleCI configs (#20397)

* Delete unused configs
* Delete unused test steps
* Reorder our main config file to start with top-level pipelines, and to group conceptually-related jobs
* Introduce new jobs to pull dependencies, to reduce duplicated work across test/lint/build steps
* Rename our caches to bust our current huge sizes
* Use unique names for caches per-step, to avoid conflicts
* Fix result collection for JS tests
pull/20412/head
Daniel Moran 2020-12-22 12:38:30 -08:00 committed by GitHub
parent afdcb18655
commit 9b8c81c49c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 607 additions and 723 deletions

File diff suppressed because it is too large Load Diff

View File

@ -46,6 +46,8 @@ endif
# Allow for `go test` to be swapped out by other tooling, i.e. `gotestsum`
GO_TEST_CMD=go test
# Allow for a subset of tests to be specified.
GO_TEST_PATHS=./...
# Test vars can be used by all recursive Makefiles
export PKG_CONFIG:=$(PWD)/scripts/pkg-config.sh
@ -149,7 +151,7 @@ test-js: node_modules
make -C ui test
test-go:
$(GO_TEST) ./...
$(GO_TEST) $(GO_TEST_PATHS)
test-influxql-integration:
$(GO_TEST) -mod=readonly ./influxql/_v1tests
@ -159,12 +161,12 @@ test-influxql-validation:
test-integration: GO_TAGS=integration
test-integration:
$(GO_TEST) -count=1 ./...
$(GO_TEST) -count=1 $(GO_TEST_PATHS)
test: test-go test-js
test-go-race:
$(GO_TEST) -v -race -count=1 ./...
$(GO_TEST) -v -race -count=1 $(GO_TEST_PATHS)
vet:
$(GO_VET) -v ./...

View File

@ -1,138 +0,0 @@
workflows:
version: 2
main:
jobs:
- build
- deploy-nightly:
requires:
- build
filters:
branches:
only: master
- deploy-pre-release:
requires:
- build
filters:
branches:
ignore: /.*/
tags:
only: /^[0-9]+(\.[0-9]+)*(\S*)([a|rc|beta]([0-9]+))+$/
- deploy-release:
requires:
- build
filters:
branches:
ignore: /.*/
tags:
only: /^[0-9]+(\.[0-9]+)*$/
version: 2
jobs:
build:
environment:
DOCKER_TAG: chronograf-20180327
machine: true
steps:
- checkout
- run: |
ls -lah
pwd
- run: ./etc/scripts/docker/pull.sh
- run:
name: "Run Tests"
command: >
./etc/scripts/docker/run.sh
--debug
--test
--no-build
- persist_to_workspace:
root: /home/circleci
paths:
- project
deploy-nightly:
environment:
DOCKER_TAG: chronograf-20180327
machine: true
steps:
- attach_workspace:
at: /home/circleci
- run: |
./etc/scripts/docker/run.sh \
--debug \
--clean \
--package \
--platform all \
--arch all \
--upload \
--nightly \
--bucket=dl.influxdata.com/chronograf/releases
cp build/linux/static_amd64/chronograf .
cp build/linux/static_amd64/chronoctl .
docker build -t chronograf .
docker login -u "$QUAY_USER" -p $QUAY_PASS quay.io
docker tag chronograf quay.io/influxdb/chronograf:nightly
docker push quay.io/influxdb/chronograf:nightly
- store_artifacts:
path: ./build/
deploy-pre-release:
environment:
DOCKER_TAG: chronograf-20180327
machine: true
steps:
- attach_workspace:
at: /home/circleci
- run: |
./etc/scripts/docker/run.sh \
--clean \
--debug \
--release \
--package \
--platform all \
--arch all \
--upload-overwrite \
--upload \
--bucket dl.influxdata.com/chronograf/releases
cp build/linux/static_amd64/chronograf .
cp build/linux/static_amd64/chronoctl .
docker build -t chronograf .
docker login -u "$QUAY_USER" -p $QUAY_PASS quay.io
docker tag chronograf quay.io/influxdb/chronograf:${CIRCLE_SHA1:0:7}
docker push quay.io/influxdb/chronograf:${CIRCLE_SHA1:0:7}
docker tag chronograf quay.io/influxdb/chronograf:${CIRCLE_TAG}
docker push quay.io/influxdb/chronograf:${CIRCLE_TAG}
- store_artifacts:
path: ./build/
deploy-release:
environment:
DOCKER_TAG: chronograf-20180327
machine: true
steps:
- attach_workspace:
at: /home/circleci
- run: |
./etc/scripts/docker/run.sh \
--clean \
--debug \
--release \
--package \
--platform all \
--arch all \
--upload-overwrite \
--upload \
--bucket dl.influxdata.com/chronograf/releases
cp build/linux/static_amd64/chronograf .
cp build/linux/static_amd64/chronoctl .
docker build -t chronograf .
docker login -u "$QUAY_USER" -p $QUAY_PASS quay.io
docker tag chronograf quay.io/influxdb/chronograf:${CIRCLE_SHA1:0:7}
docker push quay.io/influxdb/chronograf:${CIRCLE_SHA1:0:7}
docker tag chronograf quay.io/influxdb/chronograf:${CIRCLE_TAG}
docker push quay.io/influxdb/chronograf:${CIRCLE_TAG}
docker tag chronograf quay.io/influxdb/chronograf:latest
docker push quay.io/influxdb/chronograf:latest
- store_artifacts:
path: ./build/

View File

@ -1,47 +0,0 @@
version: 2
jobs:
selenium_accept:
docker:
- image: circleci/node:lts-stretch-browsers
- image: quay.io/influxdb/influx:nightly
command: [--e2e-testing=true]
steps:
- checkout
- run:
name: Environment check
command: |
free -h
df -h
git --version
node --version && npm --version
docker --version
google-chrome --version && which google-chrome && chromedriver --version && which chromedriver
timeout 300 bash -c 'while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' localhost:8086)" != "200" ]]; do sleep 5; done' || false
- run:
name: Selenium tests
command: |
set +e
npm install
[ -f "/usr/local/bin/chromedriver" ] && cp /usr/local/bin/chromedriver node_modules/chromedriver/lib/chromedriver/chromedriver
./node_modules/chromedriver/bin/chromedriver --version
npm test; TEST_RESULT=$?
npm run report:html
npm run report:junit
mkdir -p ~/test-results/cucumber
mkdir -p ~/artifacts/html
cp ~/project/report/cucumber_report.html ~/artifacts/html/cucumber_report.html
cp ~/project/report/cucumber_junit.xml ~/test-results/cucumber/report.xml
cp ~/project/report/cucumber_junit.xml ~/artifacts/report.xml
cp -r ~/project/screenshots ~/artifacts
ls -al
exit $TEST_RESULT
- store_test_results:
path: ~/test-results
- store_artifacts:
path: ~/artifacts
workflows:
version: 2
troubleshoot:
jobs:
- selenium_accept

View File

@ -40,6 +40,7 @@
"eslint:circleci": "eslint",
"eslint:fix": "eslint --fix '{src,cypress}/**/*.{ts,tsx}'",
"prettier": "prettier --config .prettierrc.json --check '{src,cypress}/**/*.{ts,tsx}'",
"prettier:circleci": "prettier --config .prettierrc.json --check",
"prettier:fix": "prettier --config .prettierrc.json --write '{src,cypress}/**/*.{ts,tsx}'",
"tsc": "tsc -p ./tsconfig.json --noEmit --pretty --skipLibCheck",
"tsc:cypress": "tsc -p ./cypress/tsconfig.json --noEmit --pretty --skipLibCheck",