jazzband / tablib

Python Module for Tabular Datasets in XLS, CSV, JSON, YAML, &c.
https://tablib.readthedocs.io/
MIT License
4.59k stars 590 forks source link

Move testing from Travis CI to GitHub Actions #479

Closed hugovk closed 3 years ago

hugovk commented 3 years ago

Travis CI has a new pricing model which places limits on open source.

Many projects are moving to GitHub Actions instead, let's do the same.

~We already have tests on GHA, just missing sending coverage to Codecov. Earlier it was tricky to do, but Codecov now have an action for this; added here.~ Done in #480.


We'll need to move deployment from Travis to GHA. We already got it working for another Jazzband project, but I'll do it in a followup PR.

So this one reduces the Travis testing to a single job.


~This also fixes a pytest warning:~ Done in #480.

codecov[bot] commented 3 years ago

Codecov Report

Merging #479 (5131ea2) into master (22c88de) will not change coverage. The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##           master     #479   +/-   ##
=======================================
  Coverage   90.66%   90.66%           
=======================================
  Files          28       28           
  Lines        2613     2613           
=======================================
  Hits         2369     2369           
  Misses        244      244           

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 22c88de...5131ea2. Read the comment docs.

claudep commented 3 years ago

I'm not so thrilled to add even more dependencies on Github. I don't see Travis limitation a problem for our usage, do you?

hugovk commented 3 years ago

Unfortunately yes, others and I are seeing big problems with Travis CI.

First, travis-ci.org has been really slow (maybe we were lucky just now, on a Saturday) with long delays of sometimes up to an hour before jobs begin.

That's because they've been moving resources from .org to travis-ci.com, and everything will need to be moved to travis-ci.com by the end of the year, when .org will be closed down.

Second, there's a new credit-based pricing model on .com. They give a 10k-credit free trial, enough for 1k Linux minutes. When that expires they encourage you to buy a plan or ask to be on some new OSS plan, where if the project meets the requirements, they will evaluate how many credits the project can have. It's not clear if this renews monthly or if the process must be repeated when the credits expire.

I've applied for credits for another project but not got very far yet.

Some more info here:

claudep commented 3 years ago

Thanks so much for this detailed report. I would not rush however in changing things, firstly because tablib does not see so much activity (we can affort waiting 1-2 hours for tests) and Travis may react to the Web feedback at some point.

hugovk commented 3 years ago

Okay, let's wait a bit.

I'll make a new PR with the first commit (GHA coverage) and third (fix pytest warning), they're still useful now. Edit: https://github.com/jazzband/tablib/pull/480.

hugovk commented 3 years ago

(Rebased after merging subset #480.)

hugovk commented 3 years ago

All Jazzband repos need porting over to GHA:

jezdez commented 3 years ago

The alternatives of course are Azure, GitLab, Circle CI and a few others. Given the fact that GitHub Actions are designed to allow self-hosted test runners I'd say the risk of lock-in is manageable compared to the added benefits of direct integration in the GitHub development workflow.

Luckily there is https://github.com/ymyzk/tox-gh-actions so the migration of all projects should be relatively straight-forward.