Ana içeriğe geç
Programlama

CloudX geliştirdiği açık kaynak Go aracıyla test sürelerini yüzde 69 kısalttı

Öne çıkanlar

  • Resmi actions/setup-go aracının eksik anahtarları paralel işlerde yarış durumuna yol açıyordu.
  • Yeni araç her CI koşusuna ait run ID değerini önbelleğe ekleyerek güncelliği sağladı.
  • CloudX monoreposundaki ortanca test süresi 180 saniyeden 41 saniyeye düştü.
  • Eski önbellek yapısı nedeniyle yapılan Go testlerinin yüzde 86'sının gereksiz olduğu belirlendi.

CloudX mühendisleri, GitHub Actions üzerinde paralel çalışan Go sürekli entegrasyon (CI) iş akışlarını hızlandırmak amacıyla cloudx-io/setup-go adlı açık kaynaklı yeni bir araç yayımladı. Resmi actions/setup-go adımının yerini alabilen bu araç, şirketin test çalıştırma sürelerini yüzde 69 oranında azalttı. GitHub'ın resmi aksiyonundaki önbellek anahtarının yetersiz kaldığını belirten ekip, paralel test ve linter işlerinin birbirinin önbellek verisini ezdiğini tespit etti.

Resmi yapılandırma önbellek anahtarını yalnızca go.mod dosyası, Go sürümü veya işletim sistemi değiştiğinde güncelliyor. Bu durum, kaynak kod değiştiğinde bile eski derleme ve test sonuçlarının yüklenmesine yol açarak sistemin gereksiz yere baştan test çalıştırmasına sebep oluyor. Geliştirilen yeni araç ise her koşuya özel Actions run ID ve iş kimliğini önbellek anahtarına ekleyerek linter ve test süreçlerini birbirinden ayırdı ve her çalıştırmada güncel önbellek yazılmasını sağladı.

Şirket monoreposundaki 4 bin gerçek commit üzerinden yapılan simülasyonlar, varsayılan yapılandırmada yürütülen test işlerinin yüzde 86'sının gereksiz olduğunu ortaya koydu. Ortanca test süresi 180 saniyeden 41 saniyeye geriledi. Yeni yöntemin getirdiği en belirgin iki dezavantajın ise önbellek dosyalarının hızla büyümesi ve ek depolama alanı ihtiyacı olduğu bildirildi; ekip bu durumu otomatik önbellek budama mekanizmasıyla dengeledi.

Kaynak

Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.