Her BEP etkinlik türünün kendi anlamları vardır ve build_event_stream.proto. Her etkinlik türü aşağıdaki sözlükte açıklanmıştır.
İptal edildi
Diğer etkinliklerin aksine Aborted
için karşılık gelen bir kimlik türü yoktur. Bunun nedeni
Aborted
etkinliği, diğer türdeki etkinliklerin yerine geçer. Bu etkinlik,
derleme erken sonlandırıldı ve altında göründüğü etkinlik kimliği oluşturulmadı
gerekir. Aborted
, açıklama için bir numaralandırma ve kullanıcıların kullanabileceği bir açıklama içeriyor
tamamlamadığını fark ettim.
Örneğin, kullanıcı Bazel'ı kesintiye uğrattığında bir derleme bir hedefi değerlendiriyorsa BEP aşağıdakine benzer bir etkinlik içerir:
{
"id": {
"targetCompleted": {
"label": "//:foo",
"configuration": {
"id": "544e39a7f0abdb3efdd29d675a48bc6a"
}
}
},
"aborted": {
"reason": "USER_INTERRUPTED"
}
}
ActionExecuted
Belirli bir yürütmenin yürütülmesi hakkında ayrıntılı bilgi
Derlemedeki işlem. Bu etkinlik varsayılan olarak
temel nedenin belirlenmesini desteklemek, yalnızca başarısız işlemler için BEP'ye dahil edilmiştir
pek çok yolu vardır. Kullanıcılar --build_event_publish_all_actions
işaretini ayarlayabilir
ekleyin.ActionExecuted
BuildFinished
Komut tamamlandıktan sonra tek bir BuildFinished
etkinliği gönderilir ve
komutun çıkış kodunu içerir. Bu etkinlik,
(başarı/başarısızlık bilgileri)
BuildMetadata
--build_metadata
işaretinin ayrıştırılmış içeriğini içerir. Bu etkinlik mevcut
su tesisatı hizmetleri sağlayarak Bazel'in diğer araçlarla entegrasyonunu desteklemek için (örneğin,
tanımlayıcılar) için kullanılır.
BuildMetrics
Her komutun sonunda tek bir BuildMetrics
etkinliği gönderilir ve bu etkinlik
sırasında derleme aracının davranışını ölçmek için yararlı sayaçlar/göstergeler
komutuna ekleyin. Bu metrikler, işin gerçekten yapıldığını gösterir ve önbelleğe alınmış sayılmaz.
işleri de kapsar.
Java çöpü yoksa memory_metrics
öğesinin doldurulmayabileceğini unutmayın
veri toplama işlemi yapılır. Kullanıcılar,
Çöpü zorlayan --memory_profile=/dev/null
seçeneği
toplayıcının memory_metrics
alanını doldurmak için komutun sonunda çalıştırılması gerekir.
{
"id": {
"buildMetrics": {}
},
"buildMetrics": {
"actionSummary": {
"actionsExecuted": "1"
},
"memoryMetrics": {},
"targetMetrics": {
"targetsLoaded": "9",
"targetsConfigured": "19"
},
"packageMetrics": {
"packagesLoaded": "5"
},
"timingMetrics": {
"cpuTimeInMs": "1590",
"wallTimeInMs": "359"
}
}
}
BuildStarted
BEP akışındaki ilk etkinlik olan BuildStarted
,
komutu vermelidir.
BuildToolLogs
Komutun sonunda, URI'leri içeren tek bir BuildToolLogs
etkinliği gönderilir
anlama veya hata ayıklamaya yardımcı olabilecek, derleme aracı tarafından oluşturulan dosyaların sayısı
geliştirmenizi sağlar. Bazı bilgiler satır içinde eklenebilir.
{
"id": {
"buildToolLogs": {}
},
"lastMessage": true,
"buildToolLogs": {
"log": [
{
"name": "elapsed time",
"contents": "MC4xMjEwMDA="
},
{
"name": "process stats",
"contents": "MSBwcm9jZXNzOiAxIGludGVybmFsLg=="
},
{
"name": "command.profile.gz",
"uri": "file:///tmp/.cache/bazel/_bazel_foo/cde87985ad0bfef34eacae575224b8d1/command.profile.gz"
}
]
}
}
CommandLine
BEP, aşağıdaki tüm etkinliklerin temsillerini içeren birden çok CommandLine
etkinliği içerir:
komut satırı bağımsız değişkenleri (seçenekler ve yorumlanmamış bağımsız değişkenler dahil).
Her CommandLine
etkinliğinin StructuredCommandLineId
içinde şu özelliklere sahip bir etiketi vardır:
hangi gösterimi aktardığını gösterir; bu üç olay BEP'de yer alıyor:
"original"
: Komut satırı, Bazel'in Bazel'den aldığı şekilde yeniden oluşturuldu istemcisini kullanarak, .rc dosyalarından gelen başlangıç seçenekleri olmadan çalışır."canonical"
: .rc dosyaları içeren etkili komut satırı genişletildi ve çağrı politikası uygulandı."tool"
:--experimental_tool_command_line
seçeneğinden doldurulur. Bu BEP aracılığıyla Bazel'i sarmalayan bir aracın komut satırını aktarmak için yararlıdır. Bu, base64 kodlu birCommandLine
ikili protokol arabellek mesajı olabilir veya ayrıştırılan ancak yorumlanmayan bir dize (örneğin, aracın seçenekleri Bazel'inkinden farklı olabilir).
Yapılandırma
Her configuration
için bir Configuration
etkinliği gönderilir
kullanılan veri türlerini ifade eder. En az bir yapılandırma etkinliği
daima hazır bulunun. id
, TargetConfigured
ve
TargetComplete
etkinlik kimliği vardır ve bu etkinlikleri
derlemelerini inceleyin.
{
"id": {
"configuration": {
"id": "a5d130b0966b4a9ca2d32725aa5baf40e215bcfc4d5cdcdc60f5cc5b4918903b"
}
},
"configuration": {
"mnemonic": "k8-fastbuild",
"platformName": "k8",
"cpu": "k8",
"makeVariable": {
"COMPILATION_MODE": "fastbuild",
"TARGET_CPU": "k8",
"GENDIR": "bazel-out/k8-fastbuild/bin",
"BINDIR": "bazel-out/k8-fastbuild/bin"
}
}
}
ConvenienceSymlinksIdentified
Deneysel. --experimental_convenience_symlinks_bep_event
seçeneği ayarlanırsa tek bir ConvenienceSymlinksIdentified
etkinliği
Çalışma alanındaki sembolik bağlantıların nasıl yönetilmesi gerektiğini belirten build
komutları.
Bu, Bazel'ı uzaktan çağıran ve ardından yerel
çalışma alanını Bazel yerel olarak çalıştırılmış gibi
çalıştırabilirsiniz.
{
"id": {
"convenienceSymlinksIdentified":{}
},
"convenienceSymlinksIdentified": {
"convenienceSymlinks": [
{
"path": "bazel-bin",
"action": "CREATE",
"target": "execroot/google3/bazel-out/k8-fastbuild/bin"
},
{
"path": "bazel-genfiles",
"action": "CREATE",
"target": "execroot/google3/bazel-out/k8-fastbuild/genfiles"
},
{
"path": "bazel-out",
"action": "CREATE",
"target": "execroot/google3/bazel-out"
}
]
}
}
Getir
Komut yürütme işleminin parçası olarak bir Getirme işleminin gerçekleştirildiğini belirtir. Diğer etkinliklerin aksine, önbelleğe alınan getirme sonucu yeniden kullanılırsa bu etkinlik BEP akışında görünür.
NamedSetOfFiles
NamedSetOfFiles
etkinlik,
Komut değerlendirmesi sırasında oluşturulan dosya sayısı depset
.
Geçişli olarak dahil edilen tanımlayıcılar NamedSetOfFilesId
tarafından tanımlanır.
Bir akışın NamedSetOfFiles
etkinliklerini yorumlama hakkında daha fazla bilgi için bkz.
BEP örnekleri sayfası.
OptionsParsed
Tek bir OptionsParsed
etkinliğinde, komuta uygulanan tüm seçenekler listelenir.
başlangıç seçeneklerini komut seçeneklerinden ayırma. Ayrıca,
InvocationPolicy (varsa).
{
"id": {
"optionsParsed": {}
},
"optionsParsed": {
"startupOptions": [
"--max_idle_secs=10800",
"--noshutdown_on_low_sys_mem",
"--connect_timeout_secs=30",
"--output_user_root=/tmp/.cache/bazel/_bazel_foo",
"--output_base=/tmp/.cache/bazel/_bazel_foo/a61fd0fbee3f9d6c1e30d54b68655d35",
"--deep_execroot",
"--expand_configs_in_place",
"--idle_server_tasks",
"--write_command_log",
"--nowatchfs",
"--nofatal_event_bus_exceptions",
"--nowindows_enable_symlinks",
"--noclient_debug",
],
"cmdLine": [
"--enable_platform_specific_config",
"--build_event_json_file=/tmp/bep.json"
],
"explicitCmdLine": [
"--build_event_json_file=/tmp/bep.json"
],
"invocationPolicy": {}
}
}
PatternExpanded
PatternExpanded
etkinlikleri, kalıplarla eşleşen tüm hedeflerin kümesini gösterir
komut satırında yer alır. Başarılı komutlar için tek bir etkinlik vardır
PatternExpandedId
içindeki tüm kalıplarla ve
PatternExpanded
etkinliğinin çocukları. Kalıp, herhangi bir
test_suite
, test_suite
tarafından eklenen test hedefleri grubunu belirtir. Her bir
kalıp çözülemezse BEP ek bir Aborted
etkinliği tanımlayan bir PatternExpandedId
etkinliği içerir.
{
"id": {
"pattern": {
"pattern":["//base:all"]
}
},
"children": [
{"targetConfigured":{"label":"//base:foo"}},
{"targetConfigured":{"label":"//base:foobar"}}
],
"expanded": {
"testSuiteExpansions": {
"suiteLabel": "//base:suite",
"testLabels": "//base:foo_test"
}
}
}
İlerleme
İlerleme etkinlikleri, Bazel'in oluşturduğu standart çıkışı ve standart hatayı içerir yardımcı olur. Bu etkinlikler ayrıca, gerektiğinde otomatik olarak oluşturulur. mantıksal bir "ebeveyn" tarafından duyurulmayan etkinlikleri duyurmak etkinlik ( (NamedSetOfFiles gibi).
TargetComplete
Şunları tamamlayan her (target, configuration, aspect)
kombinasyonu için:
yürütme aşamasında, BEP'ye TargetComplete
etkinliği dahil edilir. Etkinlik şunları içeriyor:
hedefin başarılı/başarısızlığı ile hedefin istenen çıkış grupları.
{
"id": {
"targetCompleted": {
"label": "//examples/py:bep",
"configuration": {
"id": "a5d130b0966b4a9ca2d32725aa5baf40e215bcfc4d5cdcdc60f5cc5b4918903b"
}
}
},
"completed": {
"success": true,
"outputGroup": [
{
"name": "default",
"fileSets": [
{
"id": "0"
}
]
}
]
}
}
TargetConfigured
Analiz aşamasını tamamlayan her hedef için bir TargetConfigured
etkinliği
BEP'ye dahil edildi. Bu, bir hedefin "kural türü" için yetkili kaynaktır
özelliğini gönderin. Hedefe uygulanan yapılandırmalar, duyurulan
çocuklar olarak gönderin.
Örneğin, --experimental_multi_cpu
seçenekleriyle derleme yapmak
iki öğeli tek bir hedef için aşağıdaki TargetConfigured
etkinliği
yapılandırma:
{
"id": {
"targetConfigured": {
"label": "//starlark_configurations/multi_arch_binary:foo"
}
},
"children": [
{
"targetCompleted": {
"label": "//starlark_configurations/multi_arch_binary:foo",
"configuration": {
"id": "c62b30c8ab7b9fc51a05848af9276529842a11a7655c71327ade26d7c894c818"
}
}
},
{
"targetCompleted": {
"label": "//starlark_configurations/multi_arch_binary:foo",
"configuration": {
"id": "eae0379b65abce68d54e0924c0ebcbf3d3df26c6e84ef7b2be51e8dc5b513c99"
}
}
}
],
"configured": {
"targetKind": "foo_binary rule"
}
}
TargetSummary
Yürütülen her (target, configuration)
çifti için bir TargetSummary
etkinlik, yapılandırılmış ve yeniden oluşturulmuş
ve yapılandırılan hedefe uygulanan tüm yönlerden oluşur.
TestResult
Test istenirse her test denemesi için bir TestResult
etkinliği gönderilir
ve test başına çalıştırmasını sağlar. Bu, BEP tüketicilerinin hangi
ve test işlemlerinin testlerini geçemediğini ve test çıkışlarının (örneğin, günlükler,
test.xml dosyaları) kaldırın.
TestSummary
Test istenirse her test (target,
configuration)
için testin sonucunu yorumlamak için gerekli bilgileri içeren bir TestSummary
etkinliği gönderilir
sonuç. Test başına düşen deneme, parçalama ve çalıştırma işlemlerinin sayısı,
BEP tüketicileri bu boyutlardaki yapıları ayırt edebilir. Denemeler
ve test başına çalıştırma değerleri dikkate alınır. Bu testler, toplam TestStatus
FLAKY
testlerini FAILED
testlerinden ayırt edin.
UnstructuredCommandLine
CommandLine'ın aksine, bu etkinlik ayrıştırılmamış komut satırını taşır
tüm öğeleri genişlettikten sonra derleme aracının karşılaştığı dize biçimindeki
.bazelrc
dosyaları ve
--config
işaretini dikkate alıyoruz.
Bir öğeyi tam olarak yeniden üretmek için UnstructuredCommandLine
etkinliğinden yararlanılabilir.
verilen komut dosyasıdır.
WorkspaceConfig
Tek bir WorkspaceConfig
etkinliği,
çalışma alanında olmasını sağlayın.
WorkspaceStatus
Tek bir WorkspaceStatus
etkinliği, çalışma alanı durumunun sonucunu içerir
komutunu kullanın.