mirror of openzeppelin-contracts
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
openzeppelin-contracts/.circleci/config.yml

97 lines
2.5 KiB

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
jobs:
build:
docker:
- image: circleci/node:8
working_directory: ~/project
steps:
- checkout
- attach_workspace:
at: ~/project
# Download and cache dependencies
- restore_cache:
keys:
- v1-dependencies-{{ checksum "package-lock.json" }}
# fallback to using the latest cache if no exact match is found
- v1-dependencies-
- run:
name: Install npm dependencies
command: npm install
- save_cache:
paths:
- node_modules
key: v1-dependencies-{{ checksum "package-lock.json" }}
lint:
docker:
- image: circleci/node:8
working_directory: ~/project
steps:
- checkout
- attach_workspace:
at: ~/project
- restore_cache:
keys:
- v1-dependencies-{{ checksum "package-lock.json" }}
# fallback to using the latest cache if no exact match is found
- v1-dependencies-
- run:
name: Linter
command: npm run lint
test:
docker:
- image: circleci/node:8
working_directory: ~/project
steps:
- checkout
- attach_workspace:
at: ~/project
- restore_cache:
keys:
- v1-dependencies-{{ checksum "package-lock.json" }}
# fallback to using the latest cache if no exact match is found
- v1-dependencies-
- run:
name: Unit tests
command: npm run test
coverage:
docker:
- image: circleci/node:8
working_directory: ~/project
steps:
- checkout
- attach_workspace:
at: ~/project
- restore_cache:
keys:
- v1-dependencies-{{ checksum "package-lock.json" }}
# fallback to using the latest cache if no exact match is found
- v1-dependencies-
- run:
name: Unit tests with coverage report
command: npm run test
environment:
SOLIDITY_COVERAGE: true
# TODO(xinbenlv, #1839): run SOLC_NIGHTLY to be run but allow it to fail.
# TODO(xinbenlv, #1839): requires SLACK WEBHOOK to be setup by repo owner.
workflows:
version: 2
everything:
jobs:
- build
- lint:
requires:
- build
- test:
requires:
- build
- coverage:
requires:
- build