techniek
CI migreren naar arm64: wat er feitelijk kapot gaat
We hebben 200 opslagplaatsen verplaatst naar arm64-runners. Hier is de volledige lijst van wat er is mislukt en waarom.
{auteur} · {rol} · {datum} · {minuten} min leestijd
arm64 is goedkoper per minuut en vaak sneller. De migratie is doorgaans eenvoudig. Als dat niet het geval is, ligt de oorzaak vrijwel altijd in dezelfde categorie.
Wat is er kapot gegaan, in volgorde van frequentie
- Transitieve native Node-modules zonder aarch64-prebuild, die terugvallen op een langzame broncompilatie
- Python-pakketten zonder Manylinux_aarch64-wiel, gecompileerd vanuit de broncode
- Docker-basisimages vastgemaakt aan een amd64-only-tag
- Servicecontainers zonder arm64-variant, stilletjes terugvallend op emulatie
- Cachesleutels zonder runner.arch, herstel x64-artefacten op arm64 en produceer linkerfouten
Wat niet kapot ging
Bijna allemaal pure applicatiecode. Go, Rust, Java, Ruby, PHP en moderne Node kruisen allemaal netjes elkaar. De mislukkingen waren geconcentreerd in de afhankelijkheidsgrenzen van de moedertaal, en niet in de talen zelf.
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
CI als je teamgenoten agenten zijnAI-codeermiddelen pushen veel vaker dan mensen. Hier leest u hoe dat het pijplijnontwerp en de kostenbeheersing verandert.Waarom we instructies voor vertrek publicerenElke migratiepagina op deze site bevat de diff om terug van ons te migreren. Hier is de redenering.Wat we hebben geleerd bij het runnen van een miljoen CI-banenWachtrijtijd, cachegedrag, juiste grootte en de faalmodi die alleen op schaal voorkomen.Stop met het opnieuw proberen van slechte testsAutomatische nieuwe pogingen veranderen een echte bug in een periodieke bug en trainen uw team om elke fout te wantrouwen.