ethereum / go-ethereum

Go implementation of the Ethereum protocol
https://geth.ethereum.org
GNU Lesser General Public License v3.0
46.7k stars 19.68k forks source link

Offline cache for github worker #29925

Open karalabe opened 1 month ago

karalabe commented 1 month ago

We have a github action and a dedicated worker for it to run tests fast... but the thing caches Go build files into GitHub (uploading and downlaoding 3.5GB), so it takes 8 minutes to start the tester, 20 secs to test and 8 minutes to stop the tester. Crazy. We need to make the tester cache locally, since our dedicated builder is a unique snowflake.

Also should enable race detector runs on it.

sisco0 commented 2 weeks ago

Is there any specific Github Actions Workflow YAML file that you would like to consider? I could only find go.yml. I would suggest modifying the Workflow YAML file. Default paths of interest are ~/.cache/go-build and $GOPATH/pkg/mod. Might be more paths are of interest.

For developers who are not maintainers of this repository, I would suggest performing a personal fork and test over it.

I attach my timing results in the following screenshot for a Fork of the current project, where go.yml is executed using my own machine. Kindly observe the first iteration to be approximately 4 minutes duration. However, for iterations after it, times seem to be optimized. image