eth2.0-specs/.circleci/config.yml

114 lines
3.5 KiB
YAML
Raw Normal View History

2019-03-27 16:35:46 +00:00
version: 2.1
commands:
restore_cached_venv:
description: "Restores a cached venv"
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:
description: "Saves a venv into a cache"
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-03-18 19:06:45 +00:00
jobs:
checkout_specs:
2019-03-18 19:06:45 +00:00
docker:
- image: circleci/python:3.6
working_directory: ~/specs-repo
2019-03-18 19:06:45 +00:00
steps:
# Restore git repo at point close to target branch/revision, to speed up checkout
- restore_cache:
keys:
- v1-specs-repo-{{ .Branch }}-{{ .Revision }}
- v1-specs-repo-{{ .Branch }}-
- v1-specs-repo-
2019-03-18 19:06:45 +00:00
- checkout
- run:
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:
key: v1-specs-repo-{{ .Branch }}-{{ .Revision }}
paths:
- ~/specs-repo
2019-05-16 09:23:26 +00:00
install_env:
docker:
- image: circleci/python:3.6
working_directory: ~/specs-repo
steps:
- restore_cache:
key: v1-specs-repo-{{ .Branch }}-{{ .Revision }}
- restore_cached_venv:
2019-05-16 09:45:09 +00:00
venv_name: v1-pyspec-03
2019-04-24 17:59:13 +00:00
reqs_checksum: '{{ checksum "test_libs/pyspec/requirements.txt" }}-{{ checksum "test_libs/pyspec/requirements-testing.txt" }}'
- run:
name: Install pyspec requirements
2019-05-16 09:23:26 +00:00
command: make install_test && make install_lint
- save_cached_venv:
2019-05-16 09:45:09 +00:00
venv_name: v1-pyspec-03
2019-04-24 17:59:13 +00:00
reqs_checksum: '{{ checksum "test_libs/pyspec/requirements.txt" }}-{{ checksum "test_libs/pyspec/requirements-testing.txt" }}'
venv_path: ./test_libs/pyspec/venv
test:
docker:
- image: circleci/python:3.6
working_directory: ~/specs-repo
steps:
- restore_cache:
key: v1-specs-repo-{{ .Branch }}-{{ .Revision }}
- restore_cached_venv:
2019-05-16 09:45:09 +00:00
venv_name: v1-pyspec-03
2019-04-24 17:59:13 +00:00
reqs_checksum: '{{ checksum "test_libs/pyspec/requirements.txt" }}-{{ checksum "test_libs/pyspec/requirements-testing.txt" }}'
2019-03-18 19:06:45 +00:00
- run:
name: Run py-tests
command: make citest
- store_test_results:
path: test_libs/pyspec/test-reports
2019-05-09 05:11:07 +00:00
lint:
docker:
- image: circleci/python:3.6
working_directory: ~/specs-repo
steps:
- restore_cache:
key: v1-specs-repo-{{ .Branch }}-{{ .Revision }}
- restore_cached_venv:
2019-05-16 09:45:09 +00:00
venv_name: v1-pyspec-03
2019-05-09 05:11:07 +00:00
reqs_checksum: '{{ checksum "test_libs/pyspec/requirements.txt" }}-{{ checksum "test_libs/pyspec/requirements-testing.txt" }}'
- run:
name: Run linter
2019-05-16 09:23:26 +00:00
command: make lint
workflows:
version: 2.1
test_spec:
jobs:
- checkout_specs
2019-05-16 09:23:26 +00:00
- install_env:
requires:
- checkout_specs
- test:
requires:
2019-05-16 09:23:26 +00:00
- install_env
- lint:
requires:
2019-05-16 10:20:20 +00:00
- test