nx/.circleci/config.yml
2020-06-07 23:31:38 -04:00

191 lines
4.5 KiB
YAML

# Javascript Node CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-javascript/ for more details
#
version: 2.1
executors:
default:
working_directory: ~/repo
environment:
# install Cypress in Linux-like cache folder
CYPRESS_CACHE_FOLDER: '~/.cache/Cypress'
docker:
- image: circleci/node:12-browsers
commands:
install_rsync:
description: 'Install Rsync'
steps:
- run: sudo apt install rsync
yarn_install:
description: 'Install Dependencies'
steps:
- run: yarn install --frozen-lockfile --non-interactive
- run: ./node_modules/.bin/cypress verify
- save_cache:
key: nrwl-nx-node12-yarn-key-{{ checksum "yarn.lock" }}
paths:
- ~/.cache/yarn
- save_cache:
key: nrwl-nx-node12-cypress-{{ checksum "yarn.lock" }}
paths:
- ~/.cache/Cypre ss
restore_cypress_cache:
description: 'Restore Cypress Cache'
steps:
- restore_cache:
keys:
- nrwl-nx-node12-cypress-{{ checksum "yarn.lock" }}
# fallback to using the latest cache if no exact match is found
- nrwl-nx-node12-cypress-
restore_yarn_cache:
description: 'Restore Cached Dependencies'
steps:
- restore_cache:
keys:
- nrwl-nx-node12-yarn-key-{{ checksum "yarn.lock" }}
# fallback to using the latest cache if no exact match is found
- nrwl-nx-node12-yarn-key-
setup:
description: 'Setup Executor'
steps:
- checkout
- install_rsync
- attach_workspace:
# Must be absolute path or relative path from working_directory
at: ..
jobs:
install:
executor: default
steps:
- checkout
- restore_yarn_cache
- restore_cypress_cache
- yarn_install
- persist_to_workspace:
# Must be an absolute path, or relative path from working_directory. This is a directory on the container which is
# taken to be the root directory of the workspace.
root: ..
# Must be relative path from root
paths:
- repo/node_modules
- .cache/Cypress
checks-and-unit-tests:
executor: default
steps:
- setup
- run:
name: Run Unit Tests
command: NX_VERBOSE_LOGGING=true yarn test
- run:
name: Check Documentation
command: yarn documentation
- run:
name: Check Imports
command: yarn checkimports
- run:
name: Check Formatting
command: yarn checkformat
- run:
name: Check Commit Message Format
command: yarn checkcommit
e2e-1:
executor: default
steps:
- setup
- run:
name: Tests Part 1
command: yarn e2e-ci 1
no_output_timeout: 30m
e2e-2:
executor: default
steps:
- setup
- run:
name: Tests Part 2
command: yarn e2e-ci 2
no_output_timeout: 30m
e2e-3:
executor: default
steps:
- setup
- run:
name: Tests Part 3
command: yarn e2e-ci 3
no_output_timeout: 30m
e2e-4:
executor: default
steps:
- setup
- run:
name: Tests Part 4
command: yarn e2e-ci 4
no_output_timeout: 30m
e2e-5:
executor: default
steps:
- setup
- run:
name: Tests Part 5
command: yarn e2e-ci 5
no_output_timeout: 30m
e2e-6:
executor: default
steps:
- setup
- run:
name: Tests Part 6
command: yarn e2e-ci 6
no_output_timeout: 30m
e2e-7:
executor: default
steps:
- setup
- run:
name: Tests Part 7
command: yarn e2e-ci 7
no_output_timeout: 30m
e2e-8:
executor: default
steps:
- setup
- run:
name: Tests Part 8
command: yarn e2e-ci 8
no_output_timeout: 30m
workflows:
version: 2.1
default_workflow:
jobs:
- install
- checks-and-unit-tests:
requires:
- install
- e2e-1:
requires:
- install
- e2e-2:
requires:
- install
- e2e-3:
requires:
- install
- e2e-4:
requires:
- install
- e2e-5:
requires:
- install
- e2e-6:
requires:
- install
- e2e-7:
requires:
- install
- e2e-8:
requires:
- install