Her BEP etkinlik türünün kendi semantiği vardır ve bu semantik, build_event_stream.proto dosyasında en az düzeyde belgelenmiştir. Aşağıdaki sözlükte her etkinlik türü açıklanmaktadır.
İptal edildi
Diğer etkinliklerin aksine, Aborted
etkinliği diğer türlerdeki etkinliklerin yerini aldığından karşılık gelen bir kimlik türüne sahip değildir.Aborted
Bu etkinlik, derlemenin erken sonlandırıldığını ve göründüğü etkinlik kimliğinin normal ş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 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 işlemin yürütülmesiyle ilgili ayrıntıları sağlar. Varsayılan olarak bu etkinlik, derleme hatalarının temel nedenini belirlemeyi desteklemek için yalnızca başarısız işlemlerle ilgili olarak BEP'ye dahil edilir. Kullanıcılar, tüm ActionExecuted
etkinliklerini dahil etmek için --build_event_publish_all_actions
işaretini ayarlayabilir.
BuildFinished
Komut tamamlandıktan sonra tek bir BuildFinished
etkinliği gönderilir ve komutun çıkış kodunu içerir. Bu etkinlik, yetkili başarı/başarısızlık bilgileri sağlar.
BuildMetadata
--build_metadata
işaretinin ayrıştırılmış içeriğini içerir. Bu etkinlik, harici verileri (ör. tanımlayıcılar) kullanarak Bazel'in diğer araçlarla entegrasyonunu desteklemek için kullanılır.
BuildMetrics
Her komutun sonunda tek bir BuildMetrics
etkinliği gönderilir. Bu etkinlik, komut sırasında derleme aracının davranışını ölçmek için yararlı olan sayaçlar/ölçerler içerir. Bu metrikler, gerçekten yapılan işi gösterir ve yeniden kullanılan önbelleğe alınmış işleri saymaz.
Komut yürütülürken Java çöp toplama işlemi yapılmadıysa memory_metrics
değerinin doldurulmayabileceğini unutmayın. Kullanıcılar, memory_metrics
değerini doldurmak için komutun sonunda çöp toplayıcının çalışmasını zorunlu kılan --memory_profile=/dev/null
seçeneğini ayarlayabilir.
{
"id": {
"buildMetrics": {}
},
"buildMetrics": {
"actionSummary": {
"actionsExecuted": "1"
},
"memoryMetrics": {},
"targetMetrics": {
"targetsLoaded": "9",
"targetsConfigured": "19"
},
"packageMetrics": {
"packagesLoaded": "5"
},
"timingMetrics": {
"cpuTimeInMs": "1590",
"wallTimeInMs": "359"
}
}
}
BuildStarted
Bir BEP akışındaki ilk etkinlik olan BuildStarted
, anlamlı bir çalışma başlamadan önce komutu açıklayan meta verileri içerir.
BuildToolLogs
Bir komutun sonunda, derleme aracı davranışını anlamaya veya hata ayıklamaya 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çi olarak 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
içinde, hangi temsili aktardığını belirten bir etiket bulunur. BEP'de bu tür üç etkinlik gösterilir:
"original"
: Komut satırı, Bazel istemcisinden alındığı şekliyle, .rc dosyalarından alınan başlangıç seçenekleri olmadan yeniden oluşturuldu."canonical"
: .rc dosyaları genişletilmiş ve çağırma politikası uygulanmış etkin komut satırı."tool"
:--experimental_tool_command_line
seçeneğinden doldurulur. Bu, Bazel'i sarmalayan bir aracın komut satırını BEP aracılığıyla 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 olabilir (çünkü aracın seçenekleri Bazel'in seçeneklerinden farklı olabilir).
Yapılandırma
Bir derlemedeki üst düzey hedeflerde kullanılan her configuration
için bir Configuration
etkinliği gönderilir. En az bir yapılandırma etkinliği her zaman bulunur. id
, TargetConfigured
ve TargetComplete
etkinlik kimlikleri tarafından yeniden kullanılır ve çoklu yapılandırma derlemelerinde bu etkinlikleri netleştirmek 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
Deneyseldir. --experimental_convenience_symlinks_bep_event
seçeneği ayarlanırsa çalışma alanındaki sembolik bağlantıların nasıl yönetileceğini belirtmek için build
komutları tarafından tek bir ConvenienceSymlinksIdentified
etkinliği oluşturulur.
Bu, Bazel'i uzaktan çağıran ve ardından yerel çalışma alanını Bazel yerel olarak çalıştırılmış gibi düzenleyen araçlar oluşturmayı sağlar.
{
"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 kapsamında bir getirme işleminin gerçekleştiğini gösterir. Diğer etkinliklerin aksine, önbelleğe alınmış bir getirme sonucu yeniden kullanılıyorsa bu etkinlik BEP akışında görünmez.
NamedSetOfFiles
NamedSetOfFiles
etkinlikleri, komut değerlendirmesi sırasında oluşturulan dosyaların depset
ile eşleşen bir yapıyı bildirir.
Geçişli olarak dahil edilen bağımlılık kümeleri NamedSetOfFilesId
ile tanımlanır.
Bir akışın NamedSetOfFiles
etkinliklerini yorumlama hakkında daha fazla bilgi için BEP örnekleri sayfasına bakı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 de dahildir.
{
"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, komut satırında sağlanan kalıplarla eşleşen tüm hedefleri gösterir. Başarılı komutlar için PatternExpandedId
içindeki tüm kalıpları ve PatternExpanded
içindeki tüm hedefleri içeren tek bir etkinlik bulunur. Bu etkinlik, alt öğeler içerir. Kalıp, test_suite
tarafından dahil edilen test hedefleri kümesi olarak genişlerse.test_suite
Çözülemeyen her desen için BEP, deseni tanımlayan bir PatternExpandedId
ile 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, komut yürütme sırasında Bazel tarafından üretilen standart çıkışı ve standart hatayı içerir. Bu etkinlikler, mantıksal bir "üst" etkinlik (özellikle NamedSetOfFiles) tarafından duyurulmamış etkinlikleri duyurmak için gerektiğinde otomatik olarak da 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ği için yetkili kaynaktır. Hedefe uygulanan yapılandırmalar, etkinliğin duyurulan alt öğelerinde görünür.
Örneğin, --experimental_multi_cpu
seçenekleriyle oluşturulan bir hedefleme, iki yapılandırmaya sahip tek bir hedef için aşağıdaki TargetConfigured
etkinliğini üretebilir:
{
"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ı sonucuyla birlikte bir TargetSummary
etkinliği eklenir.
TestResult
Test istenirse test başına, parça başına ve test çalıştırması başına 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şlemi için test çıktılarını (ör. günlükler, test.xml dosyaları) tam olarak belirleyebilir.
TestSummary
Test istenirse test sonuçlarının yorumlanması için gerekli bilgileri içeren TestSummary
etkinliği gönderilir.(target,
configuration)
BEP tüketicilerinin bu boyutlardaki yapay nesneleri ayırt edebilmesi için test başına deneme, parça ve çalıştırma sayısı eklenir. TestStatus
testlerini FLAKY
testlerinden ayırt etmek için toplu FAILED
oluşturulurken test başına denemeler ve çalıştırmalar dikkate alınır.
UnstructuredCommandLine
CommandLine'dan farklı olarak bu etkinlik, tüm .bazelrc
dosyaları genişletildikten ve --config
işareti dikkate alındıktan sonra derleme aracı tarafından karşılaşılan, ayrıştırılmamış komut satırı işaretlerini dize biçiminde taşır.
UnstructuredCommandLine
etkinliği, belirli bir komut yürütme işlemini tam olarak yeniden oluşturmak için kullanılabilir.
WorkspaceConfig
Tek bir WorkspaceConfig
etkinliği, çalışma alanıyla ilgili yapılandırma bilgilerini (ör. yürütme kökü) içerir.
WorkspaceStatus
Tek bir WorkspaceStatus
etkinliği, workspace status
command komutunun sonucunu içerir.