Naar inhoud springen

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

  1. Transitieve native Node-modules zonder aarch64-prebuild, die terugvallen op een langzame broncompilatie
  2. Python-pakketten zonder Manylinux_aarch64-wiel, gecompileerd vanuit de broncode
  3. Docker-basisimages vastgemaakt aan een amd64-only-tag
  4. Servicecontainers zonder arm64-variant, stilletjes terugvallend op emulatie
  5. 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.