Tribler/py-ipv8

Move tests to GitHub Actions

qstokkink opened this issue · 5 comments

We've had several PR test outages due to Jenkins updates over the last few months.

Depending on the outage, the resolution to these outages took me from a few minutes up to multiple days.

It's probably a better use of my/our time to port our jobs to GitHub Actions. The following PR tests would need to be ported:

  • Mypy #1280
  • Ruff #1280
  • Tests on Linux (Ubuntu, Python 3.7) #1280
  • Tests on Mac (MacOS, Python should be 3.8, now running 3.9) #1280
  • Tests on Windows (Windows, Python 3.8) #1280

Additionally, we may want to port the three remaining validation checks (the cross-env check is already in GitHub Actions):

  • Validate attestation (deprecrated functionality) tutorial #1283
  • Validate identity tutorial #1283
  • Validate documentation #1283

The post-merge tests still seem to be working reliably (Mutation tests + Linux, Mac, Windows coverage listed in the README). Perhaps we should port these at a later date. If we do end up porting these, it concerns the following jobs (we don't really care about the Python versions here):

  • Tests with coverage on Linux #1290
  • Tests with coverage on Mac #1290
  • Tests with coverage on Windows #1290
  • Mutation tests (this is a HUGE job and should be the very very very last thing we port)

Side note: this issue only covers tests due to (proposed) merges. Our network health jobs (peer discovery health, default community peer discovery health, and bootstrap connectivity) would remain on Jenkins.

We got to the "very very very last thing" a lot sooner than I expected. However, there are some issues with resolving this last bullet point. I'll scale down this issue to low priority.

Apparently the MutPy changes are not lost at all. https://github.com/Tribler/py-ipv8-mutation-libraries/issues/1#issue-771999920 In that case, we can clean everything up neatly.

Once Tribler/mutpy#1 is resolved, this repo should make use of the sanitized fork. Then the approach of #1254 (comment) could be followed to implement the GitHub Action.

The mutpy fork issue has now been resolved. An .md report can be generated with:

bin/github_report.py --codebase ipv8