#3653 closed defect (fixed)

Use newer coveralls version in GitHub Actions

Reported by: sajith Owned by: sajith
Priority: normal Milestone: undecided
Component: dev-infrastructure Version: n/a
Keywords: Cc:
Launchpad Bug:


This is related to the discussion about #3616.

While working on #3616, it turned out that coveralls-python (henceforth "coveralls") maintains two separate, slightly incompatible, versions for Python 2 and Python 3. At this time of writing, coveralls 1.11.1 will be installed for Python 2.7, and coveralls 3.0.1 will be installed for Python 3.x.

The newer version of coveralls has a --finish option, which is useful to indicate to coveralls.io that a number of parallel builds have finished. Without this option, we will have to manually construct some parameters and use curl to do the same, as done here:


That should be fine, except when CI needs to run Python 2.7 tests and Python 3.x tests in parallel. In the same CI run, IDs generated by the two versions of coveralls will be of different types: older coveralls gets something like cc6f006336de603b95c183e4e80e059b88f20b8d-PR-986.2, and newer one gets 630187837.1. If we mix coveralls 1.x and 3.x in the same CI run, coveralls.io will have trouble matching up the jobs, and will never send coverage status back to GitHub.

We could invoke the newer version of coveralls uniformly, relying on the fact that GitHub Actions tool cache already has Python3 and pip3, even when a CI job is set up to run Python 2.7 tests.

Change History (3)

comment:1 Changed at 2021-03-27T13:49:07Z by sajith

  • Owner set to sajith
  • Status changed from new to assigned

comment:2 Changed at 2021-03-27T13:49:19Z by sajith

  • Component changed from unknown to dev-infrastructure

comment:3 Changed at 2021-03-31T16:56:40Z by GitHub <noreply@…>

  • Resolution set to fixed
  • Status changed from assigned to closed

In 2d425ef/trunk:

Merge pull request #1021 from tahoe-lafs/3653.use-newer-coveralls

Use newer coveralls

Fixes: ticket:3653

Note: See TracTickets for help on using tickets.