pydoit / doit

CLI task management & automation tool
http://pydoit.org
MIT License
1.87k stars 175 forks source link

Add GitHub Actions? #378

Closed bollwyvl closed 3 years ago

bollwyvl commented 3 years ago

Travis CI will become all but unusable within a month or two, and appveyor is... appveyor.

I'd be happy to do a PR (and test drive against my own master) to demonstrate GitHub Actions as a path forward.

The GitHub Actions YAML is not a huge change from either of the existing platforms, integrate nicely with the PR process, and actually remove files from the top-level directory, which is always nice. There are some UX/DX issues I don't like, but generally it's fewer clicks to get to what has broken than with third-party providers. At present, for open source projects, the minute allotment is unlimited and 20 machines can be running at once.

Unlike travis/appveyor, there's built-in artifact archiving, which is nice for things like coverage reports, built docs site previews, etc.

Alternatives

bollwyvl commented 3 years ago

Here's a run that's a decent working demonstration: https://github.com/bollwyvl/doit/pull/1

The workflow files are currently very "nuts and bolts", and could be expanded to have more human-friendly names, but they pretty much do what they say on the tin. The cache stuff is a bit opaque, which is specific to github actions, but helps a lot for packages for which there aren't published wheels. The very longest excursion (macos/3.9) takes 5 minutes on a cold cache, but the caching drives this down to under a minute... it's kind of an inexact science, of course.

Aside from adding the two yaml workflow files:

bollwyvl commented 3 years ago

Seems the pace of travis decline has increased... I'll open the PR for visibility!