Naar inhoud springen

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

  1. Cache ~/.cache/go-build en ~/go/pkg/mod ingetoetst op go.sum
  2. Voer go build ./... uit voordat u gaat testen, zodat de build-cache één keer wordt gevuld
  3. Gebruik bewust -count=1 - het schakelt de cache van de testresultaten uit, dus gebruik het alleen als je het meent
  4. 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 ./...
Een werkend uitgangspunt

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.