On Sat, Apr 26, 2025 at 10:12:51PM +0800, shejialuo wrote: > On Fri, Apr 25, 2025 at 08:20:25AM -0700, Junio C Hamano wrote: > > shejialuo <shejialuo@xxxxxxxxx> writes: > > > > > I want to know whether we should use the "cache" mechanism of CI for > > > these third-party softwares? I somehow feel strange that we would > > > download these softwares in every CI. > > > > It also feels wasteful to me that the CI jobs need to do a full > > install-dependencies.sh over and over, instead of running it once > > (per platform type), dumping the state, and let all the other jobs > > on the same platform type to restart from that state ;-). > > That's right. I'll investigate how to implement this. It would be nice if we could adapt the Linux-based jobs to use pre-seeded Docker images. The idea would be that those images are only built once and then used by later steps of the pipeline. In theory, this could even be extended so that we only rebuild images as-needed when something changes so that the images are reused for multiple pipelines. Another big benefit would be that this results in a fully-reproducible environment for developers that can in theory be uploaded to a container registry. So if you see that something fails only with a specific job image, you can now trivially fetch that image and try to reproduce the issue in the exact same image as CI used. Patrick