From a45a7cbc0dbd8269ec8227bc668a50ce429629a6 Mon Sep 17 00:00:00 2001 From: Christoffer Jansson Date: Wed, 7 Sep 2022 14:09:51 +0200 Subject: [PATCH] Add fuchsia bot No-Try: true Bug: b/232740856 Change-Id: I5b4c9b41395466e68e00a7e63fffb26eb31d8313 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/274401 Reviewed-by: Mirko Bonadei Commit-Queue: Christoffer Jansson Cr-Commit-Position: refs/heads/main@{#38028} --- infra/config/config.star | 3 + infra/config/cr-buildbucket.cfg | 98 +++++++ infra/config/luci-milo.cfg | 8 + infra/config/luci-notify.cfg | 35 +++ infra/config/luci-scheduler.cfg | 11 + infra/specs/client.webrtc.json | 433 ++++++++++++++++++++++++++++++ infra/specs/mixins_webrtc.pyl | 7 - infra/specs/tryserver.webrtc.json | 1 + infra/specs/waterfalls.pyl | 14 + tools_webrtc/mb/mb_config.pyl | 10 + 10 files changed, 613 insertions(+), 7 deletions(-) diff --git a/infra/config/config.star b/infra/config/config.star index 203a557239..b246006e56 100755 --- a/infra/config/config.star +++ b/infra/config/config.star @@ -63,6 +63,7 @@ skipped_lkgr_bots = [ "Mac64 Release (reclient)", "Win64 Release (Clang)(reclient)", "iOS64 Release (reclient)", + "Fuchsia Release", ] # Use LUCI Scheduler BBv2 names and add Scheduler realms configs. @@ -777,6 +778,8 @@ linux_builder("Linux (more configs)", "Linux|x64|more") linux_try_job("linux_more_configs") linux_try_job("linux_chromium_compile", recipe = "chromium_trybot", branch_cq = False) linux_try_job("linux_chromium_compile_dbg", recipe = "chromium_trybot", branch_cq = False) +linux_builder("Fuchsia Release", "Fuchsia|x64|rel") +linux_try_job("fuchsia_rel", cq = None) mac_builder("Mac64 Debug", "Mac|x64|dbg") mac_try_job("mac_dbg", cq = None) diff --git a/infra/config/cr-buildbucket.cfg b/infra/config/cr-buildbucket.cfg index f21b25f3d7..7f9e671dec 100644 --- a/infra/config/cr-buildbucket.cfg +++ b/infra/config/cr-buildbucket.cfg @@ -414,6 +414,57 @@ buckets { } } } + builders { + name: "Fuchsia Release" + swarming_host: "chromium-swarm.appspot.com" + swarming_tags: "vpython:native-python-wrapper" + dimensions: "cpu:x86-64" + dimensions: "inside_docker:0" + dimensions: "os:Linux" + dimensions: "pool:luci.webrtc.ci" + exe { + cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" + cipd_version: "refs/heads/main" + cmd: "luciexe" + } + properties: + '{' + ' "$build/goma": {' + ' "server_host": "goma.chromium.org",' + ' "use_luci_auth": true' + ' },' + ' "$build/reclient": {' + ' "instance": "rbe-webrtc-trusted",' + ' "metrics_project": "chromium-reclient-metrics"' + ' },' + ' "$recipe_engine/resultdb/test_presentation": {' + ' "column_keys": [],' + ' "grouping_keys": [' + ' "status",' + ' "v.test_suite"' + ' ]' + ' },' + ' "builder_group": "client.webrtc",' + ' "recipe": "webrtc/standalone"' + '}' + priority: 30 + execution_timeout_secs: 7200 + build_numbers: YES + service_account: "webrtc-ci-builder@chops-service-accounts.iam.gserviceaccount.com" + experiments { + key: "luci.recipes.use_python3" + value: 100 + } + resultdb { + enable: true + bq_exports { + project: "webrtc-ci" + dataset: "resultdb" + table: "ci_test_results" + test_results {} + } + } + } builders { name: "Linux (more configs)" swarming_host: "chromium-swarm.appspot.com" @@ -3759,6 +3810,53 @@ buckets { } } } + builders { + name: "fuchsia_rel" + swarming_host: "chromium-swarm.appspot.com" + swarming_tags: "vpython:native-python-wrapper" + dimensions: "cpu:x86-64" + dimensions: "inside_docker:0" + dimensions: "os:Linux" + dimensions: "pool:luci.webrtc.try" + exe { + cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" + cipd_version: "refs/heads/main" + cmd: "luciexe" + } + properties: + '{' + ' "$build/goma": {' + ' "server_host": "goma.chromium.org",' + ' "use_luci_auth": true' + ' },' + ' "$recipe_engine/resultdb/test_presentation": {' + ' "column_keys": [],' + ' "grouping_keys": [' + ' "status",' + ' "v.test_suite"' + ' ]' + ' },' + ' "builder_group": "tryserver.webrtc",' + ' "recipe": "webrtc/standalone"' + '}' + priority: 30 + execution_timeout_secs: 7200 + build_numbers: YES + service_account: "webrtc-try-builder@chops-service-accounts.iam.gserviceaccount.com" + experiments { + key: "luci.recipes.use_python3" + value: 100 + } + resultdb { + enable: true + bq_exports { + project: "webrtc-ci" + dataset: "resultdb" + table: "try_test_results" + test_results {} + } + } + } builders { name: "ios_api_framework" swarming_host: "chromium-swarm.appspot.com" diff --git a/infra/config/luci-milo.cfg b/infra/config/luci-milo.cfg index 795adf6e03..3ed012bcd3 100644 --- a/infra/config/luci-milo.cfg +++ b/infra/config/luci-milo.cfg @@ -181,6 +181,11 @@ consoles { category: "Linux|x64" short_name: "more" } + builders { + name: "buildbucket/luci.webrtc.ci/Fuchsia Release" + category: "Fuchsia|x64" + short_name: "rel" + } builders { name: "buildbucket/luci.webrtc.ci/Mac64 Debug" category: "Mac|x64" @@ -571,6 +576,9 @@ consoles { builders { name: "buildbucket/luci.webrtc.try/linux_chromium_compile_dbg" } + builders { + name: "buildbucket/luci.webrtc.try/fuchsia_rel" + } builders { name: "buildbucket/luci.webrtc.try/mac_dbg" } diff --git a/infra/config/luci-notify.cfg b/infra/config/luci-notify.cfg index 3c407c4db2..c429301fba 100644 --- a/infra/config/luci-notify.cfg +++ b/infra/config/luci-notify.cfg @@ -215,6 +215,28 @@ notifiers { failed_step_regexp_exclude: ".*(\\(experimental\\)|\\(reclient\\)).*" } } +notifiers { + notifications { + on_new_status: INFRA_FAILURE + email { + recipients: "webrtc-troopers-robots@google.com" + } + template: "infra_failure" + } + notifications { + on_new_status: FAILURE + email { + recipients: "webrtc-troopers-robots@google.com" + } + template: "build_failure" + notify_blamelist {} + } + builders { + bucket: "ci" + name: "Fuchsia Release" + repository: "https://webrtc.googlesource.com/src" + } +} notifiers { notifications { on_new_status: INFRA_FAILURE @@ -1702,6 +1724,19 @@ notifiers { name: "android_compile_x86_rel" } } +notifiers { + notifications { + on_new_status: INFRA_FAILURE + email { + recipients: "webrtc-troopers-robots@google.com" + } + template: "infra_failure" + } + builders { + bucket: "try" + name: "fuchsia_rel" + } +} notifiers { notifications { on_new_status: INFRA_FAILURE diff --git a/infra/config/luci-scheduler.cfg b/infra/config/luci-scheduler.cfg index aaafeec3d1..1234aca9fa 100644 --- a/infra/config/luci-scheduler.cfg +++ b/infra/config/luci-scheduler.cfg @@ -125,6 +125,16 @@ job { builder: "Auto-roll - WebRTC DEPS" } } +job { + id: "Fuchsia Release" + realm: "ci" + acl_sets: "ci" + buildbucket { + server: "cr-buildbucket.appspot.com" + bucket: "ci" + builder: "Fuchsia Release" + } +} job { id: "Linux (more configs)" realm: "ci" @@ -703,6 +713,7 @@ trigger { triggers: "Android32 Builder x86 (dbg)" triggers: "Android64 (M Nexus5X)" triggers: "Android64 Builder x64 (dbg)" + triggers: "Fuchsia Release" triggers: "Linux (more configs)" triggers: "Linux Asan" triggers: "Linux MSan" diff --git a/infra/specs/client.webrtc.json b/infra/specs/client.webrtc.json index 89af1f3ee6..4f017933bf 100644 --- a/infra/specs/client.webrtc.json +++ b/infra/specs/client.webrtc.json @@ -2689,6 +2689,439 @@ }, "Android64 Builder arm64": {}, "Android64 Builder x64 (dbg)": {}, + "Fuchsia Release": { + "isolated_scripts": [ + { + "isolate_name": "audio_decoder_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "audio_decoder_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://modules/audio_coding:audio_decoder_unittests/" + }, + { + "isolate_name": "common_audio_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "common_audio_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://common_audio:common_audio_unittests/" + }, + { + "isolate_name": "common_video_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "common_video_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://common_video:common_video_unittests/" + }, + { + "isolate_name": "dcsctp_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "dcsctp_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://net/dcsctp:dcsctp_unittests/" + }, + { + "args": [ + "--quick" + ], + "isolate_name": "low_bandwidth_audio_test", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "low_bandwidth_audio_test", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://audio:low_bandwidth_audio_test/" + }, + { + "isolate_name": "modules_tests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "modules_tests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ], + "shards": 2 + }, + "test_id_prefix": "ninja://modules:modules_tests/" + }, + { + "isolate_name": "modules_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "modules_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ], + "shards": 6 + }, + "test_id_prefix": "ninja://modules:modules_unittests/" + }, + { + "isolate_name": "peerconnection_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "peerconnection_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ], + "shards": 4 + }, + "test_id_prefix": "ninja://pc:peerconnection_unittests/" + }, + { + "isolate_name": "rtc_media_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "rtc_media_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://media:rtc_media_unittests/" + }, + { + "isolate_name": "rtc_pc_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "rtc_pc_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://pc:rtc_pc_unittests/" + }, + { + "isolate_name": "rtc_stats_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "rtc_stats_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://stats:rtc_stats_unittests/" + }, + { + "isolate_name": "rtc_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "rtc_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ], + "shards": 6 + }, + "test_id_prefix": "ninja://:rtc_unittests/" + }, + { + "isolate_name": "slow_peer_connection_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "slow_peer_connection_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://pc:slow_peer_connection_unittests/" + }, + { + "isolate_name": "svc_tests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "svc_tests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ], + "shards": 4 + }, + "test_id_prefix": "ninja://pc:svc_tests/" + }, + { + "isolate_name": "system_wrappers_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "system_wrappers_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://system_wrappers:system_wrappers_unittests/" + }, + { + "isolate_name": "test_support_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "test_support_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://test:test_support_unittests/" + }, + { + "isolate_name": "tools_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "tools_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://rtc_tools:tools_unittests/" + }, + { + "isolate_name": "video_engine_tests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "video_engine_tests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ], + "shards": 4 + }, + "test_id_prefix": "ninja://:video_engine_tests/" + }, + { + "isolate_name": "voip_unittests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "voip_unittests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://:voip_unittests/" + }, + { + "isolate_name": "webrtc_nonparallel_tests", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "webrtc_nonparallel_tests", + "resultdb": { + "result_format": "json" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "cpu": "x86-64", + "os": "Ubuntu-18.04" + } + ] + }, + "test_id_prefix": "ninja://:webrtc_nonparallel_tests/" + } + ] + }, "Linux (more configs)": { "isolated_scripts": [ { diff --git a/infra/specs/mixins_webrtc.pyl b/infra/specs/mixins_webrtc.pyl index d890dacbcf..de574ef893 100644 --- a/infra/specs/mixins_webrtc.pyl +++ b/infra/specs/mixins_webrtc.pyl @@ -232,13 +232,6 @@ ], }, }, - 'win10-any': { - 'swarming': { - 'dimensions': { - 'os': 'Windows-10' - } - } - }, 'xcode_13_main': { '$mixin_append': { 'args': ['--xcode-build-version', '13c100'] diff --git a/infra/specs/tryserver.webrtc.json b/infra/specs/tryserver.webrtc.json index c230ea04d4..6db19d0da4 100644 --- a/infra/specs/tryserver.webrtc.json +++ b/infra/specs/tryserver.webrtc.json @@ -2828,6 +2828,7 @@ "android_compile_x64_rel": {}, "android_compile_x86_dbg": {}, "android_compile_x86_rel": {}, + "fuchsia_rel": {}, "ios_compile_arm64_dbg": {}, "ios_compile_arm64_rel": {}, "ios_sim_x64_dbg_ios12": { diff --git a/infra/specs/waterfalls.pyl b/infra/specs/waterfalls.pyl index ca999bd1f6..b0168a0fdc 100644 --- a/infra/specs/waterfalls.pyl +++ b/infra/specs/waterfalls.pyl @@ -65,6 +65,13 @@ }, 'Android64 Builder arm64': {}, 'Android64 Builder x64 (dbg)': {}, + 'Fuchsia Release': { + 'os_type': 'linux', + 'mixins': ['linux-bionic', 'x86-64', 'resultdb-json-format'], + 'test_suites': { + 'isolated_scripts': 'desktop_tests', + }, + }, 'Linux (more configs)': { 'os_type': 'linux', 'mixins': ['linux-bionic', 'x86-64', 'resultdb-json-format'], @@ -416,6 +423,13 @@ 'android_compile_x64_rel': {}, 'android_compile_x86_dbg': {}, 'android_compile_x86_rel': {}, + 'fuchsia_rel': { + 'os_type': 'linux', + 'mixins': ['linux-bionic', 'x86-64', 'resultdb-json-format'], + 'test_suties': { + 'isolateds_scripts': 'desktop_tests', + }, + }, 'ios_compile_arm64_dbg': {}, 'ios_compile_arm64_rel': {}, 'ios_sim_x64_dbg_ios12': { diff --git a/tools_webrtc/mb/mb_config.pyl b/tools_webrtc/mb/mb_config.pyl index 42044ace63..1816afe06c 100644 --- a/tools_webrtc/mb/mb_config.pyl +++ b/tools_webrtc/mb/mb_config.pyl @@ -48,6 +48,9 @@ 'Android64 Builder arm64': 'android_pure_release_bot_arm64', 'Android64 Builder x64 (dbg)': 'android_debug_static_bot_x64', + # Fuchsia + 'Fuchsia Release': 'release_bot_x64_fuchsia', + # Linux # "More configs" bots will build all the following configs in sequence. # This is using MB's "phases" feature. @@ -161,6 +164,9 @@ 'android_compile_x86_dbg': 'android_debug_static_bot_x86', 'android_compile_x86_rel': 'android_release_bot_x86', + # Fuchsia + 'fuchsia_rel': 'release_bot_x64_fuchsia', + # iOS 'ios_compile_arm64_dbg': 'ios_debug_bot_arm64', 'ios_compile_arm64_rel': 'ios_release_bot_arm64', @@ -301,6 +307,7 @@ 'release_bot_arm': ['openh264', 'release_bot', 'arm'], 'release_bot_arm64': ['openh264', 'release_bot', 'arm64'], 'release_bot_x64': ['openh264', 'release_bot', 'x64'], + 'release_bot_x64_fuchsia': ['openh264', 'release_bot', 'x64', 'fuchsia'], 'release_bot_x64_reclient': [ 'openh264', 'release_bot_reclient', 'x64', ], @@ -404,6 +411,9 @@ 'dummy_audio_file_devices': { 'gn_args': 'rtc_use_dummy_audio_file_devices=true', }, + 'fuchsia': { + 'gn_args': 'is_fuchsia=true' + }, 'full_symbols': { 'gn_args': 'symbol_level=2', },