defaults: &defaults docker: - image: mythril/dev_test_environment:latest 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: Install tox envs command: tox -vv --notest working_directory: /home/mythril environment: LC_ALL: en_US.ASCII LANG: en_US.ASCII - 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: en_US.ASCII LANG: en_US.ASCII - 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: Sonar analysis command: if [ -z "CIRCLE_PR_NUMBER" ]; then sonar-scanner -Dsonar.projectKey=$SONAR_PROJECT_KEY -Dsonar.organization=$SONAR_ORGANIZATION -Dsonar.sources=/home/mythril -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$(SONAR_LOGIN); fi - run: name: Integration tests command: if [ -z "$CIRCLE_PR_NUMBER" ]; then ./run-integration-tests.sh; fi working_directory: /home pypi_release: <<: *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 dockerhub_release: docker: - image: docker:stable steps: - checkout - setup_remote_docker - run: name: Building Docker Image command: ./docker_build_and_deploy.sh workflows: version: 2 build: jobs: - test: filters: tags: only: /.*/ - pypi_release: filters: branches: ignore: /.*/ tags: only: /v[0-9]+(\.[0-9]+)*/ requires: - test - dockerhub_release: filters: branches: ignore: /.*/ tags: only: /v[0-9]+(\.[0-9]+)*/ requires: - test