Skip to content

Changing CI provider #4091

Closed
Closed
@domdomegg

Description

@domdomegg

Background

Travis CI has served us well over the years - I used to use it a lot in my own personal projects. However, travis-ci.org (what we use currently) is being shut down on December 31st 2020. We have to migrate CI provider by then.

We can move to travis-ci.com however they are also altering the rules for open source projects and limiting usage to 1000 build minutes/month. From a quick skim of PRs and master I think our current usage is around 1900 build minutes/month.

Having explored our options, I think GitHub Actions is likely the best fit:

  • is much faster (especially at times of load as Travis for open source has a limited fleet of build agents. I did a test tonight timing difference between commit and results: 7 minutes with GitHub Actions, 58 minutes with Travis)
  • integrates better with GitHub, not having to have a seperate account and being able to bring checks right into a PR (as opposed to just a status with a link to Travis)
  • makes running CI on forks much easier, so it's easier for contributors to use the CI (Travis requires signing up for an account and doing an extra authentication and authorization flow for forks)
  • is free for open source with unlimited build minutes
  • supports secrets (same as Travis, we can continue publishing alpha play store releases if we choose to fully swap)
  • is seeing massively increased uptake because of the above and therefore new contributors are more likely to be familiar with it

I think it's the best option - the other's I've found are:

  • travis-ci.com: as mentioned previously, free-tier is limited to 1000 minutes/month which is not enough for us
  • Azure Pipelines: free-tier limited to 1800 minutes/month. Very similar to GitHub Actions but less well integrated, more to maintain plus Azure pricing could easily change
  • Jenkins: hosted option, could maybe get WMF to do this for us but likely expensive and a nightmare to set up and maintain
  • Circle CI and BuildKite: Less integrated with GitHub and not such a well-supported community around it. Also would be worried they may, like Travis, reduce open-source support (less worried about GitHub doing that now they're Microsoft-backed).

Proposal

I propose trialing GitHub Actions for linting and testing alongside Travis to see how it compares for us (i.e. both Travis and GitHub Actions would run).

If we like it, we can add the alpha publishing stuff and remove the Travis build. If we don't like it, we can scrap it and find a better CI provider :)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions