diff options
author | Mike Klein <mtklein@chromium.org> | 2016-11-07 15:38:48 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2016-11-07 21:20:18 +0000 |
commit | 6749af40739fab375d87951c5b0fb51a195e1f8c (patch) | |
tree | ae34d80f1218aacf34f8d7349ceb1bfb8c2b2faa /infra | |
parent | 7e8f80a08444f534376a25d45194c92f948c9594 (diff) |
Add GN iOS builder.
This gets up a bot to build for iOS via GN as much as we can right now. This is unlikely to be the long term structure of the iOS bots... by the time we add Test/Perf bots we'll likely need to have a gn_ios_flavor.py. But for now, this keeps the GN iOS build such as it is working.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4457
Change-Id: Ideb10ae3f4ab5530ad153237a343dd5c0e7dd02f
Reviewed-on: https://skia-review.googlesource.com/4457
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Eric Boren <borenet@google.com>
Diffstat (limited to 'infra')
-rw-r--r-- | infra/bots/gen_tasks.go | 1 | ||||
-rw-r--r-- | infra/bots/recipe_modules/flavor/api.py | 2 | ||||
-rw-r--r-- | infra/bots/recipe_modules/flavor/gn_flavor.py | 1 | ||||
-rw-r--r-- | infra/bots/recipes/swarm_compile.expected/Build-Mac-Clang-arm64-Debug-GN_iOS.json | 157 | ||||
-rw-r--r-- | infra/bots/recipes/swarm_compile.py | 1 | ||||
-rw-r--r-- | infra/bots/tasks.json | 33 |
6 files changed, 193 insertions, 2 deletions
diff --git a/infra/bots/gen_tasks.go b/infra/bots/gen_tasks.go index 2ad8e54291..846b4c4d1c 100644 --- a/infra/bots/gen_tasks.go +++ b/infra/bots/gen_tasks.go @@ -37,6 +37,7 @@ var ( // Top-level list of all jobs to run at each commit. JOBS = []string{ + "Build-Mac-Clang-arm64-Debug-GN_iOS", "Build-Ubuntu-GCC-x86_64-Release-GN", "Build-Win-Clang-arm64-Release-GN_Android", "Perf-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-GN", diff --git a/infra/bots/recipe_modules/flavor/api.py b/infra/bots/recipe_modules/flavor/api.py index 08b9972dc8..7d4c5b8805 100644 --- a/infra/bots/recipe_modules/flavor/api.py +++ b/infra/bots/recipe_modules/flavor/api.py @@ -31,7 +31,7 @@ def is_android(builder_cfg): def is_ios(builder_cfg): - return ('iOS' in builder_cfg.get('extra_config', '') or + return ('iOS' == builder_cfg.get('extra_config', '') or builder_cfg.get('os') == 'iOS') diff --git a/infra/bots/recipe_modules/flavor/gn_flavor.py b/infra/bots/recipe_modules/flavor/gn_flavor.py index a019de2357..af400d9045 100644 --- a/infra/bots/recipe_modules/flavor/gn_flavor.py +++ b/infra/bots/recipe_modules/flavor/gn_flavor.py @@ -92,6 +92,7 @@ class GNFlavorUtils(default_flavor.DefaultFlavorUtils): 'sanitize': extra_config if 'SAN' in extra_config else '', 'skia_vulkan_sdk': win_vulkan_sdk if extra_config == 'Vulkan' else '', 'target_cpu': 'x86' if target_arch == 'x86' else '', + 'target_os': 'ios' if 'iOS' in extra_config else '', 'windk': win_toolchain if 'Win' in os else '', }.iteritems(): if v: diff --git a/infra/bots/recipes/swarm_compile.expected/Build-Mac-Clang-arm64-Debug-GN_iOS.json b/infra/bots/recipes/swarm_compile.expected/Build-Mac-Clang-arm64-Debug-GN_iOS.json new file mode 100644 index 0000000000..368e930f1a --- /dev/null +++ b/infra/bots/recipes/swarm_compile.expected/Build-Mac-Clang-arm64-Debug-GN_iOS.json @@ -0,0 +1,157 @@ +[ + { + "cmd": [ + "python", + "-u", + "\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n", + "[CUSTOM_/_B_WORK]", + "511" + ], + "name": "makedirs checkout_path", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@python.inline@@@@", + "@@@STEP_LOG_LINE@python.inline@import sys, os@@@", + "@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@", + "@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@", + "@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@", + "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@", + "@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@", + "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", + "@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py", + "--spec", + "cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]", + "--patch_root", + "skia", + "--revision_mapping_file", + "{\"skia\": \"got_revision\"}", + "--git-cache-dir", + "[CUSTOM_/_B_CACHE]", + "--output_json", + "/path/to/tmp/json", + "--revision", + "skia@abc123", + "--output_manifest" + ], + "cwd": "[CUSTOM_/_B_WORK]", + "env": { + "BUILDTYPE": "Debug", + "CHROME_HEADLESS": "1", + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]", + "SKIA_OUT": "[CUSTOM_/_B_WORK]/skia/out/Build-Mac-Clang-arm64-Debug-GN_iOS" + }, + "name": "bot_update", + "~followup_annotations": [ + "@@@STEP_TEXT@Some step text@@@", + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"did_run\": true, @@@", + "@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@", + "@@@STEP_LOG_LINE@json.output@ \"skia\": \"abc123\"@@@", + "@@@STEP_LOG_LINE@json.output@ }, @@@", + "@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@", + "@@@STEP_LOG_LINE@json.output@ \"skia\": {@@@", + "@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/skia.git\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@ }, @@@", + "@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false, @@@", + "@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"skia\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@", + "@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9046e2e693bb92a76e972b694580e5d17ad10748\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"got_revision_cp\": \"refs/heads/master@{#164710}\"@@@", + "@@@STEP_LOG_LINE@json.output@ }, @@@", + "@@@STEP_LOG_LINE@json.output@ \"root\": \"skia\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@", + "@@@SET_BUILD_PROPERTY@got_revision@\"9046e2e693bb92a76e972b694580e5d17ad10748\"@@@", + "@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#164710}\"@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "[CUSTOM_/_B_WORK]/skia/bin/fetch-gn" + ], + "cwd": "[CUSTOM_/_B_WORK]/skia", + "env": { + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]" + }, + "name": "fetch-gn" + }, + { + "cmd": [ + "gn", + "gen", + "[CUSTOM_/_B_WORK]/skia/out/Build-Mac-Clang-arm64-Debug-GN_iOS/Debug", + "--args=cc=\"clang\" cxx=\"clang++\" extra_cflags=[\"-O1\"] target_os=\"ios\"" + ], + "cwd": "[CUSTOM_/_B_WORK]/skia", + "env": { + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]" + }, + "name": "gn gen" + }, + { + "cmd": [ + "ninja", + "-C", + "[CUSTOM_/_B_WORK]/skia/out/Build-Mac-Clang-arm64-Debug-GN_iOS/Debug" + ], + "cwd": "[CUSTOM_/_B_WORK]/skia", + "env": { + "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]" + }, + "name": "ninja" + }, + { + "cmd": [ + "python", + "-u", + "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n", + "[CUSTOM_/_B_WORK]/skia/out/Build-Mac-Clang-arm64-Debug-GN_iOS/Debug", + "[CUSTOM_[SWARM_OUT_DIR]]/out/Debug" + ], + "name": "copy build products", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@python.inline@import errno@@@", + "@@@STEP_LOG_LINE@python.inline@import glob@@@", + "@@@STEP_LOG_LINE@python.inline@import os@@@", + "@@@STEP_LOG_LINE@python.inline@import shutil@@@", + "@@@STEP_LOG_LINE@python.inline@import sys@@@", + "@@@STEP_LOG_LINE@python.inline@@@@", + "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@", + "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@", + "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@", + "@@@STEP_LOG_LINE@python.inline@@@@", + "@@@STEP_LOG_LINE@python.inline@try:@@@", + "@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@", + "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@", + "@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@", + "@@@STEP_LOG_LINE@python.inline@ raise@@@", + "@@@STEP_LOG_LINE@python.inline@@@@", + "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@", + "@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@", + "@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@", + "@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@", + "@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@", + "@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@", + "@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@", + "@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@", + "@@@STEP_LOG_END@python.inline@@@" + ] + }, + { + "name": "$result", + "recipe_result": null, + "status_code": 0 + } +]
\ No newline at end of file diff --git a/infra/bots/recipes/swarm_compile.py b/infra/bots/recipes/swarm_compile.py index fea50c767e..1e1603135e 100644 --- a/infra/bots/recipes/swarm_compile.py +++ b/infra/bots/recipes/swarm_compile.py @@ -23,6 +23,7 @@ TEST_BUILDERS = { 'client.skia.compile': { 'skiabot-linux-swarm-000': [ 'Build-Mac-Clang-Arm7-Release-iOS', + 'Build-Mac-Clang-arm64-Debug-GN_iOS', 'Build-Mac-Clang-mipsel-Debug-GN_Android', 'Build-Mac-Clang-x86_64-Debug-CommandBuffer', 'Build-Mac-Clang-x86_64-Release-GN', diff --git a/infra/bots/tasks.json b/infra/bots/tasks.json index 6ff2106a88..d2af81691e 100644 --- a/infra/bots/tasks.json +++ b/infra/bots/tasks.json @@ -1,5 +1,11 @@ { "jobs": { + "Build-Mac-Clang-arm64-Debug-GN_iOS": { + "priority": 0.8, + "tasks": [ + "Build-Mac-Clang-arm64-Debug-GN_iOS" + ] + }, "Build-Ubuntu-GCC-x86_64-Release-GN": { "priority": 0.8, "tasks": [ @@ -38,6 +44,31 @@ } }, "tasks": { + "Build-Mac-Clang-arm64-Debug-GN_iOS": { + "dimensions": [ + "gpu:none", + "os:Mac", + "pool:Skia" + ], + "extra_args": [ + "--workdir", + "../../..", + "swarm_compile", + "repository=<(REPO)", + "buildername=Build-Mac-Clang-arm64-Debug-GN_iOS", + "mastername=fake-master", + "buildnumber=2", + "slavename=fake-buildslave", + "nobuildbot=True", + "swarm_out_dir=${ISOLATED_OUTDIR}", + "revision=<(REVISION)", + "patch_storage=<(PATCH_STORAGE)", + "patch_issue=<(ISSUE)", + "patch_set=<(PATCHSET)" + ], + "isolate": "compile_skia.isolate", + "priority": 0.8 + }, "Build-Ubuntu-Clang-arm-Release-GN_Android": { "cipd_packages": [ { @@ -388,4 +419,4 @@ "priority": 0.8 } } -} +}
\ No newline at end of file |