İçeriğe geç

mühendislik

CI'yi arm64'e geçirmek: gerçekte bozulan şey

200 depoyu arm64 runners'a taşıdık. İşte neyin başarısız olduğunun ve nedenlerinin tam listesi.

{yazar} · {rol} · {tarih} · {dakika} {dakika Etiketi}

arm64 dakika başına daha ucuzdur ve genellikle daha hızlıdır. Geçiş genellikle basittir. Öyle olmadığında, sebep neredeyse her zaman aynı kategorideki şeydir.

Sıklık sırasına göre ne kırıldı?

  1. Aarch64 ön derlemesi olmayan, yavaş kaynak derlemesine geri dönen geçişli yerel Düğüm modülleri
  2. Manylinux_aarch64 tekerleği olmayan Python paketleri, kaynaktan derleniyor
  3. Yalnızca AMD64 etiketine sabitlenmiş Docker temel görselleri
  4. Arm64 varyantı olmayan servis konteynerleri, sessizce emülasyona geri dönüyor
  5. Runner.arch olmadan önbellek anahtarları, x64 yapıtlarını arm64'e geri yükleme ve bağlayıcı hatalar oluşturma

Ne kırılmadı

Neredeyse tamamı saf uygulama kodu. Go, Rust, Java, Ruby, PHP ve modern Node'un tümü temiz bir şekilde kesişiyor. Başarısızlıklar dillerin kendisinde değil, yerel bağımlılık kenarlarında yoğunlaşmıştı.

Bir sonraki build'iniz yarı fiyata iki kat hızlı olabilir

Ücretsiz başlayın. Ayrılmak da aynı tek satır ve o diff'i de yayımlıyoruz.