2019-03-27 16:35:46 +00:00
|
|
|
version: 2.1
|
2019-04-20 01:33:15 +00:00
|
|
|
commands:
|
|
|
|
restore_cached_venv:
|
2019-05-27 10:11:15 +00:00
|
|
|
description: "Restore a cached venv"
|
2019-04-20 01:33:15 +00:00
|
|
|
parameters:
|
|
|
|
reqs_checksum:
|
|
|
|
type: string
|
|
|
|
default: "1234"
|
|
|
|
venv_name:
|
|
|
|
type: string
|
|
|
|
default: "default-name"
|
|
|
|
steps:
|
|
|
|
- restore_cache:
|
|
|
|
keys:
|
|
|
|
- << parameters.venv_name >>-venv-<< parameters.reqs_checksum >>
|
|
|
|
# fallback to using the latest cache if no exact match is found
|
|
|
|
- << parameters.venv_name >>-venv-
|
|
|
|
save_cached_venv:
|
2019-05-27 10:11:15 +00:00
|
|
|
description: "Save a venv into a cache"
|
2019-04-20 01:33:15 +00:00
|
|
|
parameters:
|
|
|
|
reqs_checksum:
|
|
|
|
type: string
|
|
|
|
default: "1234"
|
|
|
|
venv_path:
|
|
|
|
type: string
|
|
|
|
default: "venv"
|
|
|
|
venv_name:
|
|
|
|
type: string
|
|
|
|
default: "default-name"
|
|
|
|
steps:
|
|
|
|
- save_cache:
|
|
|
|
key: << parameters.venv_name >>-venv-<< parameters.reqs_checksum >>
|
|
|
|
paths: << parameters.venv_path >>
|
2019-06-07 19:30:27 +00:00
|
|
|
restore_pyspec_cached_venv:
|
|
|
|
description: "Restore the cache with pyspec keys"
|
2019-05-27 09:39:50 +00:00
|
|
|
steps:
|
|
|
|
- restore_cached_venv:
|
2020-01-25 00:26:10 +00:00
|
|
|
venv_name: v19-pyspec
|
|
|
|
reqs_checksum: cache-{{ checksum "setup.py" }}
|
2019-06-07 19:30:27 +00:00
|
|
|
save_pyspec_cached_venv:
|
|
|
|
description: Save a venv into a cache with pyspec keys"
|
2019-05-27 10:11:15 +00:00
|
|
|
steps:
|
|
|
|
- save_cached_venv:
|
2020-01-25 00:26:10 +00:00
|
|
|
venv_name: v19-pyspec
|
|
|
|
reqs_checksum: cache-{{ checksum "setup.py" }}
|
|
|
|
venv_path: ./venv
|
2020-01-22 17:09:40 +00:00
|
|
|
restore_deposit_contract_compiler_cached_venv:
|
|
|
|
description: "Restore the venv from cache for the deposit contract compiler"
|
2019-06-07 19:30:27 +00:00
|
|
|
steps:
|
|
|
|
- restore_cached_venv:
|
2020-01-25 00:26:10 +00:00
|
|
|
venv_name: v18-deposit-contract-compiler
|
2020-01-22 17:09:40 +00:00
|
|
|
reqs_checksum: cache-{{ checksum "deposit_contract/compiler/requirements.txt" }}
|
|
|
|
save_deposit_contract_compiler_cached_venv:
|
|
|
|
description: "Save the venv to cache for later use of the deposit contract compiler"
|
2019-06-07 19:30:27 +00:00
|
|
|
steps:
|
|
|
|
- save_cached_venv:
|
2020-01-25 00:26:10 +00:00
|
|
|
venv_name: v18-deposit-contract-compiler
|
2020-01-22 17:09:40 +00:00
|
|
|
reqs_checksum: cache-{{ checksum "deposit_contract/compiler/requirements.txt" }}
|
|
|
|
venv_path: ./deposit_contract/compiler/venv
|
|
|
|
restore_deposit_contract_tester_cached_venv:
|
|
|
|
description: "Restore the venv from cache for the deposit contract tester"
|
|
|
|
steps:
|
|
|
|
- restore_cached_venv:
|
2020-02-08 23:07:08 +00:00
|
|
|
venv_name: v19-deposit-contract-tester
|
2020-01-25 00:26:10 +00:00
|
|
|
reqs_checksum: cache-{{ checksum "setup.py" }}-{{ checksum "deposit_contract/tester/requirements.txt" }}
|
2020-01-22 17:09:40 +00:00
|
|
|
save_deposit_contract_tester_cached_venv:
|
|
|
|
description: "Save the venv to cache for later use of the deposit contract tester"
|
|
|
|
steps:
|
|
|
|
- save_cached_venv:
|
2020-02-08 23:07:08 +00:00
|
|
|
venv_name: v19-deposit-contract-tester
|
2020-01-25 00:26:10 +00:00
|
|
|
reqs_checksum: cache-{{ checksum "setup.py" }}-{{ checksum "deposit_contract/tester/requirements.txt" }}
|
2020-01-22 17:09:40 +00:00
|
|
|
venv_path: ./deposit_contract/tester/venv
|
2019-03-18 19:06:45 +00:00
|
|
|
jobs:
|
2019-04-20 01:33:15 +00:00
|
|
|
checkout_specs:
|
2019-03-18 19:06:45 +00:00
|
|
|
docker:
|
2020-01-22 17:09:40 +00:00
|
|
|
- image: circleci/python:3.8
|
2019-04-20 01:33:15 +00:00
|
|
|
working_directory: ~/specs-repo
|
2019-03-18 19:06:45 +00:00
|
|
|
steps:
|
2019-06-18 13:30:01 +00:00
|
|
|
# Restore git repo at point close to target branch/revision, to speed up checkout
|
|
|
|
- restore_cache:
|
|
|
|
keys:
|
2020-04-16 17:56:15 +00:00
|
|
|
- v3-specs-repo-{{ .Branch }}-{{ .Revision }}
|
|
|
|
- v3-specs-repo-{{ .Branch }}-
|
|
|
|
- v3-specs-repo-
|
2019-03-18 19:06:45 +00:00
|
|
|
- checkout
|
|
|
|
- run:
|
2019-04-20 01:33:15 +00:00
|
|
|
name: Clean up git repo to reduce cache size
|
|
|
|
command: git gc
|
|
|
|
# Save the git checkout as a cache, to make cloning next time faster.
|
|
|
|
- save_cache:
|
2020-04-16 17:56:15 +00:00
|
|
|
key: v3-specs-repo-{{ .Branch }}-{{ .Revision }}
|
2019-04-20 01:33:15 +00:00
|
|
|
paths:
|
|
|
|
- ~/specs-repo
|
2019-06-07 19:30:27 +00:00
|
|
|
install_pyspec_test:
|
2019-04-20 01:33:15 +00:00
|
|
|
docker:
|
2020-01-22 17:09:40 +00:00
|
|
|
- image: circleci/python:3.8
|
2019-04-20 01:33:15 +00:00
|
|
|
working_directory: ~/specs-repo
|
|
|
|
steps:
|
|
|
|
- restore_cache:
|
2020-04-16 17:56:15 +00:00
|
|
|
key: v3-specs-repo-{{ .Branch }}-{{ .Revision }}
|
2019-06-07 19:30:27 +00:00
|
|
|
- restore_pyspec_cached_venv
|
2019-04-20 01:33:15 +00:00
|
|
|
- run:
|
|
|
|
name: Install pyspec requirements
|
2019-06-07 19:30:27 +00:00
|
|
|
command: make install_test
|
|
|
|
- save_pyspec_cached_venv
|
2019-04-20 01:33:15 +00:00
|
|
|
test:
|
|
|
|
docker:
|
2020-01-22 17:09:40 +00:00
|
|
|
- image: circleci/python:3.8
|
2019-04-20 01:33:15 +00:00
|
|
|
working_directory: ~/specs-repo
|
|
|
|
steps:
|
|
|
|
- restore_cache:
|
2020-04-16 17:56:15 +00:00
|
|
|
key: v3-specs-repo-{{ .Branch }}-{{ .Revision }}
|
2019-06-07 19:30:27 +00:00
|
|
|
- restore_pyspec_cached_venv
|
2019-03-18 19:06:45 +00:00
|
|
|
- run:
|
2019-03-28 16:16:18 +00:00
|
|
|
name: Run py-tests
|
2019-04-20 01:33:15 +00:00
|
|
|
command: make citest
|
|
|
|
- store_test_results:
|
2020-01-10 18:42:55 +00:00
|
|
|
path: tests/core/pyspec/test-reports
|
2019-12-10 16:38:37 +00:00
|
|
|
table_of_contents:
|
|
|
|
docker:
|
|
|
|
- image: circleci/node:10.16.3
|
|
|
|
working_directory: ~/specs-repo
|
|
|
|
steps:
|
2019-12-10 17:57:19 +00:00
|
|
|
- checkout
|
2019-12-10 16:38:37 +00:00
|
|
|
- run:
|
|
|
|
name: Check table of contents
|
2019-12-10 17:20:55 +00:00
|
|
|
command: sudo npm install -g doctoc && make check_toc
|
2019-12-16 11:55:51 +00:00
|
|
|
codespell:
|
|
|
|
docker:
|
2020-01-22 17:09:40 +00:00
|
|
|
- image: circleci/python:3.8
|
2019-12-16 11:55:51 +00:00
|
|
|
working_directory: ~/specs-repo
|
|
|
|
steps:
|
|
|
|
- checkout
|
|
|
|
- run:
|
|
|
|
name: Check codespell
|
|
|
|
command: pip install codespell --user && make codespell
|
2019-05-09 05:11:07 +00:00
|
|
|
lint:
|
|
|
|
docker:
|
2020-01-22 17:09:40 +00:00
|
|
|
- image: circleci/python:3.8
|
2019-05-09 05:11:07 +00:00
|
|
|
working_directory: ~/specs-repo
|
|
|
|
steps:
|
|
|
|
- restore_cache:
|
2020-04-16 17:56:15 +00:00
|
|
|
key: v3-specs-repo-{{ .Branch }}-{{ .Revision }}
|
2019-06-07 19:30:27 +00:00
|
|
|
- restore_pyspec_cached_venv
|
2019-05-09 05:11:07 +00:00
|
|
|
- run:
|
|
|
|
name: Run linter
|
2019-05-16 09:23:26 +00:00
|
|
|
command: make lint
|
2020-01-22 17:09:40 +00:00
|
|
|
install_deposit_contract_compiler:
|
|
|
|
docker:
|
|
|
|
# The deposit contract compiler is pinned to python 3.7 because of the vyper version pin.
|
|
|
|
- image: circleci/python:3.7
|
|
|
|
working_directory: ~/specs-repo
|
|
|
|
steps:
|
|
|
|
- restore_cache:
|
2020-04-16 17:56:15 +00:00
|
|
|
key: v3-specs-repo-{{ .Branch }}-{{ .Revision }}
|
2020-01-22 17:09:40 +00:00
|
|
|
- restore_deposit_contract_compiler_cached_venv
|
|
|
|
- run:
|
|
|
|
name: Install deposit contract compiler requirements
|
|
|
|
command: make install_deposit_contract_compiler
|
|
|
|
- save_deposit_contract_compiler_cached_venv
|
|
|
|
install_deposit_contract_tester:
|
2019-06-07 19:30:27 +00:00
|
|
|
docker:
|
2020-01-22 17:09:40 +00:00
|
|
|
- image: circleci/python:3.8
|
2019-06-07 19:30:27 +00:00
|
|
|
working_directory: ~/specs-repo
|
|
|
|
steps:
|
|
|
|
- restore_cache:
|
2020-04-16 17:56:15 +00:00
|
|
|
key: v3-specs-repo-{{ .Branch }}-{{ .Revision }}
|
2020-01-22 17:09:40 +00:00
|
|
|
- restore_deposit_contract_tester_cached_venv
|
2019-06-07 19:30:27 +00:00
|
|
|
- run:
|
2020-01-22 17:09:40 +00:00
|
|
|
name: Install deposit contract tester requirements
|
|
|
|
command: make install_deposit_contract_tester
|
|
|
|
- save_deposit_contract_tester_cached_venv
|
|
|
|
test_compile_deposit_contract:
|
2019-05-27 07:57:55 +00:00
|
|
|
docker:
|
2020-01-22 17:09:40 +00:00
|
|
|
- image: circleci/python:3.7
|
2019-05-27 07:57:55 +00:00
|
|
|
working_directory: ~/specs-repo
|
|
|
|
steps:
|
|
|
|
- restore_cache:
|
2020-04-16 17:56:15 +00:00
|
|
|
key: v3-specs-repo-{{ .Branch }}-{{ .Revision }}
|
2020-01-22 17:09:40 +00:00
|
|
|
- restore_deposit_contract_compiler_cached_venv
|
|
|
|
- run:
|
|
|
|
name: Run deposit contract compile test
|
|
|
|
command: make test_compile_deposit_contract
|
|
|
|
test_deposit_contract:
|
|
|
|
docker:
|
|
|
|
- image: circleci/python:3.8
|
|
|
|
working_directory: ~/specs-repo
|
|
|
|
steps:
|
|
|
|
- restore_cache:
|
2020-04-16 17:56:15 +00:00
|
|
|
key: v3-specs-repo-{{ .Branch }}-{{ .Revision }}
|
2020-01-22 17:09:40 +00:00
|
|
|
- restore_deposit_contract_tester_cached_venv
|
2019-05-27 07:57:55 +00:00
|
|
|
- run:
|
|
|
|
name: Run deposit contract test
|
|
|
|
command: make test_deposit_contract
|
2020-01-22 17:09:40 +00:00
|
|
|
|
2019-04-20 01:33:15 +00:00
|
|
|
workflows:
|
|
|
|
version: 2.1
|
|
|
|
test_spec:
|
|
|
|
jobs:
|
|
|
|
- checkout_specs
|
2019-06-07 19:30:27 +00:00
|
|
|
- install_pyspec_test:
|
2019-04-20 01:33:15 +00:00
|
|
|
requires:
|
|
|
|
- checkout_specs
|
|
|
|
- test:
|
|
|
|
requires:
|
2019-06-07 19:30:27 +00:00
|
|
|
- install_pyspec_test
|
2019-12-10 17:57:19 +00:00
|
|
|
- table_of_contents
|
2019-12-16 11:55:51 +00:00
|
|
|
- codespell
|
2019-05-16 09:23:26 +00:00
|
|
|
- lint:
|
|
|
|
requires:
|
2019-05-16 10:20:20 +00:00
|
|
|
- test
|
2020-01-22 17:09:40 +00:00
|
|
|
- install_deposit_contract_compiler:
|
|
|
|
requires:
|
|
|
|
- checkout_specs
|
|
|
|
- test_compile_deposit_contract:
|
|
|
|
requires:
|
|
|
|
- install_deposit_contract_compiler
|
|
|
|
- install_deposit_contract_tester:
|
2019-06-07 19:30:27 +00:00
|
|
|
requires:
|
|
|
|
- checkout_specs
|
2020-01-22 17:09:40 +00:00
|
|
|
- test_deposit_contract:
|
2019-05-27 07:57:55 +00:00
|
|
|
requires:
|
2020-01-22 17:09:40 +00:00
|
|
|
- install_deposit_contract_tester
|