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.