diff --git a/.circleci/config.yml b/.circleci/config.yml index 03f0025bb..df181f058 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -6,51 +6,51 @@ workflows: ci: jobs: # Platforms - # - "debian-9" - # - "debian-8": - # requires: - # - "debian-9" + - "debian-9" + - "debian-8": + requires: + - "debian-9" - # - "ubuntu-20.04" - # - "ubuntu-18.04": - # requires: - # - "ubuntu-20.04" - # - "ubuntu-16.04": - # requires: - # - "ubuntu-20.04" + - "ubuntu-20.04" + - "ubuntu-18.04": + requires: + - "ubuntu-20.04" + - "ubuntu-16.04": + requires: + - "ubuntu-20.04" - # - "fedora-29" - # - "fedora-28": - # requires: - # - "fedora-29" + - "fedora-29" + - "fedora-28": + requires: + - "fedora-29" - # - "centos-8" + - "centos-8" - # - "nixos-19.09" + - "nixos-19.09" # Test against PyPy 2.7 - "pypy2.7-buster" # Just one Python 3.6 configuration while the port is in-progress. - # - "python3.6" + - "python3.6" # Other assorted tasks and configurations - # - "lint" - # - "pyinstaller" - # - "deprecations" - # - "c-locale" + - "lint" + - "pyinstaller" + - "deprecations" + - "c-locale" # Any locale other than C or UTF-8. - # - "another-locale" + - "another-locale" - # - "integration": - # requires: - # # If the unit test suite doesn't pass, don't bother running the - # # integration tests. - # - "debian-9" + - "integration": + requires: + # If the unit test suite doesn't pass, don't bother running the + # integration tests. + - "debian-9" # Generate the underlying data for a visualization to aid with Python 3 # porting. - # - "build-porting-depgraph" + - "build-porting-depgraph" images: # Build the Docker images used by the ci jobs. This makes the ci jobs diff --git a/tox.ini b/tox.ini index c744e3585..c2e20f6ff 100644 --- a/tox.ini +++ b/tox.ini @@ -62,12 +62,32 @@ commands = # Python 3.x yet. !py36: tahoe --version + !coverage: trial {env:TAHOE_LAFS_TRIAL_ARGS:--rterrors} {posargs:{env:TEST_SUITE}} + + # measuring coverage is somewhat slower than not measuring coverage + # so only do it on request. + coverage: coverage run -m twisted.trial {env:TAHOE_LAFS_TRIAL_ARGS:--rterrors --reporter=timing} {posargs:{env:TEST_SUITE}} + coverage: coverage combine + coverage: coverage xml + +# This will only work on POSIX, but CI only runs it there +[test:pypy27-coverage] +commands = + # As an aid to debugging, dump all of the Python packages and their + # versions that are installed in the test environment. This is + # particularly useful to get from CI runs - though hopefully the + # version pinning we do limits the variability of this output + pip freeze + + tahoe --version + !coverage: trial {env:TAHOE_LAFS_TRIAL_ARGS:--rterrors} allmydata.test.test_system !coverage: env SKIP_TEST_SYSTEM=1 trial {env:TAHOE_LAFS_TRIAL_ARGS:--rterrors} {posargs:{env:TEST_SUITE}} # measuring coverage is somewhat slower than not measuring coverage # so only do it on request. - coverage: coverage run -m twisted.trial {env:TAHOE_LAFS_TRIAL_ARGS:--rterrors --reporter=timing} {posargs:{env:TEST_SUITE}} + coverage: coverage run -m twisted.trial {env:TAHOE_LAFS_TRIAL_ARGS:--rterrors --reporter=timing} allmydata.test.test_system + coverage: env SKIP_TEST_SYSTEM=1 coverage run -m twisted.trial {env:TAHOE_LAFS_TRIAL_ARGS:--rterrors --reporter=timing} {posargs:{env:TEST_SUITE}} coverage: coverage combine coverage: coverage xml