Oluşturma Etkinliği Protokol (BEP), üçüncü taraf programların Bazel çağrısı hakkında bilgi edinmesini sağlar. Örneğin, IDE (Entegre Geliştirme Ortamı) için bilgi toplamak üzere BEP'yi eklentisi veya derleme sonuçlarını gösteren bir kontrol paneli.
Protokol, protokol arabelleğe alma anlamları vardır. Derleme ve test etmeyle ilgili bilgiler içerir gibi pek çok şeyi kontrol edebiliyorsunuz. BEP programlı olarak tüketilmesi amaçlanır ve Bazel'in komut satırı çıktısının eski bir tarihe gelmesi
Derleme Etkinliği Protokolü, derleme hakkındaki bilgileri etkinlik olarak temsil eder. CEVAP derleme etkinliği, derleme etkinliği tanımlayıcısından ve alt etkinlik tanımlayıcıları ve yük olduğunu unutmayın.
Etkinlik Tanımlayıcısı Oluşturma: Derleme etkinliğinin türüne bağlı olarak, opak dize ya da yapılandırılmış ve derleme etkinliği hakkında daha fazla bilgi verir. Derleme etkinliği tanımlayıcısı, bahsedeceğim.
Çocuklar: Derleme etkinliği, aşağıdakileri içeren diğer derleme etkinliklerini duyurabilir: kendi derleme etkinliği tanımlayıcılarını (alt öğeleri) alanına giriş yapın. Örneğin,
PatternExpanded
derleme etkinliği genişlettiği hedefleri duyurur çocuk olarak düşünmek. Protokol, ilk etkinlik dışındaki tüm etkinliklerin eski bir etkinlik tarafından duyurulur.Yük: Yük, derleme etkinliği hakkında yapılandırılmış bilgileri içerir. özel bir protokol arabellek mesajı olarak kodlanır. Lütfen yük beklenen türde olmayabilir ancak
Aborted
mesajı olabilir işlemi geri alabilir.
Etkinlik grafiği oluştur
Tüm derleme etkinlikleri, üst ve alt öğeleri üzerinden yönlendirilmiş bir döngüsel grafik oluşturur ilişkilidir. İlk derleme etkinliği hariç her derleme etkinliğinin bir veya daha fazla daha fazla ebeveyn etkinliği oluşturabilirsiniz. Bir alt etkinliğin tüm üst etkinliklerinin öncesinde yayınlanmış olmalıdır. Derleme tamamlandığında (başarılı veya başarısız) duyurulan tüm etkinlikler yayınlanacaktır. Bazel çökmesi veya başarısız olması durumunda ağ aktarımı nedeniyle bazı duyurulan derleme etkinlikleri hiçbir zaman yayınlanmayabilir.
Etkinlik grafiğinin yapısı, bir komutun yaşam döngüsünü yansıtır. Her BEP grafik aşağıdaki karakteristik şekle sahiptir:
- Kök etkinlik her zaman bir
BuildStarted
olur unutmayın. Diğer tüm etkinlikler bunun alt öğeleridir. - BuildStarted etkinliğinin hemen alt öğeleri komutuna ekleyin.
- Oluşturulan ve test edilen dosyalar gibi komut tarafından oluşturulan verileri içeren etkinlikler
BuildFinished
önce gösterilir unutmayın. BuildFinished
etkinliği takip edilebilir derleme hakkında özet bilgiler içeren etkinliklere göre (örneğin, veya profil çıkarma).
Derleme Etkinliği Protokolü Kullanma
İkili biçimde tüket
BEP'yi ikili biçimde kullanmak için:
Bazel'ın
--build_event_binary_file=/path/to/file
. seçenek. Dosya, serileştirilmiş protokol arabellek mesajları (her iletinin uzunluk sınırı vardır). Her mesaja önek eklenir ve mesaj uzunluğu değişken uzunlukta bir tam sayı olarak kodlanır. Bu biçim, protokol arabellek kitaplığınınparseDelimitedFrom(InputStream)
yöntemidir.Ardından, Google Etiket Yöneticisi'nden alakalı bilgileri serileştirilmiş protokol arabellek mesajı.
Metin veya JSON biçimlerinde kullanma
Aşağıdaki Bazel komut satırı işaretleri, BEP'nin çıktısını verir: metin ve JSON gibi kullanıcılar tarafından okunabilen biçimler:
--build_event_text_file
--build_event_json_file
Derleme Etkinliği Hizmeti
Oluşturma Etkinliği
Hizmet
Protokol, derleme etkinliklerini yayınlamak için kullanılan genel bir gRPC hizmetidir. Build Etkinliği
Hizmet protokolü BEP'den bağımsızdır ve BEP etkinliklerini opak bayt olarak değerlendirir.
Bazel, bir dizi gRPC istemci uygulamasını içeren Derleme Etkinliği Hizmeti protokolünün
Build Event Protocol etkinliklerini yayınlar. Kullanıcı,
etkinlikleri --bes_backend=HOST:PORT
işaretini kullanmaya başlayacak. Arka ucunuz gRPC kullanıyorsa
adresin önüne uygun şemayı eklemeniz gerekir: şifrelenmemiş metin için grpc://
TLS'nin etkin olduğu gRPC için gRPC ve grpcs://
.
Derleme Etkinlik Hizmeti işaretleri
Bazel'in, Derleme Etkinliği Hizmeti protokolüyle ilgili olarak aşağıdakiler gibi çeşitli işaretleri vardır:
--bes_backend
--[no]bes_lifecycle_events
--bes_results_url
--bes_timeout
--bes_instance_name
Bu işaretlerin her birinin açıklaması için bkz. Komut Satırı Referansı.
Kimlik doğrulama ve güvenlik
Bazel'in Derleme Etkinliği Hizmeti uygulaması, kimlik doğrulama ve TLS'yi de destekler. Bu ayarlar, aşağıdaki işaretler kullanılarak kontrol edilebilir. Lütfen bu özelliklerin bayraklar Bazel'in Uzaktan Yürütme işlemi için de kullanılır. Bu, Build'in Etkinlik Hizmeti ve Uzaktan Yürütme Uç Noktalarının aynı kimlik doğrulama ve TLS altyapısı.
--[no]google_default_credentials
--google_credentials
--google_auth_scopes
--tls_certificate
--[no]tls_enabled
Bu işaretlerin her birinin açıklaması için bkz. Komut Satırı Referansı.
Derleme etkinlik hizmeti ve uzaktan önbelleğe alma
BEP genellikle günlük dosyalarına (test.log, test.xml, vb. ) kaldırın. Uzak bir BES sunucusu genellikle bu dosyalara farklı makinelerde oldukları için erişemez. Başarılı bir şekilde geçici bir çözüm olarak Bazel'ı uzaktan kumanda ile önbelleğe alma. Bazel, tüm çıkış dosyalarını (dosyalar dahil) uzak önbelleğe yükler başvurulmasını sağlar ve BES sunucusu daha sonra referans verilen dosyaları getirebilir kaldıracaktır.
Daha fazla bilgi için GitHub sorun 3689 inceleyebilirsiniz.