Her BEP etkinlik türünün, build_event_stream.proto içerisinde minimum düzeyde belgelenen kendi anlamı vardır. Aşağıdaki sözlükte her etkinlik türü açıklanmaktadır.
İptal edildi
Aborted
etkinliği diğer türdeki etkinliklerin yerini aldığından diğer etkinliklerin aksine Aborted
'ün karşılık gelen bir kimlik türü yoktur. Bu etkinlik, derlemenin erken sonlandırıldığını ve altında göründüğü etkinlik kimliğinin normal bir şekilde oluşturulmadığını gösterir. Aborted
, derlemenin neden tamamlanmadığını açıklayan bir enum ve kullanıcı dostu bir açıklama içerir.
Örneğin, kullanıcı Bazel'i kesintiye uğrattığında bir derleme bir hedefi değerlendiriyorsa BEP aşağıdaki gibi bir etkinlik içerir:
{
"id": {
"targetCompleted": {
"label": "//:foo",
"configuration": {
"id": "544e39a7f0abdb3efdd29d675a48bc6a"
}
}
},
"aborted": {
"reason": "USER_INTERRUPTED"
}
}
ActionExecuted
Bir derlemede belirli bir İşlem'in yürütülmesiyle ilgili ayrıntılar sağlar. Varsayılan olarak bu etkinlik, derleme hatalarının temel nedenini belirlemeyi desteklemek amacıyla yalnızca başarısız işlemler için BEP'ye dahil edilir. Kullanıcılar, --build_event_publish_all_actions
işaretini tüm ActionExecuted
etkinliklerini içerecek şekilde ayarlayabilir.
BuildFinished
Komut tamamlandıktan sonra tek bir BuildFinished
etkinliği gönderilir ve bu etkinlikte komutun çıkış kodu yer alır. Bu etkinlik, yetkili başarı/başarısızlık bilgilerini sağlar.
BuildMetadata
--build_metadata
işaretinin ayrıştırılmış içeriğini içerir. Bu etkinlik, harici verileri (tanımlayıcılar gibi) bağlayarak Bazel'in diğer araçlarla entegrasyonunu desteklemek için kullanılır.
BuildMetrics
Her komutun sonunda tek bir BuildMetrics
etkinliği gönderilir ve komut sırasında derleme aracının davranışını ölçmek için yararlı sayaçlar/göstergeler içerir. Bu metrikler, gerçekten yapılan işi gösterir ve yeniden kullanılan önbelleğe alınmış işleri saymaz.
Komutun yürütülmesi sırasında Java atık toplama işlemi yapılmadıysa memory_metrics
değerinin doldurulmayabileceğini unutmayın. Kullanıcılar, memory_metrics
seçeneğini ayarlayarak çöp toplayıcının memory_metrics
değerini doldurmak için komutun sonunda çalışmasını zorunlu kılar.
{
"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
, herhangi bir anlamlı çalışma başlamadan önce komutu açıklayan meta verileri içerir.
BuildToolLogs
Bir komutun sonunda, derleme aracının davranışını anlamanıza veya hata ayıklamanıza yardımcı olabilecek, derleme aracı tarafından oluşturulan dosyaların URI'leri de dahil olmak üzere tek bir BuildToolLogs
etkinliği gönderilir. 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, tüm komut satırı bağımsız değişkenlerinin (seçenekler ve yorumlanmamış bağımsız değişkenler dahil) temsillerini içeren birden fazla CommandLine
etkinliği içerir.
Her CommandLine
etkinliğinin StructuredCommandLineId
alanında, hangi temsili aktardığını belirten bir etiket bulunur. BEP'de bu tür üç etkinlik görünür:
"original"
: Bazel, Bazel istemciden aldığı şekilde yeniden oluşturulmuş komut satırı (.rc dosyalarından alınan başlatma seçenekleri olmadan)."canonical"
: .rc dosyaları genişletildi ve çağrı politikası uygulanmış olan geçerli komut satırı."tool"
:--experimental_tool_command_line
seçeneğinden doldurulur. Bu, Bazel'i BEP üzerinden sarmalayan bir aracın komut satırını iletmek için kullanışlıdır. Bu, doğrudan kullanılan base64 kodlu birCommandLine
ikili protokolü arabellek mesajı veya ayrıştırılan ancak yorumlanmayan bir dize (araç seçenekleri Bazel'ınkinden farklı olabilir) olabilir.
Yapılandırma
Bir derlemedeki üst düzey hedeflerde kullanılan her configuration
için bir Configuration
etkinliği gönderilir. Her zaman en az bir yapılandırma etkinliği bulunur. id
, TargetConfigured
ve TargetComplete
etkinlik kimlikleri tarafından yeniden kullanılır ve çok yapılandırmalı derlemelerde bu etkinliklerin anlamını açıklığa kavuşturmak için gereklidir.
{
"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 çalışma alanındaki sembolik bağlantıların nasıl yönetilmesi gerektiğini göstermek için build
komutları tarafından tek bir ConvenienceSymlinksIdentified
etkinliği oluşturulur.
Böylece, Bazel'ı uzaktan çağıran araçlar derlenebilir ve ardından yerel çalışma alanı Bazel yerel olarak çalıştırılmış gibi ayarlanabilir.
{
"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ütmenin bir parçası olarak Getirme işleminin gerçekleştiğini gösterir. Diğer etkinliklerin aksine, önbelleğe alınmış bir getirme sonucu yeniden kullanılırsa bu etkinlik BEP akışında görünmez.
NamedSetOfFiles
NamedSetOfFiles
etkinlikleri, komut değerlendirmesi sırasında oluşturulan bir depset
dosyasıyla eşleşen bir yapıyı bildirir.
Geçişli olarak dahil edilen tanımlayıcılar NamedSetOfFilesId
tarafından tanımlanır.
Bir akıştaki NamedSetOfFiles
etkinliklerini yorumlama hakkında daha fazla bilgi için BEP örnekleri sayfasına göz atın.
OptionsParsed
Tek bir OptionsParsed
etkinliği, komuta uygulanan tüm seçenekleri listeler ve başlangıç seçeneklerini komut seçeneklerinden ayırır. Varsa InvocationPolicy'yi de içerir.
{
"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",
"--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, komut satırında sağlanan kalıplarla eşleşen tüm hedeflerin kümesini gösterir. Başarılı komutlar için PatternExpandedId
içindeki tüm kalıplar ve PatternExpanded
etkinliğinin çocuklarındaki tüm hedefleri içeren tek bir etkinlik mevcuttur. Kalıp herhangi bir test_suite
genişlerse test_suite
tarafından dahil edilen test hedefleri kümesidir. Çözümlenemeyen her kalıp için BEP, kalıbı tanımlayan bir PatternExpandedId
içeren ek bir Aborted
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, komutun yürütülmesi sırasında Bazel tarafından üretilen standart çıkışı ve standart hatayı içerir. Bu etkinlikler ayrıca, mantıksal bir "parent" etkinliği (özellikle NamedSetOfFiles) tarafından bildirilmeyen etkinlikleri duyurmak için gerektiğinde otomatik olarak oluşturulur.
TargetComplete
Yürütme aşamasını tamamlayan her (target, configuration, aspect)
kombinasyonu için BEP'ye bir TargetComplete
etkinliği dahil edilir. Etkinlik, hedefin başarı/başarısızlık durumunu ve hedefin istenen çıkış gruplarını içerir.
{
"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 BEP'ye bir TargetConfigured
etkinliği dahil edilir. Bu, bir hedefin "kural türü" özelliğinin yetkili kaynağıdır. Hedefe uygulanan yapılandırmalar, etkinliğin duyurulan alt etkinliklerinde görünür.
Örneğin, --experimental_multi_cpu
seçenekleriyle oluşturma işlemi, iki yapılandırmaya sahip tek bir hedef için aşağıdaki TargetConfigured
etkinliğini oluşturabilir:
{
"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, yapılandırılmış hedefin yürütülmesini ve bu yapılandırılmış hedefe uygulanan tüm yönleri kapsayan toplu bir başarı sonucu içeren bir TargetSummary
etkinliği eklenir.
TestResult
Test istenirse her test denemesi, bölüm ve test için bir TestResult
etkinliği gönderilir. Bu sayede BEP tüketicileri, testlerinde hangi test işlemlerinin başarısız olduğunu ve her test işleminin test çıkışlarını (ör. günlükler, test.xml dosyaları) tam olarak belirleyebilir.
TestSummary
Test istenirse her test (target,
configuration)
için test sonuçlarının yorumlanması için gereken bilgileri içeren bir TestSummary
etkinliği gönderilir. BEP tüketicilerinin bu boyutlar arasında yapıları ayırt etmesine olanak tanımak için test başına deneme, parça ve çalıştırma sayısı dahil edilir. FLAKY
testlerini FAILED
testlerinden ayırmak için toplu TestStatus
oluşturulurken test başına girişimler ve çalıştırmalar dikkate alınır.
UnstructuredCommandLine
CommandLine'den farklı olarak bu etkinlik, tüm .bazelrc
dosyalarını genişletip --config
işaretini dikkate aldıktan sonra derleme aracının karşılaştığı dize biçimindeki ayrıştırılmamış komut satırı işaretlerini taşır.
Belirli bir komutun yürütülmesini tam olarak yeniden oluşturmak için UnstructuredCommandLine
etkinliğinden yararlanılabilir.
WorkspaceConfig
Tek bir WorkspaceConfig
etkinliği, çalışma alanıyla ilgili yürütme kökü gibi yapılandırma bilgilerini içerir.
WorkspaceStatus
Tek bir WorkspaceStatus
etkinliği, çalışma alanı durumu komutunun sonucunu içerir.