The previous thread on this topic got a ton of interest from a number of parties (which is great) and so I wanted to take the time to outline how we intend to go about our investigations.
First, let’s set the scene.
The rust-lang/rust repository CI is a constant concern for the Infra team - we’ve reached a point where you hit the inevitable edge cases of interacting with many different components of infrastructure (networks, system toolchains, interacting and conflicting build systems, caching) for extended periods of time. In the process of working on these different components we evaluate different aspects of our CI process, and so it makes sense to evaluate overall CI solutions as well.
To be clear, I and other individuals on the team are huge fans of Travis as a CI service (I personally fully intend to continue using it myself), and remaining with Travis is one of the top options on the table. We also fully expect problems with whatever we end doing - I and other members of the team have worked on production infrastructure and it’s just a fact of life.
- We are carefully scoping this to the rust-lang/rust repository. Other repositories are free (as always) to use whatever they like.
- Given the need for investigation and evaluation, any hypothetical CI migration would not happen before May (likely longer!).
To roughly outline the first steps of our investigation process:
- We have a big list of suggestions from the previous thread that we’re going to whittle down based on the original criteria laid out.
- We will review the integrations we have with our current CI and investigate what we would need to reach parity if we were to want to move, and review the possible providers with these integrations in mind.
- We will contact providers to get more information about their services where we have questions, particularly to find out about projects with similar characteristics to rust-lang/rust’s.
- We will experiment with these new services ourselves to get a feel for how they might compare against what we have today.
We’ve sketched out additional steps after this, but these four will keep us plenty busy for now and it gets a bit more fluid after that.
We’ll endeavour to keep this thread updated as we move through the list!