Ga
Ga CI op GitHub Actions
Go-builds zijn lokaal snel en op onverklaarbare wijze langzaam in CI.
8m → 2m
Testsuite
3× sneller
Rasdetector
97%
Cachehitpercentage
Go-builds zijn lokaal snel en op onverklaarbare wijze langzaam in CI.
Waarom het gebeurt
De Go build-cache bevindt zich in ~/.cache/go-build en is leeg bij elke nieuwe runner, dus elk pakket wordt vanaf nul gecompileerd.
Wat te veranderen
- Cache ~/.cache/go-build en ~/go/pkg/mod ingetoetst op go.sum
- Voer go build ./... uit voordat u gaat testen, zodat de build-cache één keer wordt gevuld
- Gebruik bewust -count=1 - het schakelt de cache van de testresultaten uit, dus gebruik het alleen als je het meent
- Verdeel grote testsuites met -run en een matrix in plaats van een grotere machine te kopen
Ga op runnerhut
yaml
jobs: test: runs-on: runnerhut-8vcpu-ubuntu-2404 steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: { go-version: '1.24', cache: true } - run: go build ./... - run: go test -race ./...De enige runnerhut-specifieke regel is `runs-on: runnerhut-8vcpu-ubuntu-2404`. Al het andere is standaard GitHub Actions — dezelfde acties, dezelfde geheimen en hetzelfde machtigingsmodel dat u vandaag de dag gebruikt.
Je volgende build kan twee keer zo snel zijn, voor de halve prijs
Begin gratis. Weggaan is dezelfde ene regel, en die diff publiceren we ook.
Gerelateerd
RustCargo herbouwt de volledige afhankelijkheidsgrafiek bij vrijwel elke CI-run.Pythonpip-installatie duurt minuten en pytest draait op één kern.Knooppunt.jsnpm ci schrijft bij elke run tienduizenden kleine bestanden.JavaBij elke build worden dezelfde Maven- of Gradle-afhankelijkheden opnieuw gedownload.