defaults : &defaults
docker :
- image : birdofpreyru/mythril-integration-tests:0.0.3
version : 2
jobs :
# Basic testing of a new commit to any branch.
test :
<< : *defaults
steps :
- checkout :
path : /home/mythril
# Uncomment, for local testing with circleci command, as it ignores
# path param in checkout command, and this symlink compenstates for that.
# - run: ln -s /root/project /home/mythril
- restore-cache :
keys :
- tox-env-{{ checksum "/home/mythril/setup.py" }}
- run :
name : Installing mythril tools
command : ./install-mythril-tools.sh laser-ethereum
working_directory : /home
- run :
name : Install tox envs
command : tox -vv --notest
working_directory : /home/mythril
environment :
LC_ALL : C.UTF-8
LANG : C.UTF-8
- save_cache :
key : tox-env-{{ checksum "/home/mythril/setup.py" }}
paths :
- .tox/py*
- /root/.cache/pip/wheels/
- run :
background : true
name : Launch of background geth instance
command : geth --syncmode full --rpc --shh
- run :
name : Unit-testing
command : tox
working_directory : /home/mythril
environment :
LC_ALL : C.UTF-8
LANG : C.UTF-8
- store_test_results :
path : /home/mythril/.tox/output
- store_artifacts :
path : /home/mythril/.tox/output
- run :
name : Ensuring that setup script is functional
command : python3 setup.py install
working_directory : /home/mythril
- run :
name : Integration tests
command : if [ -z "$CIRCLE_PR_NUMBER" ]; then ./run-integration-tests.sh; fi
working_directory : /home
deploy :
<< : *defaults
steps :
- checkout :
path : /home/mythril
- run :
name : Verify Git tag vs. version
command : python3 setup.py verify
working_directory : /home/mythril
- run :
name : Build
command : python3 setup.py sdist
working_directory : /home/mythril
- run :
name : Deploy
command : twine upload dist/*
working_directory : /home/mythril
workflows :
version : 2
build :
jobs :
- test :
filters :
tags :
only : /.*/
- deploy :
filters :
branches :
ignore : /.*/
tags :
only : /v[0-9]+(\.[0-9]+)*/
requires :
- test