# NOTE: We're only focusing on contracts in the 3.0 branch currently, so
# we only run certain jobs  until we're ready to reconcile other packages.

version: 2

jobs:
    build:
        resource_class: medium+
        docker:
            - image: circleci/node:9-browsers
        environment:
            CONTRACTS_COMMIT_HASH: '9ed05f5'
        working_directory: ~/repo
        steps:
            - checkout
            - run: echo 'export PATH=$HOME/CIRCLE_PROJECT_REPONAME/node_modules/.bin:$PATH' >> $BASH_ENV
            - run:
                  # HACK(albrow): Without this, yarn commands will sometimes
                  # fail with a "permission denied" error.
                  name: Set npm path
                  command: npm set prefix=/home/circleci/npm && echo 'export PATH=$HOME/circleci/npm/bin:$PATH' >> /home/circleci/.bashrc
            - run:
                  name: install-yarn
                  command: npm install --global yarn@1.9.4
            - run:
                  name: yarn
                  command: yarn --frozen-lockfile --ignore-engines install || yarn --frozen-lockfile --ignore-engines install
            - setup_remote_docker
            - run: yarn build:ci:no_website
            - run: yarn build:ts
            - save_cache:
                  key: repo-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo
            - save_cache:
                  key: python-contract-wrappers-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/packages/python-contract-wrappers/generated
            - store_artifacts:
                  path: ~/repo/packages/python-contract-wrappers/generated
            - store_artifacts:
                  path: ~/repo/packages/abi-gen/test-cli/output
    build-3.0:
        resource_class: medium+
        docker:
            - image: circleci/node:9-browsers
        environment:
            CONTRACTS_COMMIT_HASH: '9ed05f5'
        working_directory: ~/repo
        steps:
            - checkout
            - run: echo 'export PATH=$HOME/CIRCLE_PROJECT_REPONAME/node_modules/.bin:$PATH' >> $BASH_ENV
            - run:
                  name: install-yarn
                  command: sudo npm install --global yarn@1.9.4
            - run:
                  name: yarn
                  command: yarn --frozen-lockfile --ignore-engines install || yarn --frozen-lockfile --ignore-engines install
            - setup_remote_docker
            - run: yarn build:contracts
            - run: PKG='@0x/monorepo-scripts' yarn build
            - save_cache:
                  key: repo-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo
    build-website:
        resource_class: medium+
        docker:
            - image: circleci/node:9-browsers
        working_directory: ~/repo
        steps:
            - restore_cache:
                  keys:
                      - repo-{{ .Environment.CIRCLE_SHA1 }}
            - run: cd packages/website && yarn build:prod
    test-contracts-ganache:
        docker:
            - image: circleci/node:9-browsers
        working_directory: ~/repo
        steps:
            - restore_cache:
                  keys:
                      - repo-{{ .Environment.CIRCLE_SHA1 }}
            - run: yarn wsrun test:circleci @0x/contracts-multisig @0x/contracts-utils @0x/contracts-exchange-libs @0x/contracts-erc20 @0x/contracts-erc721 @0x/contracts-erc1155 @0x/contracts-extensions @0x/contracts-asset-proxy @0x/contracts-exchange @0x/contracts-exchange-forwarder @0x/contracts-coordinator @0x/contracts-dev-utils @0x/contracts-staking
    test-contracts-ganache-3.0:
        docker:
            - image: circleci/node:9-browsers
        working_directory: ~/repo
        steps:
            - restore_cache:
                  keys:
                      - repo-{{ .Environment.CIRCLE_SHA1 }}
            - run: yarn wsrun test:circleci @0x/contracts-multisig @0x/contracts-utils @0x/contracts-exchange-libs @0x/contracts-erc20 @0x/contracts-erc721 @0x/contracts-erc1155 @0x/contracts-asset-proxy @0x/contracts-exchange @0x/contracts-coordinator @0x/contracts-dev-utils @0x/contracts-staking
            # TODO(dorothy-zbornak): Re-enable after updating this package for 3.0.
            # - run: yarn wsrun test:circleci @0x/contracts-extensions
            # TODO(dorothy-zbornak): Re-enable after updating this package for 3.0.
            # - run: yarn wsrun test:circleci @0x/contracts-exchange-forwarder
            # TODO(dorothy-zbornak): Re-enable after this package is complete.
            # - run: yarn wsrun test:circleci @0x/contracts-staking
    test-contracts-geth:
        docker:
            - image: circleci/node:9-browsers
            - image: 0xorg/devnet
        working_directory: ~/repo
        steps:
            - restore_cache:
                  keys:
                      - repo-{{ .Environment.CIRCLE_SHA1 }}
            # HACK(albrow): we need to sleep 10 seconds to ensure the devnet is
            # initialized
            - run: sleep 10 && TEST_PROVIDER=geth yarn wsrun test:circleci @0x/contracts-multisig @0x/contracts-utils @0x/contracts-exchange-libs @0x/contracts-erc20 @0x/contracts-erc721 @0x/contracts-erc1155 @0x/contracts-extensions @0x/contracts-asset-proxy @0x/contracts-exchange @0x/contracts-exchange-forwarder @0x/contracts-coordinator @0x/contracts-dev-utils @0x/contracts-staking
    test-publish:
        resource_class: medium+
        docker:
            - image: circleci/node:9-browsers
            - image: 0xorg/verdaccio
        working_directory: ~/repo
        steps:
            - restore_cache:
                  keys:
                      - repo-{{ .Environment.CIRCLE_SHA1 }}
            - run: yarn test:publish:circleci
    test-doc-generation:
        docker:
            - image: circleci/node:9-browsers
        working_directory: ~/repo
        steps:
            - restore_cache:
                  keys:
                      - repo-{{ .Environment.CIRCLE_SHA1 }}
            - run: yarn test:generate_docs:circleci
    test-rest:
        docker:
            - image: circleci/node:9-browsers
        working_directory: ~/repo
        steps:
            - restore_cache:
                  keys:
                      - repo-{{ .Environment.CIRCLE_SHA1 }}
            - run: yarn wsrun test:circleci @0x/contracts-test-utils
            - run: yarn wsrun test:circleci @0x/abi-gen
            - run: yarn wsrun test:circleci @0x/asset-buyer
            - run: yarn wsrun test:circleci @0x/contract-artifacts
            - run: yarn wsrun test:circleci @0x/assert
            - run: yarn wsrun test:circleci @0x/base-contract
            - run: yarn wsrun test:circleci @0x/connect
            - run: yarn wsrun test:circleci @0x/contract-wrappers
            - run: yarn wsrun test:circleci @0x/dev-utils
            - run: yarn wsrun test:circleci @0x/json-schemas
            - run: yarn wsrun test:circleci @0x/order-utils
            - run: yarn wsrun test:circleci @0x/order-watcher
            - run: yarn wsrun test:circleci @0x/sol-compiler
            - run: yarn wsrun test:circleci @0x/sol-tracing-utils
            - run: yarn wsrun test:circleci @0x/sol-doc
            - run: yarn wsrun test:circleci @0x/subproviders
            - run: yarn wsrun test:circleci @0x/web3-wrapper
            - run: yarn wsrun test:circleci @0x/utils
            - run: yarn wsrun test:circleci @0x/instant
            - save_cache:
                  key: coverage-abi-gen-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/packages/abi-gen/coverage/lcov.info
            - save_cache:
                  key: coverage-assert-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/packages/assert/coverage/lcov.info
            - save_cache:
                  key: coverage-asset-buyer-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/packages/asset-buyer/coverage/lcov.info
            - save_cache:
                  key: coverage-base-contract-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/packages/base-contract/coverage/lcov.info
            - save_cache:
                  key: coverage-connect-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/packages/connect/coverage/lcov.info
            - save_cache:
                  key: coverage-contract-wrappers-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/packages/contract-wrappers/coverage/lcov.info
            - save_cache:
                  key: coverage-dev-utils-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/packages/dev-utils/coverage/lcov.info
            - save_cache:
                  key: coverage-json-schemas-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/packages/json-schemas/coverage/lcov.info
            - save_cache:
                  key: coverage-order-utils-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/packages/order-utils/coverage/lcov.info
            - save_cache:
                  key: coverage-order-watcher-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/packages/order-watcher/coverage/lcov.info
            - save_cache:
                  key: coverage-sol-compiler-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/packages/sol-compiler/coverage/lcov.info
            - save_cache:
                  key: coverage-sol-tracing-utils-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/packages/sol-tracing-utils/coverage/lcov.info
            - save_cache:
                  key: coverage-sol-doc-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/packages/sol-doc/coverage/lcov.info
            - save_cache:
                  key: coverage-subproviders-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/packages/subproviders/coverage/lcov.info
            - save_cache:
                  key: coverage-web3-wrapper-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/packages/web3-wrapper/coverage/lcov.info
    test-rest-3.0:
        docker:
            - image: circleci/node:9-browsers
        working_directory: ~/repo
        steps:
            - restore_cache:
                  keys:
                      - repo-{{ .Environment.CIRCLE_SHA1 }}
            - run: yarn wsrun test:circleci @0x/contracts-test-utils
            # TODO(dorothy-zbornak): Re-enable after updating this package for 3.0.
            # - run: yarn wsrun test:circleci-3.0 @0x/abi-gen
            - run: yarn wsrun test:circleci @0x/assert
            - run: yarn wsrun test:circleci @0x/base-contract
            # TODO(dorothy-zbornak): Re-enable after updating this package for 3.0.
            # - run: yarn wsrun test:circleci @0x/contract-wrappers
            - run: yarn wsrun test:circleci @0x/dev-utils
            - run: yarn wsrun test:circleci @0x/json-schemas
            - run: yarn wsrun test:circleci @0x/order-utils
            - run: yarn wsrun test:circleci @0x/sol-compiler
            - run: yarn wsrun test:circleci @0x/sol-tracing-utils
            - run: yarn wsrun test:circleci @0x/subproviders
            - run: yarn wsrun test:circleci @0x/web3-wrapper
            - run: yarn wsrun test:circleci @0x/utils
            # TODO(dorothy-zbornak): Re-enable after updating this package for 3.0.
            # - save_cache:
            #       key: coverage-abi-gen-{{ .Environment.CIRCLE_SHA1 }}
            #       paths:
            #           - ~/repo/packages/abi-gen/coverage/lcov.info
            - save_cache:
                  key: coverage-assert-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/packages/assert/coverage/lcov.info
            - save_cache:
                  key: coverage-base-contract-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/packages/base-contract/coverage/lcov.info
            # TODO(dorothy-zbornak): Re-enable after updating this package for 3.0.
            # - save_cache:
            #       key: coverage-contract-wrappers-{{ .Environment.CIRCLE_SHA1 }}
            #       paths:
            #           - ~/repo/packages/contract-wrappers/coverage/lcov.info
            - save_cache:
                  key: coverage-dev-utils-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/packages/dev-utils/coverage/lcov.info
            - save_cache:
                  key: coverage-json-schemas-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/packages/json-schemas/coverage/lcov.info
            - save_cache:
                  key: coverage-order-utils-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/packages/order-utils/coverage/lcov.info
            - save_cache:
                  key: coverage-sol-compiler-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/packages/sol-compiler/coverage/lcov.info
            - save_cache:
                  key: coverage-sol-tracing-utils-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/packages/sol-tracing-utils/coverage/lcov.info
            - save_cache:
                  key: coverage-subproviders-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/packages/subproviders/coverage/lcov.info
            - save_cache:
                  key: coverage-web3-wrapper-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/packages/web3-wrapper/coverage/lcov.info
    test-python:
        working_directory: ~/repo
        docker:
            - image: circleci/python
            - image: 0xorg/ganache-cli:2.2.2
            - image: 0xorg/launch-kit-ci
              environment:
                  RPC_URL: http://localhost:8545
                  NETWORK_ID: 50
                  WHITELIST_ALL_TOKENS: True
              command: bash -c "until curl -sfd'{\"method\":\"net_listening\"}' http://localhost:8545 | grep true; do continue; done; forever ts/lib/index.js"
        steps:
            - checkout
            - run: sudo chown -R circleci:circleci /usr/local/bin
            - run: sudo chown -R circleci:circleci /usr/local/lib/python3.7
            - restore_cache:
                  key: installed-py-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  key: python-contract-wrappers-{{ .Environment.CIRCLE_SHA1 }}
            - run:
                  command: |
                      cd python-packages
                      python -m ensurepip
                      ./pre_install
                      ./install
            - save_cache:
                  key: installed-py-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - '/usr/local/bin'
                      - '/usr/local/lib/python3.7/site-packages'
            - run:
                  command: |
                      cd python-packages
                      ./parallel coverage run setup.py test
                      ./build_docs
            - save_cache:
                  key: coverage-python-contract-addresses-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/python-packages/contract_addresses/.coverage
            - save_cache:
                  key: coverage-python-contract-artifacts-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/python-packages/contract_artifacts/.coverage
            - save_cache:
                  key: coverage-python-contract-demo-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/python-packages/contract_demo/.coverage
            - save_cache:
                  key: coverage-python-json-schemas-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/python-packages/json_schemas/.coverage
            - save_cache:
                  key: coverage-python-order-utils-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/python-packages/order_utils/.coverage
            - save_cache:
                  key: coverage-python-sra-client-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - ~/repo/python-packages/sra_client/.coverage
            - store_artifacts:
                  path: ~/repo/python-packages/contract_wrappers/src/zero_ex/contract_wrappers/erc20_token/__init__.py
            - store_artifacts:
                  path: ~/repo/python-packages/contract_wrappers/src/zero_ex/contract_wrappers/exchange/__init__.py
            - store_artifacts:
                  path: ~/repo/python-packages/contract_addresses/build
            - store_artifacts:
                  path: ~/repo/python-packages/contract_artifacts/build
            - store_artifacts:
                  path: ~/repo/python-packages/contract_wrappers/build
            - store_artifacts:
                  path: ~/repo/python-packages/json_schemas/build
            - store_artifacts:
                  path: ~/repo/python-packages/middlewares/build
            - store_artifacts:
                  path: ~/repo/python-packages/order_utils/build
            - store_artifacts:
                  path: ~/repo/python-packages/sra_client/build
    test-rest-python:
        working_directory: ~/repo
        docker:
            - image: circleci/python
        steps:
            - checkout
            - run: sudo chown -R circleci:circleci /usr/local/bin
            - run: sudo chown -R circleci:circleci /usr/local/lib/python3.7
            - restore_cache:
                  key: installed-py-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
            - run:
                  command: |
                      cd python-packages/order_utils
                      python -m ensurepip
                      python -m pip install .
            - save_cache:
                  key: installed-py-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
                  paths:
                      - '/usr/local/bin'
                      - '/usr/local/lib/python3.7/site-packages'
                      - '.eggs'
                      - '.mypy_cache'
                      - '.pytest_cache'
                      - '.tox'
            - run:
                  command: |
                      cd python-packages/order_utils
                      tox
    static-tests-python:
        working_directory: ~/repo
        docker:
            - image: circleci/python
        steps:
            - checkout
            - run: sudo chown -R circleci:circleci /usr/local/bin
            - run: sudo chown -R circleci:circleci /usr/local/lib/python3.7
            - restore_cache:
                  key: installed-py-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  key: python-contract-wrappers-{{ .Environment.CIRCLE_SHA1 }}
            - run:
                  command: |
                      python -m ensurepip
                      cd python-packages
                      ./pre_install
                      ./install
                      ./lint
    static-tests:
        working_directory: ~/repo
        docker:
            - image: circleci/node:9-browsers
        steps:
            - restore_cache:
                  keys:
                      - repo-{{ .Environment.CIRCLE_SHA1 }}
            - run: yarn lerna run lint
            - run: yarn prettier:ci
            - run: yarn deps_versions:ci
            - run: cd packages/0x.js && yarn build:umd:prod
            - run: yarn bundlewatch
    static-tests-3.0:
        working_directory: ~/repo
        docker:
            - image: circleci/node:9-browsers
        steps:
            - restore_cache:
                  keys:
                      - repo-{{ .Environment.CIRCLE_SHA1 }}
            - run: yarn lerna run lint
            - run: yarn prettier:ci
            - run: yarn deps_versions:ci
    submit-coverage:
        docker:
            - image: circleci/node:9-browsers
        working_directory: ~/repo
        steps:
            - restore_cache:
                  keys:
                      - repo-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-abi-gen-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-assert-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-asset-buyer-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-base-contract-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-connect-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-contract-wrappers-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-dev-utils-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-json-schemas-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-order-utils-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-order-watcher-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-sol-compiler-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-sol-tracing-utils-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-sol-doc-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-subproviders-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-web3-wrapper-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-contracts-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-python-json-schemas-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-python-contract-addresses-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-python-contract-artifacts-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-python-contract-demo-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-python-sra-client-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-python-order-utils-{{ .Environment.CIRCLE_SHA1 }}
            - run: yarn report_coverage
    submit-coverage-3.0:
        docker:
            - image: circleci/node:9-browsers
        working_directory: ~/repo
        steps:
            - restore_cache:
                  keys:
                      - repo-{{ .Environment.CIRCLE_SHA1 }}
            # TODO(dorothy-zbornak): Re-enable after updating this package for 3.0.
            # - restore_cache:
            #       keys:
            #           - coverage-abi-gen-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-assert-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-base-contract-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-connect-{{ .Environment.CIRCLE_SHA1 }}
            # TODO(dorothy-zbornak): Re-enable after updating this package for 3.0.
            # - restore_cache:
            #       keys:
            #           - coverage-contract-wrappers-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-dev-utils-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-json-schemas-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-order-utils-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-sol-compiler-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-sol-tracing-utils-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-subproviders-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-web3-wrapper-{{ .Environment.CIRCLE_SHA1 }}
            - restore_cache:
                  keys:
                      - coverage-contracts-{{ .Environment.CIRCLE_SHA1 }}
            - run: yarn report_coverage
workflows:
    version: 2
    main:
        jobs:
            - build-3.0
            # Disabled for 3.0
            # - build-website:
            #       requires:
            #           - build
            - test-contracts-ganache-3.0:
                  requires:
                      - build-3.0
            # Disabled until geth docker image is fixed.
            # - test-contracts-geth:
            #       requires:
            #           - build-3.0
            # Disabled for 3.0
            # - test-pipeline:
            #       requires:
            #           - build-3.0
            - test-rest-3.0:
                  requires:
                      - build-3.0
            - static-tests-3.0:
                  requires:
                      - build-3.0
            # Disabled for 3.0
            # - test-publish:
            #       requires:
            #           - build-3.0
            # Disabled for 3.0
            # - test-doc-generation:
            #       requires:
            #           - build-3.0
            - submit-coverage-3.0:
                  requires:
                      - test-contracts-ganache-3.0
                      - test-rest-3.0
                      - static-tests-3.0
            # Disabled for 3.0
            # - test-python:
            #       requires:
            #           - build-3.0
            #           - test-rest-3.0
            # Disabled for 3.0
            # - static-tests-python:
            #       requires:
            #           - test-python
