2020-10-27 14:10:50 -04:00
|
|
|
version: 2.1
|
2020-10-29 10:52:45 -04:00
|
|
|
|
|
|
|
aliases:
|
|
|
|
- &defaults
|
|
|
|
docker:
|
2021-02-09 15:21:59 -05:00
|
|
|
- image: circleci/node:12.20.1-browsers
|
2020-10-29 10:52:45 -04:00
|
|
|
auth:
|
|
|
|
username: $DOCKERHUB_USERNAME
|
|
|
|
password: $DOCKERHUB_PASSWORD
|
2020-10-30 09:41:30 -04:00
|
|
|
working_directory: ~/repo
|
2020-11-09 10:42:54 -05:00
|
|
|
- &save_git_cache
|
|
|
|
save_cache:
|
|
|
|
paths:
|
|
|
|
- .git
|
|
|
|
key: v1-git-{{ .Revision }}
|
|
|
|
- &restore_git_cache
|
|
|
|
restore_cache:
|
|
|
|
keys:
|
|
|
|
- v1-git-{{ .Revision }}
|
|
|
|
- v1-git-
|
2020-10-30 17:18:40 -04:00
|
|
|
- &save_npm_cache
|
|
|
|
save_cache:
|
|
|
|
paths:
|
|
|
|
- node_modules
|
2020-11-09 11:10:27 -05:00
|
|
|
key: v1-npm-{{ checksum "package-lock.json" }}
|
2020-10-30 17:23:11 -04:00
|
|
|
- &restore_npm_cache
|
2020-10-30 17:18:40 -04:00
|
|
|
restore_cache:
|
|
|
|
keys:
|
|
|
|
- v1-npm-{{ checksum "package-lock.json" }}
|
2020-11-09 10:42:54 -05:00
|
|
|
- &save_build_cache
|
2020-11-09 10:57:19 -05:00
|
|
|
save_cache:
|
2020-11-09 10:42:54 -05:00
|
|
|
paths:
|
|
|
|
- ./build
|
|
|
|
- ./intl
|
2020-11-09 11:10:27 -05:00
|
|
|
key: v1-build-{{ .Revision }}
|
2020-11-09 10:42:54 -05:00
|
|
|
- &restore_build_cache
|
|
|
|
restore_cache:
|
|
|
|
keys:
|
|
|
|
- v1-build-{{ .Revision }}
|
|
|
|
- v1-build-
|
2020-11-12 09:57:10 -05:00
|
|
|
- &build
|
2020-10-29 10:52:45 -04:00
|
|
|
<<: *defaults
|
2020-11-17 15:01:44 -05:00
|
|
|
resource_class: medium+
|
2020-10-29 10:52:45 -04:00
|
|
|
steps:
|
2020-11-09 10:42:54 -05:00
|
|
|
- *restore_git_cache
|
2020-10-29 15:56:05 -04:00
|
|
|
- checkout
|
2020-11-02 12:03:10 -05:00
|
|
|
- run:
|
2021-02-02 11:41:05 -05:00
|
|
|
name: "setup"
|
2020-11-09 10:42:54 -05:00
|
|
|
command: |
|
2021-02-03 10:36:29 -05:00
|
|
|
npm --production=false ci
|
2021-02-02 11:03:41 -05:00
|
|
|
mkdir ./test/results
|
2021-02-02 11:41:05 -05:00
|
|
|
- run:
|
|
|
|
name: "run lint tests"
|
|
|
|
command: |
|
|
|
|
npm run test:lint:ci
|
2021-02-02 10:36:44 -05:00
|
|
|
- run:
|
|
|
|
name: "run npm build"
|
|
|
|
command: |
|
|
|
|
WWW_VERSION=${CIRCLE_SHA1:0:5} npm run build
|
|
|
|
- run:
|
|
|
|
name: "Run unit tests"
|
|
|
|
command: |
|
|
|
|
npm run test:unit:jest
|
|
|
|
npm run test:unit:tap:ci
|
|
|
|
npm run test:unit:convertReportToXunit
|
2020-11-09 10:42:54 -05:00
|
|
|
- *save_npm_cache
|
|
|
|
- *save_git_cache
|
|
|
|
- *save_build_cache
|
2021-02-02 10:36:44 -05:00
|
|
|
- store_test_results:
|
|
|
|
path: test/results
|
|
|
|
- store_artifacts:
|
|
|
|
path: test/results
|
2020-11-12 09:57:10 -05:00
|
|
|
- &deploy
|
2020-11-09 10:42:54 -05:00
|
|
|
<<: *defaults
|
|
|
|
steps:
|
|
|
|
- *restore_git_cache
|
|
|
|
- checkout
|
|
|
|
- *restore_npm_cache
|
|
|
|
- *restore_build_cache
|
|
|
|
- run:
|
|
|
|
name: "deploy to staging"
|
2020-11-02 12:03:10 -05:00
|
|
|
command: |
|
2021-02-09 15:33:31 -05:00
|
|
|
sudo apt update
|
|
|
|
sudo apt install software-properties-common
|
2021-02-09 16:27:00 -05:00
|
|
|
sudo add-apt-repository -y ppa:deadsnakes/ppa
|
2021-02-09 15:21:59 -05:00
|
|
|
sudo apt update
|
|
|
|
sudo apt install python3.8
|
2021-01-25 17:11:32 -05:00
|
|
|
curl https://bootstrap.pypa.io/2.7/get-pip.py -o get-pip.py
|
2021-02-08 10:52:53 -05:00
|
|
|
python get-pip.py pip==21.0.1
|
2021-02-08 11:52:19 -05:00
|
|
|
pip install s3cmd==2.1.0
|
2020-11-09 10:42:54 -05:00
|
|
|
npm run deploy
|
2021-01-11 11:19:18 -05:00
|
|
|
- &integration_jest
|
2020-11-09 10:42:54 -05:00
|
|
|
<<: *defaults
|
|
|
|
steps:
|
|
|
|
- *restore_git_cache
|
|
|
|
- checkout
|
|
|
|
- *restore_npm_cache
|
2020-11-02 12:03:10 -05:00
|
|
|
- run:
|
2021-01-11 11:19:18 -05:00
|
|
|
name: "integration tests with Jest"
|
2020-11-02 12:03:10 -05:00
|
|
|
command: |
|
2021-01-11 11:19:18 -05:00
|
|
|
npm run test:integration:jest:remote
|
2021-01-12 12:01:58 -05:00
|
|
|
- store_test_results:
|
|
|
|
path: test/results
|
|
|
|
- store_artifacts:
|
|
|
|
path: test/results
|
2021-01-11 11:19:18 -05:00
|
|
|
- &integration_tap
|
|
|
|
<<: *defaults
|
|
|
|
steps:
|
|
|
|
- *restore_git_cache
|
|
|
|
- checkout
|
|
|
|
- *restore_npm_cache
|
|
|
|
- run:
|
|
|
|
name: "integration tests with Tap"
|
|
|
|
command: |
|
2021-01-28 09:54:06 -05:00
|
|
|
mkdir ./test/results
|
2021-01-11 11:19:18 -05:00
|
|
|
npm run test:smoke:sauce
|
2021-01-20 10:54:47 -05:00
|
|
|
npm run test:smoke:convertReportToXunit
|
|
|
|
- store_test_results:
|
|
|
|
path: test/results
|
|
|
|
- store_artifacts:
|
|
|
|
path: test/results
|
2020-11-12 09:57:10 -05:00
|
|
|
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
build-staging:
|
|
|
|
<<: *build
|
|
|
|
build-production:
|
|
|
|
# <<: *build
|
|
|
|
deploy-staging:
|
2020-12-07 10:23:24 -05:00
|
|
|
<<: *deploy
|
2020-11-12 09:57:10 -05:00
|
|
|
deploy-production:
|
|
|
|
# <<: *deploy
|
2021-01-11 11:19:18 -05:00
|
|
|
integration-staging-jest:
|
|
|
|
<<: *integration_jest
|
|
|
|
integration-staging-tap:
|
|
|
|
<<: *integration_tap
|
|
|
|
integration-production-jest:
|
|
|
|
# <<: *integration_jest
|
|
|
|
integration-production-tap:
|
|
|
|
# <<: *integration_tap
|
2020-10-29 10:52:45 -04:00
|
|
|
|
2020-10-27 14:10:50 -04:00
|
|
|
workflows:
|
2021-01-11 11:20:33 -05:00
|
|
|
build-test-deploy-all-staging-1:
|
2020-10-27 14:10:50 -04:00
|
|
|
jobs:
|
2020-11-09 14:50:21 -05:00
|
|
|
- build-staging:
|
2020-11-12 09:57:10 -05:00
|
|
|
context:
|
|
|
|
- scratch-www-all
|
|
|
|
- scratch-www-staging
|
2020-11-09 10:42:54 -05:00
|
|
|
filters:
|
|
|
|
branches:
|
|
|
|
only:
|
2020-11-09 14:50:21 -05:00
|
|
|
- develop
|
|
|
|
- /^hotfix\/.*/
|
|
|
|
- /^release\/.*/
|
2021-01-11 11:25:38 -05:00
|
|
|
- circleCI-configure-tests
|
2021-01-11 11:20:33 -05:00
|
|
|
- deploy-staging:
|
|
|
|
context:
|
|
|
|
- scratch-www-all
|
|
|
|
- scratch-www-staging
|
|
|
|
requires:
|
|
|
|
- build-staging
|
|
|
|
filters:
|
|
|
|
branches:
|
|
|
|
only:
|
|
|
|
- develop
|
|
|
|
- /^hotfix\/.*/
|
|
|
|
- /^release\/.*/
|
2021-01-11 11:25:38 -05:00
|
|
|
- circleCI-configure-tests
|
2021-01-11 11:20:33 -05:00
|
|
|
- integration-staging-jest:
|
|
|
|
context:
|
|
|
|
- scratch-www-all
|
|
|
|
- scratch-www-staging
|
|
|
|
requires:
|
|
|
|
- deploy-staging
|
|
|
|
filters:
|
|
|
|
branches:
|
|
|
|
only:
|
|
|
|
- develop
|
|
|
|
- /^hotfix\/.*/
|
|
|
|
- /^release\/.*/
|
2021-01-11 11:25:38 -05:00
|
|
|
- circleCI-configure-tests
|
2021-01-11 11:20:33 -05:00
|
|
|
- integration-staging-tap:
|
|
|
|
context:
|
|
|
|
- scratch-www-all
|
|
|
|
- scratch-www-staging
|
|
|
|
requires:
|
|
|
|
- deploy-staging
|
|
|
|
filters:
|
|
|
|
branches:
|
|
|
|
only:
|
|
|
|
- develop
|
|
|
|
- /^hotfix\/.*/
|
|
|
|
- /^release\/.*/
|
2021-01-11 11:25:38 -05:00
|
|
|
- circleCI-configure-tests
|