Komut dosyalarından Bazel çağrılıyor

. Sorun bildirin Kaynağı göster Gece · 7,3 · 7,2 · 7,1 · 7,0 · 6,5

Derleme, test çalıştırma veya sorgu yürütmek için komut dosyalarından Bazel'ı çağırabilirsiniz. bağımlılık grafiğini öğrenebilirsiniz. Bazel, etkili komut dosyası oluşturmayı mümkün kılacak şekilde tasarlanmıştır ancak Bu bölümde, komut dosyalarınızı daha verimli hale getirmek için aklınızda bulundurmanız gereken güçlüdür.

Çıkış tabanını seçme

--output_base seçeneği, Bazel işleminin ve dahili olarak kullanılan çeşitli çalışma dosyalarının yanı sıra bir derlemenin Bunlardan biri, alfa testinin eş zamanlı mutasyonuna karşı koruma sağlayan bir kilittir. çıktı tabanını birden çok Bazel işlemine tabi tutabilir.

Komut dosyanız için doğru çıkış temel dizinini seçmek faktörleri olur. Derleme çıkışlarını belirli bir konuma koymanız gerekirse bu, kullanmanız gereken çıkış tabanını belirtin. "Salt okunur" veriyorsanız şunu ara: Bazel (ör. bazel query) kullandığınızdan, kilitleme faktörleri daha önemli olacaktır. İçinde özellikle de komut dosyanızın birden fazla örneğini aynı anda çalıştırmanız gerekiyorsa her biri için farklı (veya rastgele) bir çıkış tabanı belirlemeniz gerekir.

Varsayılan çıkış taban değerini kullanırsanız aynı kullanıcının etkileşimli Bazel komutları tarafından kullanılan kilidin bir işaretidir. Kullanıcı, komut dosyanızın derlemeler gibi uzun süre çalışan komutlar için komutlarını çalıştırmanız gerekir.

Sunucu modu hakkında notlar

Bazel varsayılan olarak uzun süreli bir sunucu işlemi optimize edebilirsiniz. Komut dosyasında Bazel'i çalıştırırken shutdown yöntemini çağırmayı unutmayın işlemi tamamladığınızda, --max_idle_secs=5 veya boşta kalan sunucular hemen kendilerini kapatır.

Hangi çıkış kodunu alacağım?

Bazel, dikkate almanız gerekir. Bazel'in yürütülmesi aşağıdaki çıkış kodlarıyla sonuçlanabilir:

Tüm komutlarda ortak olan Çıkış Kodları:

  • 0 - Başarılı
  • 2 - Komut Satırı Sorunu, Kötü veya Geçersiz bayraklar ya da komut kombinasyonu veya Hatalı Ortam Değişkenleri. Komut satırınız değiştirilmelidir.
  • 8 - Derleme kesintiye uğradı ancak düzenli bir şekilde kapatma işlemiyle sonlandırıldı.
  • 9 - Sunucu kilidi korundu ve --noblock_for_lock geçildi.
  • 32 - Bu makinede Harici Ortam Hatası yok.

  • 33: Bellek kalmadığı için Bazel kilitlendi. Komut satırınızı değiştirmeniz gerekiyor.

  • 34 - Dahili Google kullanımı için ayrılmıştır.

  • 35 - Dahili Google kullanımı için ayrılmıştır.

  • 36 - Yerel çevre sorunu. Kalıcı olabilir.

  • 37 - İşlenmemiş İstisna / Dahili Bazel Hatası.

  • 38 - Dahili Google kullanımı için ayrılmıştır.

  • 39: Bazel'in gerektirdiği Blob'lar, Uzak Önbellek'ten çıkarılır.

  • 41-44 - Dahili Google kullanımı için ayrılmıştır.

  • 45 - Sonuçlar Derleme Etkinliği Hizmeti'ne yayınlanırken hata oluştu.

  • 47 - Dahili Google kullanımı için ayrılmıştır.

bazel build, bazel test komutlarının dönüş kodları:

  • 1 - Derleme başarısız oldu.
  • 3 - Derleme başarılı ancak bazı testler başarısız oldu veya zaman aşımına uğradı.
  • 4 - Derleme başarılı ancak teste rağmen hiçbir test bulunamadı istendi.

bazel run için:

  • 1 - Derleme başarısız oldu.
  • Derleme başarılı olursa ancak yürütülen alt işlem sıfır dışında bir çıkış döndürürse aynı zamanda komutun çıkış kodu da olacaktır.

bazel query için:

  • 3 - Kısmen başarılı, ancak sorgunun giriş BUILD dosyası ayarlandı ve bu nedenle işlemin sonuçları %100 değil yardımcı olur. Bunun nedeni büyük olasılıkla komut satırındaki bir --keep_going seçeneğidir.
  • 7 - Komut hatası.

Gelecekteki Bazel sürümleri, genel hatanın yerini alarak ilave çıkış kodları ekleyebilir belirli bir anlamı olan sıfır dışında farklı bir değerle 1 çıkış kodunu kullanabilirsiniz. Ancak, sıfır olmayan tüm çıkış değerleri her zaman hata teşkil eder.

.bazelrc dosyasını okuma

Bazel varsayılan olarak temel dosyadaki .bazelrc dosyasını okur. Workspace dizininden veya kullanıcının ana dizininden emin olabilir. Geçerli olup olmadığı tercihe bağlı olarak kullanabilirsiniz. mükemmel olması gerekiyorsa hermetik (örneğin, sürüm derlemeleri yaparken) .bazelrc dosyasını yüklemek için --bazelrc=/dev/null seçeneğini kullanın. Tüm performanslarını kullanıcının tercih ettiği ayarları kullanan bir derleme içeriyorsa varsayılan davranış daha iyi olur.

Komut günlüğü

Bazel çıkışı, aşağıdakileri içeren bir komut günlük dosyasında da mevcuttur: şu komutu kullanın:

bazel info command_log

Komut günlük dosyası, komutunu kullanmanız gerekir. bazel info çalıştırıldığında, bu dosyanın tüm içeriklerine uygulanır. Çünkü dosya, en son Bazel komutu haline gelir. Ancak komut günlük dosyasının konumu, --output_base veya --output_user_root seçeneklerinin ayarını değiştirin.

Çıkış ayrıştırılıyor

Bazel çıktısının birçok amaç doğrultusunda ayrıştırılması oldukça kolaydır. Paydaş analizine hazırlanırken komut dosyanız, ilerlemeyi engelleyen --noshow_progress ve --show_result n adlı bir kullanıcı tarafından “güncellenmiş” değil iletiler yazdırılır; bu mesajlar şu şekilde ayrıştırılabilir: hangi hedeflerin başarıyla oluşturulduğunu ve çıktının konumunu dosyalarını da ekler. Anahtar kelime testlerini bir arada kullanmanız gerekiyorsa n ele alacağız.

Profil çıkarma ile performans sorunlarını giderme

Performans Profili Oluşturma bölümüne bakın.