So, another idea. Is there a simple way (let’s say a script with docker compose) I could easily run everything or almost everything locally on my computer? I tried to find such thing like half a year ago, but failed. There are some docker files scattered through the source code, but I failed to find out a way to use them.
@vorner Yes, all (linux) builders run in Docker, and should be trivially executable with ./src/ci/docker/run.sh <docker container name> where the name comes from one of the directories in ./src/ci/docker/ directory.
Rust is starved for server resources to run CI on.
I see. Is this generally known? Maybe some company could be willing to donate some power… (I don’t think I’ll be able to persuade mine just yet, the Rust adoption is somewhat slow, but maybe one day).
We don’t yet have a good way to outsource CI resources to build machines provided by companies, but it is something that we want to do (either through a payment system and/or by providing physical resources). As of now, it’s not a huge priority of the Rust project, to my knowledge.
Is there a way to just have bors rerun only tests that failed the last time? That would be a potentially much faster way to iterate without wasting resources. Then, bors can run the whole thing once more before merging.
We do not currently support any way to run a subset of the CI (either images or tests). Such a project would be interesting, but ultimately most of our builds complete close to simultaneously, and the longer running ones fail more often, so the gain from this would be fairly low.
I don’t think we’d be interested today in making only some tests run based on which tests failed the last time, as ultimately, such a state means almost nothing: Rust’s tests are diverse, and fixing a test may break another test. It is potentially more useful to cache the artifacts of a given CI run so we can reuse at least parts of the bootstrap compiler, but it is unknown whether this would be of benefit (since then you pay for network time copying bytes).