85 lines
1.7 KiB
YAML
85 lines
1.7 KiB
YAML
|
version: 2
|
||
|
# 2.1 does not yet support local run
|
||
|
# unless with workaround. For simplicity just use it.
|
||
|
# https://github.com/CircleCI-Public/circleci-cli/issues/79
|
||
|
|
||
|
aliases:
|
||
|
- &defaults
|
||
|
docker:
|
||
|
- image: circleci/node:10
|
||
|
|
||
|
- &cache_key_node_modules
|
||
|
key: v1-node_modules-{{ checksum "package-lock.json" }}
|
||
|
|
||
|
jobs:
|
||
|
dependencies:
|
||
|
<<: *defaults
|
||
|
steps:
|
||
|
- checkout
|
||
|
- restore_cache:
|
||
|
<<: *cache_key_node_modules
|
||
|
- run:
|
||
|
name: Install npm dependencies and prepare
|
||
|
command: |
|
||
|
if [ ! -d node_modules ]; then
|
||
|
npm ci
|
||
|
else
|
||
|
npm run prepare
|
||
|
fi
|
||
|
- persist_to_workspace:
|
||
|
root: .
|
||
|
paths:
|
||
|
- node_modules
|
||
|
- build
|
||
|
- save_cache:
|
||
|
paths:
|
||
|
- node_modules
|
||
|
<<: *cache_key_node_modules
|
||
|
|
||
|
lint:
|
||
|
<<: *defaults
|
||
|
steps:
|
||
|
- checkout
|
||
|
- attach_workspace:
|
||
|
at: .
|
||
|
- run:
|
||
|
name: Linter
|
||
|
command: npm run lint
|
||
|
test:
|
||
|
<<: *defaults
|
||
|
steps:
|
||
|
- checkout
|
||
|
- attach_workspace:
|
||
|
at: .
|
||
|
- run:
|
||
|
name: Unit tests
|
||
|
command: npm run test
|
||
|
|
||
|
coverage:
|
||
|
<<: *defaults
|
||
|
steps:
|
||
|
- checkout
|
||
|
- attach_workspace:
|
||
|
at: .
|
||
|
- run:
|
||
|
name: Unit tests with coverage report
|
||
|
command: npm run coverage
|
||
|
|
||
|
# TODO(xinbenlv, #1839): run SOLC_NIGHTLY to be run but allow it to fail.
|
||
|
|
||
|
workflows:
|
||
|
version: 2
|
||
|
everything:
|
||
|
jobs:
|
||
|
- dependencies
|
||
|
- lint:
|
||
|
requires:
|
||
|
- dependencies
|
||
|
- test:
|
||
|
requires:
|
||
|
- dependencies
|
||
|
- coverage:
|
||
|
requires:
|
||
|
- dependencies
|
||
|
|