Derleme Etkinlik Protokolü

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

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:

  1. Kök etkinlik her zaman bir BuildStarted olur unutmayın. Diğer tüm etkinlikler bunun alt öğeleridir.
  2. BuildStarted etkinliğinin hemen alt öğeleri komutuna ekleyin.
  3. Oluşturulan ve test edilen dosyalar gibi komut tarafından oluşturulan verileri içeren etkinlikler BuildFinished önce gösterilir unutmayın.
  4. 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:

  1. 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ın parseDelimitedFrom(InputStream) yöntemidir.

  2. 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_best_effort
  • --[no]bes_lifecycle_events
  • --bes_results_url
  • --bes_timeout
  • --project_id

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.