inginerie
Migrarea CI la arm64: ce se rupe de fapt
Am mutat 200 de depozite pe arm64 runners. Iată lista completă a ce a eșuat și de ce.
{autor} · {rol} · {data} · {minute} {minuteLabel}
arm64 este mai ieftin pe minut și adesea mai rapid. Migrarea este de obicei simplă. Când nu este, cauza este aproape întotdeauna aceeași categorie de lucruri.
Ce s-a stricat, în ordinea frecvenței
- Module tranzitive native Node fără prebuild aarch64, care se retrag la o compilare sursă lentă
- Pachete Python fără roată manylinux_aarch64, compilate din sursă
- Docker imagini de bază fixate pe o etichetă numai pentru amd64
- Containere de service fără variantă arm64, revenind în tăcere la emulare
- Memorați cheile în memoria cache fără runner.arch, restaurând artefactele x64 pe arm64 și producând erori de linker
Ce nu s-a rupt
Aproape tot codul de aplicație pur. Go, Rust, Java, Ruby, PHP și modern Node toate se încrucișează curat. Eșecurile au fost concentrate în limitele dependenței native, nu în limbile în sine.
Următorul tău build poate fi de două ori mai rapid, la jumătate de preț
Începe gratuit. Plecarea înseamnă aceeași linie, iar acel diff îl publicăm și noi.
Similar
CI atunci când colegii tăi sunt agențiAgenții de codare AI forțează mult mai des decât oamenii. Iată cum modifică proiectarea conductei și controlul costurilor.De ce publicăm instrucțiuni pentru plecareFiecare pagină de migrare de pe acest site include diferența de a migra înapoi. Iată raționamentul.Ce am învățat gestionând un milion de locuri de muncă CITimpul în coadă, comportamentul în cache, dimensionarea corectă și modurile de eșec care apar doar la scară.Nu mai reîncercați testele scazuteReîncercările automate transformă o eroare reală într-una intermitentă și antrenează-ți echipa să nu aibă încredere în fiecare eșec.