Commit d170f8e1 by Jamie Madill Committed by Commit Bot

infra: Add configs for Android build.

Updates the configs to use the new protobuf properties. Adds support for ARM/ARM64 Android builds. Must be landed in conjunction with http://crrev.com/c/2841787 . Bug: angleproject:2344 Bug: angleproject:5114 Change-Id: I49f4f46ceaa7ce9118c9f4b4ceb06353b00429b6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2842306 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org>
parent be2f7b1c
...@@ -42,4 +42,8 @@ default_args = { ...@@ -42,4 +42,8 @@ default_args = {
# Disable location tags in isolates. # Disable location tags in isolates.
tests_have_location_tags = false tests_have_location_tags = false
# Use base level API level 29 support for AHardwareBuffer ANGLE tests.
android32_ndk_api_level = 29
android64_ndk_api_level = 29
} }
...@@ -11,6 +11,26 @@ consoles { ...@@ -11,6 +11,26 @@ consoles {
refs: "regexp:refs/heads/master" refs: "regexp:refs/heads/master"
manifest_name: "REVISION" manifest_name: "REVISION"
builders { builders {
name: "buildbucket/luci.angle.ci/android-arm-dbg"
category: "angle|android|clang|arm"
short_name: "dbg"
}
builders {
name: "buildbucket/luci.angle.ci/android-arm-rel"
category: "angle|android|clang|arm"
short_name: "rel"
}
builders {
name: "buildbucket/luci.angle.ci/android-arm64-dbg"
category: "angle|android|clang|arm64"
short_name: "dbg"
}
builders {
name: "buildbucket/luci.angle.ci/android-arm64-rel"
category: "angle|android|clang|arm64"
short_name: "rel"
}
builders {
name: "buildbucket/luci.angle.ci/linux-clang-dbg" name: "buildbucket/luci.angle.ci/linux-clang-dbg"
category: "angle|linux|clang|x64" category: "angle|linux|clang|x64"
short_name: "dbg" short_name: "dbg"
...@@ -105,6 +125,18 @@ consoles { ...@@ -105,6 +125,18 @@ consoles {
id: "try" id: "try"
name: "ANGLE Try Builders" name: "ANGLE Try Builders"
builders { builders {
name: "buildbucket/luci.angle.try/android-arm-dbg"
}
builders {
name: "buildbucket/luci.angle.try/android-arm-rel"
}
builders {
name: "buildbucket/luci.angle.try/android-arm64-dbg"
}
builders {
name: "buildbucket/luci.angle.try/android-arm64-rel"
}
builders {
name: "buildbucket/luci.angle.try/linux-clang-dbg" name: "buildbucket/luci.angle.try/linux-clang-dbg"
} }
builders { builders {
......
...@@ -5,6 +5,42 @@ ...@@ -5,6 +5,42 @@
# https://luci-config.appspot.com/schemas/projects:luci-scheduler.cfg # https://luci-config.appspot.com/schemas/projects:luci-scheduler.cfg
job { job {
id: "android-arm-dbg"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "luci.angle.ci"
builder: "android-arm-dbg"
}
}
job {
id: "android-arm-rel"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "luci.angle.ci"
builder: "android-arm-rel"
}
}
job {
id: "android-arm64-dbg"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "luci.angle.ci"
builder: "android-arm64-dbg"
}
}
job {
id: "android-arm64-rel"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "luci.angle.ci"
builder: "android-arm64-rel"
}
}
job {
id: "linux-clang-dbg" id: "linux-clang-dbg"
acl_sets: "ci" acl_sets: "ci"
buildbucket { buildbucket {
...@@ -170,6 +206,10 @@ trigger { ...@@ -170,6 +206,10 @@ trigger {
id: "master-poller" id: "master-poller"
schedule: "with 10s interval" schedule: "with 10s interval"
acl_sets: "ci" acl_sets: "ci"
triggers: "android-arm-dbg"
triggers: "android-arm-rel"
triggers: "android-arm64-dbg"
triggers: "android-arm64-rel"
triggers: "linux-clang-dbg" triggers: "linux-clang-dbg"
triggers: "linux-clang-rel" triggers: "linux-clang-rel"
triggers: "linux-gcc-dbg" triggers: "linux-gcc-dbg"
......
...@@ -52,6 +52,7 @@ luci.logdog(gs_bucket = "chromium-luci-logdog") ...@@ -52,6 +52,7 @@ luci.logdog(gs_bucket = "chromium-luci-logdog")
# The category for an os: a more generic grouping than specific OS versions that # The category for an os: a more generic grouping than specific OS versions that
# can be used for computing defaults # can be used for computing defaults
os_category = struct( os_category = struct(
ANDROID = "Android",
LINUX = "Linux", LINUX = "Linux",
MAC = "Mac", MAC = "Mac",
WINDOWS = "Windows", WINDOWS = "Windows",
...@@ -61,6 +62,7 @@ def os_enum(dimension, category, console_name): ...@@ -61,6 +62,7 @@ def os_enum(dimension, category, console_name):
return struct(dimension = dimension, category = category, console_name = console_name) return struct(dimension = dimension, category = category, console_name = console_name)
os = struct( os = struct(
ANDROID = os_enum("Ubuntu", os_category.ANDROID, "android"),
LINUX = os_enum("Ubuntu", os_category.LINUX, "linux"), LINUX = os_enum("Ubuntu", os_category.LINUX, "linux"),
MAC = os_enum("Mac", os_category.MAC, "mac"), MAC = os_enum("Mac", os_category.MAC, "mac"),
WINDOWS = os_enum("Windows", os_category.WINDOWS, "win"), WINDOWS = os_enum("Windows", os_category.WINDOWS, "win"),
...@@ -107,6 +109,8 @@ build_recipe( ...@@ -107,6 +109,8 @@ build_recipe(
) )
def get_os_from_name(name): def get_os_from_name(name):
if name.startswith("android"):
return os.ANDROID
if name.startswith("linux"): if name.startswith("linux"):
return os.LINUX return os.LINUX
if name.startswith("win"): if name.startswith("win"):
...@@ -116,28 +120,33 @@ def get_os_from_name(name): ...@@ -116,28 +120,33 @@ def get_os_from_name(name):
return os.MAC return os.MAC
# Adds both the CI and Try standalone builders. # Adds both the CI and Try standalone builders.
def angle_standalone_builder(name, clang, debug, cpu, uwp = False, trace_tests = False): def angle_standalone_builder(name, debug, cpu, toolchain = "clang", uwp = False, trace_tests = False):
properties = { properties = {
"builder_group": "angle", "builder_group": "angle",
} }
os = get_os_from_name(name) config_os = get_os_from_name(name)
dimensions = {} dimensions = {}
dimensions["os"] = os.dimension dimensions["os"] = config_os.dimension
goma_props = {} goma_props = {}
goma_props.update(_GOMA_RBE_PROD) goma_props.update(_GOMA_RBE_PROD)
if os.category in _DEFAULT_BUILDERLESS_OS_CATEGORIES: if config_os.category in _DEFAULT_BUILDERLESS_OS_CATEGORIES:
dimensions["builderless"] = "1" dimensions["builderless"] = "1"
goma_props["enable_ats"] = True goma_props["enable_ats"] = True
properties["$build/goma"] = goma_props properties["$build/goma"] = goma_props
properties["platform"] = config_os.console_name
if not clang: properties["toolchain"] = toolchain
properties["clang"] = False
if trace_tests: if trace_tests:
properties["trace_tests"] = True properties["test_mode"] = "trace_tests"
elif toolchain == "gcc":
properties["test_mode"] = "checkout_only"
elif debug:
properties["test_mode"] = "compile_only"
else:
properties["test_mode"] = "compile_and_test"
luci.builder( luci.builder(
name = name, name = name,
...@@ -171,24 +180,17 @@ def angle_standalone_builder(name, clang, debug, cpu, uwp = False, trace_tests = ...@@ -171,24 +180,17 @@ def angle_standalone_builder(name, clang, debug, cpu, uwp = False, trace_tests =
config = "angle" config = "angle"
location_regexp = None location_regexp = None
if clang:
compiler = "clang"
elif os.category == os_category.WINDOWS:
compiler = "msvc"
else:
compiler = "gcc"
if uwp: if uwp:
os = "winuwp" os_name = "winuwp"
else: else:
os = os.console_name os_name = config_os.console_name
short_name = "dbg" if debug else "rel" short_name = "dbg" if debug else "rel"
luci.console_view_entry( luci.console_view_entry(
console_view = "ci", console_view = "ci",
builder = "ci/" + name, builder = "ci/" + name,
category = config + "|" + os + "|" + compiler + "|" + cpu, category = config + "|" + os_name + "|" + toolchain + "|" + cpu,
short_name = short_name, short_name = short_name,
) )
...@@ -197,8 +199,9 @@ def angle_standalone_builder(name, clang, debug, cpu, uwp = False, trace_tests = ...@@ -197,8 +199,9 @@ def angle_standalone_builder(name, clang, debug, cpu, uwp = False, trace_tests =
builder = "try/" + name, builder = "try/" + name,
) )
# Include all bots in the CQ by default except GCC configs. # Include all bots in the CQ by default except GCC and Android configs.
if compiler != "gcc": # TODO(jmadill): Add Android to CQ by default. http://anglebug.com/2344
if toolchain != "gcc" and config_os.category != os_category.ANDROID:
luci.cq_tryjob_verifier( luci.cq_tryjob_verifier(
cq_group = 'master', cq_group = 'master',
builder = "angle:try/" + name, builder = "angle:try/" + name,
...@@ -258,24 +261,28 @@ luci.gitiles_poller( ...@@ -258,24 +261,28 @@ luci.gitiles_poller(
) )
# name, clang, debug, cpu, uwp, trace_tests # name, clang, debug, cpu, uwp, trace_tests
angle_standalone_builder("linux-clang-dbg", clang = True, debug = True, cpu = "x64") angle_standalone_builder("android-arm-dbg", debug = True, cpu = "arm")
angle_standalone_builder("linux-clang-rel", clang = True, debug = False, cpu = "x64") angle_standalone_builder("android-arm-rel", debug = False, cpu = "arm")
angle_standalone_builder("linux-gcc-dbg", clang = False, debug = True, cpu = "x64") angle_standalone_builder("android-arm64-dbg", debug = True, cpu = "arm64")
angle_standalone_builder("linux-gcc-rel", clang = False, debug = False, cpu = "x64") angle_standalone_builder("android-arm64-rel", debug = False, cpu = "arm64")
angle_standalone_builder("linux-trace-rel", clang = True, debug = False, cpu = "x64", trace_tests = True) angle_standalone_builder("linux-clang-dbg", debug = True, cpu = "x64")
angle_standalone_builder("mac-dbg", clang = True, debug = True, cpu = "x64") angle_standalone_builder("linux-clang-rel", debug = False, cpu = "x64")
angle_standalone_builder("mac-rel", clang = True, debug = False, cpu = "x64") angle_standalone_builder("linux-gcc-dbg", debug = True, cpu = "x64", toolchain = "gcc")
angle_standalone_builder("win-clang-x86-dbg", clang = True, debug = True, cpu = "x86") angle_standalone_builder("linux-gcc-rel", debug = False, cpu = "x64", toolchain = "gcc")
angle_standalone_builder("win-clang-x86-rel", clang = True, debug = False, cpu = "x86") angle_standalone_builder("linux-trace-rel", debug = False, cpu = "x64", trace_tests = True)
angle_standalone_builder("win-clang-x64-dbg", clang = True, debug = True, cpu = "x64") angle_standalone_builder("mac-dbg", debug = True, cpu = "x64")
angle_standalone_builder("win-clang-x64-rel", clang = True, debug = False, cpu = "x64") angle_standalone_builder("mac-rel", debug = False, cpu = "x64")
angle_standalone_builder("win-msvc-x86-dbg", clang = False, debug = True, cpu = "x86") angle_standalone_builder("win-clang-x86-dbg", debug = True, cpu = "x86")
angle_standalone_builder("win-msvc-x86-rel", clang = False, debug = False, cpu = "x86") angle_standalone_builder("win-clang-x86-rel", debug = False, cpu = "x86")
angle_standalone_builder("win-msvc-x64-dbg", clang = False, debug = True, cpu = "x64") angle_standalone_builder("win-clang-x64-dbg", debug = True, cpu = "x64")
angle_standalone_builder("win-msvc-x64-rel", clang = False, debug = False, cpu = "x64") angle_standalone_builder("win-clang-x64-rel", debug = False, cpu = "x64")
angle_standalone_builder("win-trace-rel", clang = True, debug = False, cpu = "x64", trace_tests = True) angle_standalone_builder("win-msvc-x86-dbg", debug = True, cpu = "x86", toolchain = "msvc")
angle_standalone_builder("winuwp-x64-dbg", clang = False, debug = True, cpu = "x64", uwp = True) angle_standalone_builder("win-msvc-x86-rel", debug = False, cpu = "x86", toolchain = "msvc")
angle_standalone_builder("winuwp-x64-rel", clang = False, debug = False, cpu = "x64", uwp = True) angle_standalone_builder("win-msvc-x64-dbg", debug = True, cpu = "x64", toolchain = "msvc")
angle_standalone_builder("win-msvc-x64-rel", debug = False, cpu = "x64", toolchain = "msvc")
angle_standalone_builder("win-trace-rel", debug = False, cpu = "x64", trace_tests = True)
angle_standalone_builder("winuwp-x64-dbg", debug = True, cpu = "x64", toolchain = "msvc", uwp = True)
angle_standalone_builder("winuwp-x64-rel", debug = False, cpu = "x64", toolchain = "msvc", uwp = True)
# Views # Views
......
...@@ -14,6 +14,10 @@ ...@@ -14,6 +14,10 @@
# this dict to look up which config to use for a given bot. # this dict to look up which config to use for a given bot.
'builder_groups': { 'builder_groups': {
'angle': { 'angle': {
'android-arm-dbg': 'angle_goma_android_arm_debug_bot',
'android-arm-rel': 'angle_goma_android_arm_release_bot',
'android-arm64-dbg': 'angle_goma_android_arm64_debug_bot',
'android-arm64-rel': 'angle_goma_android_arm64_release_bot',
'linux-clang-dbg': 'angle_goma_debug_bot', 'linux-clang-dbg': 'angle_goma_debug_bot',
'linux-clang-rel': 'angle_goma_release_bot', 'linux-clang-rel': 'angle_goma_release_bot',
'linux-gcc-dbg': 'angle_non_clang_debug_bot', 'linux-gcc-dbg': 'angle_non_clang_debug_bot',
...@@ -39,6 +43,10 @@ ...@@ -39,6 +43,10 @@
# is not necessarily so (i.e., we might have mac, win, and linux # is not necessarily so (i.e., we might have mac, win, and linux
# bots all using the 'release_bot' config). # bots all using the 'release_bot' config).
'configs': { 'configs': {
'angle_goma_android_arm_debug_bot': ['angle', 'goma', 'android', 'arm', 'debug'],
'angle_goma_android_arm_release_bot': ['angle', 'goma', 'android', 'arm', 'release'],
'angle_goma_android_arm64_debug_bot': ['angle', 'goma', 'android', 'arm64', 'debug'],
'angle_goma_android_arm64_release_bot': ['angle', 'goma', 'android', 'arm64', 'release'],
'angle_goma_debug_bot': ['angle', 'goma', 'debug'], 'angle_goma_debug_bot': ['angle', 'goma', 'debug'],
'angle_goma_release_bot': ['angle', 'goma', 'release'], 'angle_goma_release_bot': ['angle', 'goma', 'release'],
'angle_goma_x86_debug_bot': ['angle', 'goma', 'x86', 'debug'], 'angle_goma_x86_debug_bot': ['angle', 'goma', 'x86', 'debug'],
...@@ -54,26 +62,35 @@ ...@@ -54,26 +62,35 @@
# This is a dict mapping a given 'mixin' name to a dict of settings that # This is a dict mapping a given 'mixin' name to a dict of settings that
# mb should use. See //tools/mb/docs/user_guide.md for more information. # mb should use. See //tools/mb/docs/user_guide.md for more information.
'mixins': { 'mixins': {
'android': {
'gn_args': 'target_os="android"',
},
'angle': { 'angle': {
'gn_args': 'build_angle_gles1_conform_tests=true build_angle_trace_perf_tests=true is_component_build=false' 'gn_args': 'build_angle_gles1_conform_tests=true build_angle_trace_perf_tests=true is_component_build=false',
},
'arm': {
'gn_args': 'target_cpu="arm"',
},
'arm64': {
'gn_args': 'target_cpu="arm64"',
}, },
'debug': { 'debug': {
'gn_args': 'is_debug=true', 'gn_args': 'is_debug=true',
}, },
'goma': { 'goma': {
'gn_args': 'use_goma=true' 'gn_args': 'use_goma=true',
}, },
'non_clang': { 'non_clang': {
'gn_args': 'is_clang=false' 'gn_args': 'is_clang=false',
}, },
'release': { 'release': {
'gn_args': 'is_debug=false' 'gn_args': 'is_debug=false',
}, },
'winuwp': { 'winuwp': {
'gn_args': 'target_os="winuwp"' 'gn_args': 'target_os="winuwp"',
}, },
'x86': { 'x86': {
'gn_args': 'target_cpu="x86"' 'gn_args': 'target_cpu="x86"',
}, },
}, },
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment