Skip to content

Commit

Permalink
ci: Don't remove .coverage file & set empty suffix.
Browse files Browse the repository at this point in the history
Fixes zulip#14962
* codecov needs `.coverage` file in the pwd to upload coverage
results.
* cov.data_suffix=False doesn't work anymore. So we explicity set it to "".
  Filed issue as  nedbat/coveragepy#989
  • Loading branch information
amanagr committed May 17, 2020
1 parent 2981938 commit 4e760bc
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 6 deletions.
2 changes: 1 addition & 1 deletion tools/ci/backend
Expand Up @@ -12,7 +12,7 @@ set -x
# docker setup means the auto-detection logic sees the ~36 processes
# the Docker host has, not the ~2 processes of resources we're
# allocated.
./tools/test-backend --coverage --include-webhooks --parallel=6
./tools/test-backend --coverage --include-webhooks --no-cov-cleanup --parallel=6

# We run mypy after the backend tests so we get output from the
# backend tests, which tend to uncover more serious problems, first.
Expand Down
1 change: 0 additions & 1 deletion tools/coveragerc
Expand Up @@ -24,7 +24,6 @@ exclude_lines =
^\s*\.\.\.

[run]
data_file=var/.coverage
omit =
*/zulip-venv-cache/*
*/migrations/*
Expand Down
13 changes: 9 additions & 4 deletions tools/test-backend
Expand Up @@ -216,6 +216,10 @@ def main() -> None:
parser.add_argument('--verbose-coverage', dest='verbose_coverage',
action="store_true",
default=False, help='Enable verbose print of coverage report.')
parser.add_argument('--no-cov-cleanup', dest='no_cov_cleanup',
action='store_true',
default=False,
help="Do not clean generated coverage files.")

parser.add_argument('--parallel', dest='processes',
type=int,
Expand Down Expand Up @@ -354,10 +358,12 @@ def main() -> None:
assert_provisioning_status_ok(options.force)

if options.coverage:
import atexit
import coverage
cov = coverage.Coverage(config_file="tools/coveragerc", concurrency='multiprocessing')
atexit.register(lambda: cov.erase()) # Ensure the data file gets cleaned up at the end.
cov = coverage.Coverage(data_suffix="", config_file="tools/coveragerc", concurrency='multiprocessing')
# Do not clean .coverage file in CircleCi job so that coverage data can be uploaded.
if not options.no_cov_cleanup:
import atexit
atexit.register(lambda: cov.erase()) # Ensure the data file gets cleaned up at the end.
cov.start()
if options.profile:
import cProfile
Expand Down Expand Up @@ -407,7 +413,6 @@ def main() -> None:
cov.stop()
cov.save()
cov.combine()
cov.data_suffix = False # Disable suffix so that filename is .coverage
cov.save()
if options.verbose_coverage:
print("Printing coverage data")
Expand Down

0 comments on commit 4e760bc

Please sign in to comment.