Support cross-compiling GN for other targets This change extends the recipe used by builders with support for cross-compiling GN to different platforms beyond the host one, and sets up cross compilation for Linux as an example. Change-Id: I0d9aa1a104b14842c875d1a8d9082b6949e47e14 Reviewed-on: https://gn-review.googlesource.com/c/gn/+/3760 Reviewed-by: Scott Graham <scottmg@chromium.org> Reviewed-by: Dirk Pranke <dpranke@google.com> Commit-Queue: Petr Hosek <phosek@google.com>
diff --git a/infra/README.recipes.md b/infra/README.recipes.md index 128ecb7..869f775 100644 --- a/infra/README.recipes.md +++ b/infra/README.recipes.md
@@ -4,11 +4,13 @@ **[Recipe Modules](#Recipe-Modules)** * [macos_sdk](#recipe_modules-macos_sdk) — The `macos_sdk` module provides safe functions to access a semi-hermetic XCode installation. + * [target](#recipe_modules-target) * [windows_sdk](#recipe_modules-windows_sdk) **[Recipes](#Recipes)** * [gn](#recipes-gn) — Recipe for building GN. * [macos_sdk:examples/full](#recipes-macos_sdk_examples_full) + * [target:examples/full](#recipes-target_examples_full) * [windows_sdk:examples/full](#recipes-windows_sdk_examples_full) ## Recipe Modules @@ -58,6 +60,13 @@ Raises: StepFailure or InfraFailure. +### *recipe_modules* / [target](/infra/recipe_modules/target) + +[DEPS](/infra/recipe_modules/target/__init__.py#5): [recipe\_engine/platform][recipe_engine/recipe_modules/platform] + +#### **class [TargetApi](/infra/recipe_modules/target/api.py#82)([RecipeApi][recipe_engine/wkt/RecipeApi]):** + +  **@property**<br>— **def [host](/infra/recipe_modules/target/api.py#87)(self):** ### *recipe_modules* / [windows\_sdk](/infra/recipe_modules/windows_sdk) [DEPS](/infra/recipe_modules/windows_sdk/__init__.py#5): [recipe\_engine/cipd][recipe_engine/recipe_modules/cipd], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/step][recipe_engine/recipe_modules/step] @@ -78,16 +87,21 @@ ### *recipes* / [gn](/infra/recipes/gn.py) -[DEPS](/infra/recipes/gn.py#8): [macos\_sdk](#recipe_modules-macos_sdk), [windows\_sdk](#recipe_modules-windows_sdk), [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket], [recipe\_engine/cipd][recipe_engine/recipe_modules/cipd], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step] +[DEPS](/infra/recipes/gn.py#8): [macos\_sdk](#recipe_modules-macos_sdk), [target](#recipe_modules-target), [windows\_sdk](#recipe_modules-windows_sdk), [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket], [recipe\_engine/cipd][recipe_engine/recipe_modules/cipd], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step] Recipe for building GN. -— **def [RunSteps](/infra/recipes/gn.py#29)(api, repository):** +— **def [RunSteps](/infra/recipes/gn.py#30)(api, repository):** ### *recipes* / [macos\_sdk:examples/full](/infra/recipe_modules/macos_sdk/examples/full.py) [DEPS](/infra/recipe_modules/macos_sdk/examples/full.py#5): [macos\_sdk](#recipe_modules-macos_sdk), [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step] — **def [RunSteps](/infra/recipe_modules/macos_sdk/examples/full.py#13)(api):** +### *recipes* / [target:examples/full](/infra/recipe_modules/target/examples/full.py) + +[DEPS](/infra/recipe_modules/target/examples/full.py#5): [target](#recipe_modules-target), [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step] + +— **def [RunSteps](/infra/recipe_modules/target/examples/full.py#13)(api):** ### *recipes* / [windows\_sdk:examples/full](/infra/recipe_modules/windows_sdk/examples/full.py) [DEPS](/infra/recipe_modules/windows_sdk/examples/full.py#5): [windows\_sdk](#recipe_modules-windows_sdk), [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step]
diff --git a/infra/recipe_modules/target/__init__.py b/infra/recipe_modules/target/__init__.py new file mode 100644 index 0000000..1239fd2 --- /dev/null +++ b/infra/recipe_modules/target/__init__.py
@@ -0,0 +1,7 @@ +# Copyright 2018 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +DEPS = [ + 'recipe_engine/platform', +]
diff --git a/infra/recipe_modules/target/api.py b/infra/recipe_modules/target/api.py new file mode 100644 index 0000000..f128707 --- /dev/null +++ b/infra/recipe_modules/target/api.py
@@ -0,0 +1,98 @@ +# Copyright 2018 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +from recipe_engine import recipe_api + + +PLATFORM_TO_TRIPLE = { + 'fuchsia-amd64': 'x86_64-fuchsia', + 'fuchsia-arm64': 'aarch64-fuchsia', + 'linux-amd64': 'x86_64-linux-gnu', + 'linux-arm64': 'aarch64-linux-gnu', + 'mac-amd64': 'x86_64-apple-darwin', + 'mac-arm64': 'aarch64-apple-darwin', +} +PLATFORMS = PLATFORM_TO_TRIPLE.keys() + + +class Target(object): + + def __init__(self, api, os, arch): + self.m = api + self._os = os + self._arch = arch + + @property + def is_win(self): + """Returns True iff the target platform is Windows.""" + return self.os == 'windows' + + @property + def is_mac(self): + """Returns True iff the target platform is macOS.""" + return self.os == 'mac' + + @property + def is_linux(self): + """Returns True iff the target platform is Linux.""" + return self.os == 'linux' + + @property + def is_host(self): + """Returns True iff the target platform is host.""" + return self == self.m.host + + @property + def os(self): + """Returns the target os name which will be in: + * windows + * mac + * linux + """ + return self._os + + @property + def arch(self): + """Returns the current CPU architecture.""" + return self._arch + + @property + def platform(self): + """Returns the target platform in the <os>-<arch> format.""" + return '%s-%s' % (self.os, self.arch) + + @property + def triple(self): + """Returns the target triple.""" + return PLATFORM_TO_TRIPLE[self.platform] + + def __str__(self): + return self.platform + + def __eq__(self, other): + if isinstance(other, Target): + return self._os == other._os and self._arch == other._arch + return False + + def __ne__(self, other): + return not self.__eq__(other) + + +class TargetApi(recipe_api.RecipeApi): + + def __call__(self, platform): + return Target(self, *platform.split('-', 2)) + + @property + def host(self): + return Target(self, self.m.platform.name.replace('win', 'windows'), { + 'intel': { + 32: '386', + 64: 'amd64', + }, + 'arm': { + 32: 'armv6', + 64: 'arm64', + }, + }[self.m.platform.arch][self.m.platform.bits])
diff --git a/infra/recipe_modules/target/examples/full.expected/linux.json b/infra/recipe_modules/target/examples/full.expected/linux.json new file mode 100644 index 0000000..947f5d2 --- /dev/null +++ b/infra/recipe_modules/target/examples/full.expected/linux.json
@@ -0,0 +1,22 @@ +[ + { + "cmd": [], + "name": "platform things", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@name@fuchsia@@@", + "@@@STEP_LOG_END@name@@@", + "@@@STEP_LOG_LINE@arch@arm64@@@", + "@@@STEP_LOG_END@arch@@@", + "@@@STEP_LOG_LINE@platform@fuchsia-arm64@@@", + "@@@STEP_LOG_END@platform@@@", + "@@@STEP_LOG_LINE@triple@aarch64-fuchsia@@@", + "@@@STEP_LOG_END@triple@@@", + "@@@STEP_LOG_LINE@string@fuchsia-arm64@@@", + "@@@STEP_LOG_END@string@@@" + ] + }, + { + "jsonResult": null, + "name": "$result" + } +] \ No newline at end of file
diff --git a/infra/recipe_modules/target/examples/full.expected/mac.json b/infra/recipe_modules/target/examples/full.expected/mac.json new file mode 100644 index 0000000..947f5d2 --- /dev/null +++ b/infra/recipe_modules/target/examples/full.expected/mac.json
@@ -0,0 +1,22 @@ +[ + { + "cmd": [], + "name": "platform things", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@name@fuchsia@@@", + "@@@STEP_LOG_END@name@@@", + "@@@STEP_LOG_LINE@arch@arm64@@@", + "@@@STEP_LOG_END@arch@@@", + "@@@STEP_LOG_LINE@platform@fuchsia-arm64@@@", + "@@@STEP_LOG_END@platform@@@", + "@@@STEP_LOG_LINE@triple@aarch64-fuchsia@@@", + "@@@STEP_LOG_END@triple@@@", + "@@@STEP_LOG_LINE@string@fuchsia-arm64@@@", + "@@@STEP_LOG_END@string@@@" + ] + }, + { + "jsonResult": null, + "name": "$result" + } +] \ No newline at end of file
diff --git a/infra/recipe_modules/target/examples/full.expected/win.json b/infra/recipe_modules/target/examples/full.expected/win.json new file mode 100644 index 0000000..947f5d2 --- /dev/null +++ b/infra/recipe_modules/target/examples/full.expected/win.json
@@ -0,0 +1,22 @@ +[ + { + "cmd": [], + "name": "platform things", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@name@fuchsia@@@", + "@@@STEP_LOG_END@name@@@", + "@@@STEP_LOG_LINE@arch@arm64@@@", + "@@@STEP_LOG_END@arch@@@", + "@@@STEP_LOG_LINE@platform@fuchsia-arm64@@@", + "@@@STEP_LOG_END@platform@@@", + "@@@STEP_LOG_LINE@triple@aarch64-fuchsia@@@", + "@@@STEP_LOG_END@triple@@@", + "@@@STEP_LOG_LINE@string@fuchsia-arm64@@@", + "@@@STEP_LOG_END@string@@@" + ] + }, + { + "jsonResult": null, + "name": "$result" + } +] \ No newline at end of file
diff --git a/infra/recipe_modules/target/examples/full.py b/infra/recipe_modules/target/examples/full.py new file mode 100644 index 0000000..c47c86a --- /dev/null +++ b/infra/recipe_modules/target/examples/full.py
@@ -0,0 +1,31 @@ +# Copyright 2018 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +DEPS = [ + 'target', + 'recipe_engine/platform', + 'recipe_engine/properties', + 'recipe_engine/step', +] + + +def RunSteps(api): + target = api.target('fuchsia-arm64') + assert not target.is_win + assert not target.is_linux + assert not target.is_mac + assert api.target.host.is_host + assert target != api.target.host + assert target != 'foo' + step_result = api.step('platform things', cmd=None) + step_result.presentation.logs['name'] = [target.os] + step_result.presentation.logs['arch'] = [target.arch] + step_result.presentation.logs['platform'] = [target.platform] + step_result.presentation.logs['triple'] = [target.triple] + step_result.presentation.logs['string'] = [str(target)] + + +def GenTests(api): + for platform in ('linux', 'mac', 'win'): + yield api.test(platform) + api.platform.name(platform)
diff --git a/infra/recipes/gn.expected/ci_linux.json b/infra/recipes/gn.expected/ci_linux.json index 620f455..4a301f2 100644 --- a/infra/recipes/gn.expected/ci_linux.json +++ b/infra/recipes/gn.expected/ci_linux.json
@@ -45,12 +45,26 @@ }, { "cmd": [ + "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]/gn", + "infra_step": true, + "name": "git.rev-parse", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ "cipd", "ensure", "-root", "[START_DIR]/cipd", "-ensure-file", - "infra/ninja/${platform} version:1.8.2\nfuchsia/clang/${platform} git_revision:b920a7f65b13237dc4d5b2b836b29a954fff440a\n@Subdir sysroot\nfuchsia/sysroot/${platform} git_revision:a28dfa20af063e5ca00634024c85732e20220419", + "infra/ninja/${platform} version:1.8.2\nfuchsia/third_party/clang/${platform} integration\n@Subdir sysroot\nfuchsia/third_party/sysroot/linux git_revision:c912d089c3d46d8982fdef76a50514cca79b6132", "-json-output", "/path/to/tmp/json" ], @@ -61,8 +75,8 @@ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", "@@@STEP_LOG_LINE@json.output@ \"\": [@@@", "@@@STEP_LOG_LINE@json.output@ {@@@", - "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:b92\", @@@", - "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/clang/resolved-platform\"@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-integration-----\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/third_party/clang/resolved-platform\"@@@", "@@@STEP_LOG_LINE@json.output@ }, @@@", "@@@STEP_LOG_LINE@json.output@ {@@@", "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-version:1.8.2---\", @@@", @@ -71,8 +85,8 @@ "@@@STEP_LOG_LINE@json.output@ ], @@@", "@@@STEP_LOG_LINE@json.output@ \"sysroot\": [@@@", "@@@STEP_LOG_LINE@json.output@ {@@@", - "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:a28\", @@@", - "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/sysroot/resolved-platform\"@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:c91\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/third_party/sysroot/linux\"@@@", "@@@STEP_LOG_LINE@json.output@ }@@@", "@@@STEP_LOG_LINE@json.output@ ]@@@", "@@@STEP_LOG_LINE@json.output@ }@@@", @@ -86,7 +100,7 @@ }, { "cmd": [], - "name": "debug.build", + "name": "debug.linux-amd64", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" ] @@ -102,11 +116,11 @@ "env": { "AR": "[START_DIR]/cipd/bin/llvm-ar", "CC": "[START_DIR]/cipd/bin/clang", - "CFLAGS": "--sysroot=[START_DIR]/cipd/sysroot", + "CFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot", "CXX": "[START_DIR]/cipd/bin/clang++", - "LDFLAGS": "--sysroot=[START_DIR]/cipd/sysroot" + "LDFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot -static-libstdc++" }, - "name": "debug.build.generate", + "name": "debug.linux-amd64.generate", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -121,11 +135,11 @@ "env": { "AR": "[START_DIR]/cipd/bin/llvm-ar", "CC": "[START_DIR]/cipd/bin/clang", - "CFLAGS": "--sysroot=[START_DIR]/cipd/sysroot", + "CFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot", "CXX": "[START_DIR]/cipd/bin/clang++", - "LDFLAGS": "--sysroot=[START_DIR]/cipd/sysroot" + "LDFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot -static-libstdc++" }, - "name": "debug.build.ninja", + "name": "debug.linux-amd64.build", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -134,9 +148,9 @@ "cmd": [ "[START_DIR]/gn/out/gn_unittests" ], - "name": "debug.test", + "name": "debug.linux-amd64.test", "~followup_annotations": [ - "@@@STEP_NEST_LEVEL@1@@@" + "@@@STEP_NEST_LEVEL@2@@@" ] }, { @@ -145,7 +159,7 @@ }, { "cmd": [], - "name": "release.build", + "name": "release.linux-amd64", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" ] @@ -162,11 +176,11 @@ "env": { "AR": "[START_DIR]/cipd/bin/llvm-ar", "CC": "[START_DIR]/cipd/bin/clang", - "CFLAGS": "--sysroot=[START_DIR]/cipd/sysroot", + "CFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot", "CXX": "[START_DIR]/cipd/bin/clang++", - "LDFLAGS": "--sysroot=[START_DIR]/cipd/sysroot" + "LDFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot -static-libstdc++" }, - "name": "release.build.generate", + "name": "release.linux-amd64.generate", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -181,11 +195,11 @@ "env": { "AR": "[START_DIR]/cipd/bin/llvm-ar", "CC": "[START_DIR]/cipd/bin/clang", - "CFLAGS": "--sysroot=[START_DIR]/cipd/sysroot", + "CFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot", "CXX": "[START_DIR]/cipd/bin/clang++", - "LDFLAGS": "--sysroot=[START_DIR]/cipd/sysroot" + "LDFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot -static-libstdc++" }, - "name": "release.build.ninja", + "name": "release.linux-amd64.build", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -194,9 +208,16 @@ "cmd": [ "[START_DIR]/gn/out/gn_unittests" ], - "name": "release.test", + "name": "release.linux-amd64.test", "~followup_annotations": [ - "@@@STEP_NEST_LEVEL@1@@@" + "@@@STEP_NEST_LEVEL@2@@@" + ] + }, + { + "cmd": [], + "name": "release.linux-amd64.upload", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@2@@@" ] }, { @@ -204,7 +225,7 @@ "cipd", "pkg-build", "-pkg-def", - "{\"data\": [{\"file\": \"gn\"}, {\"version_file\": \".versions/gn.cipd_version\"}], \"install_mode\": \"copy\", \"package\": \"gn/gn/${platform}\", \"root\": \"[START_DIR]/gn/out\"}", + "{\"data\": [{\"file\": \"gn\"}, {\"version_file\": \".versions/gn.cipd_version\"}], \"install_mode\": \"copy\", \"package\": \"gn/gn/linux-amd64\", \"root\": \"[START_DIR]/gn/out\"}", "-out", "[CLEANUP]/gn.cipd", "-hash-algo", @@ -212,12 +233,92 @@ "-json-output", "/path/to/tmp/json" ], - "name": "build gn/gn/${platform}", + "name": "release.linux-amd64.upload.build gn/gn/linux-amd64", "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@3@@@", "@@@STEP_LOG_LINE@json.output@{@@@", "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"40-chars-fake-of-the-package-instance_id\", @@@", - "@@@STEP_LOG_LINE@json.output@ \"package\": \"gn/gn/resolved-platform\"@@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"gn/gn/linux-amd64\"@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [], + "name": "release.linux-arm64", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "[START_DIR]/gn/build/gen.py", + "--use-lto", + "--use-icf" + ], + "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CFLAGS": "--target=aarch64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "--target=aarch64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot -static-libstdc++" + }, + "name": "release.linux-arm64.generate", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@2@@@" + ] + }, + { + "cmd": [ + "[START_DIR]/cipd/ninja", + "-C", + "[START_DIR]/gn/out" + ], + "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CFLAGS": "--target=aarch64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "--target=aarch64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot -static-libstdc++" + }, + "name": "release.linux-arm64.build", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@2@@@" + ] + }, + { + "cmd": [], + "name": "release.linux-arm64.upload", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@2@@@" + ] + }, + { + "cmd": [ + "cipd", + "pkg-build", + "-pkg-def", + "{\"data\": [{\"file\": \"gn\"}, {\"version_file\": \".versions/gn.cipd_version\"}], \"install_mode\": \"copy\", \"package\": \"gn/gn/linux-arm64\", \"root\": \"[START_DIR]/gn/out\"}", + "-out", + "[CLEANUP]/gn.cipd", + "-hash-algo", + "sha256", + "-json-output", + "/path/to/tmp/json" + ], + "name": "release.linux-arm64.upload.build gn/gn/linux-arm64", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@3@@@", + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"40-chars-fake-of-the-package-instance_id\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"gn/gn/linux-arm64\"@@@", "@@@STEP_LOG_LINE@json.output@ }@@@", "@@@STEP_LOG_LINE@json.output@}@@@", "@@@STEP_LOG_END@json.output@@@"
diff --git a/infra/recipes/gn.expected/ci_mac.json b/infra/recipes/gn.expected/ci_mac.json index 6ff9fe9..707406d 100644 --- a/infra/recipes/gn.expected/ci_mac.json +++ b/infra/recipes/gn.expected/ci_mac.json
@@ -45,12 +45,26 @@ }, { "cmd": [ + "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]/gn", + "infra_step": true, + "name": "git.rev-parse", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ "cipd", "ensure", "-root", "[START_DIR]/cipd", "-ensure-file", - "infra/ninja/${platform} version:1.8.2\nfuchsia/clang/${platform} git_revision:b920a7f65b13237dc4d5b2b836b29a954fff440a", + "infra/ninja/${platform} version:1.8.2\nfuchsia/third_party/clang/${platform} integration", "-json-output", "/path/to/tmp/json" ], @@ -61,8 +75,8 @@ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", "@@@STEP_LOG_LINE@json.output@ \"\": [@@@", "@@@STEP_LOG_LINE@json.output@ {@@@", - "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:b92\", @@@", - "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/clang/resolved-platform\"@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-integration-----\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/third_party/clang/resolved-platform\"@@@", "@@@STEP_LOG_LINE@json.output@ }, @@@", "@@@STEP_LOG_LINE@json.output@ {@@@", "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-version:1.8.2---\", @@@", @@ -126,30 +140,31 @@ "name": "select XCode" }, { - "cmd": [ - "xcrun", - "--show-sdk-path" - ], - "name": "xcrun", - "stdout": "/path/to/tmp/", - "~followup_annotations": [ - "@@@STEP_LOG_LINE@raw_io.output[sdk-path]@/some/xcode/path@@@", - "@@@STEP_LOG_END@raw_io.output[sdk-path]@@@" - ] - }, - { "cmd": [], "name": "debug" }, { "cmd": [], - "name": "debug.build", + "name": "debug.mac-amd64", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" ] }, { "cmd": [ + "xcrun", + "--show-sdk-path" + ], + "name": "debug.mac-amd64.xcrun", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@2@@@", + "@@@STEP_LOG_LINE@raw_io.output[sdk-path]@/some/xcode/path@@@", + "@@@STEP_LOG_END@raw_io.output[sdk-path]@@@" + ] + }, + { + "cmd": [ "python", "-u", "[START_DIR]/gn/build/gen.py", @@ -159,11 +174,11 @@ "env": { "AR": "[START_DIR]/cipd/bin/llvm-ar", "CC": "[START_DIR]/cipd/bin/clang", - "CFLAGS": "--sysroot=/some/xcode/path", + "CFLAGS": "--target=x86_64-apple-darwin --sysroot=/some/xcode/path", "CXX": "[START_DIR]/cipd/bin/clang++", - "LDFLAGS": "--sysroot=/some/xcode/path -nostdlib++ [START_DIR]/cipd/lib/libc++.a" + "LDFLAGS": "--target=x86_64-apple-darwin --sysroot=/some/xcode/path -nostdlib++ [START_DIR]/cipd/lib/libc++.a" }, - "name": "debug.build.generate", + "name": "debug.mac-amd64.generate", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -178,11 +193,11 @@ "env": { "AR": "[START_DIR]/cipd/bin/llvm-ar", "CC": "[START_DIR]/cipd/bin/clang", - "CFLAGS": "--sysroot=/some/xcode/path", + "CFLAGS": "--target=x86_64-apple-darwin --sysroot=/some/xcode/path", "CXX": "[START_DIR]/cipd/bin/clang++", - "LDFLAGS": "--sysroot=/some/xcode/path -nostdlib++ [START_DIR]/cipd/lib/libc++.a" + "LDFLAGS": "--target=x86_64-apple-darwin --sysroot=/some/xcode/path -nostdlib++ [START_DIR]/cipd/lib/libc++.a" }, - "name": "debug.build.ninja", + "name": "debug.mac-amd64.build", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -191,9 +206,9 @@ "cmd": [ "[START_DIR]/gn/out/gn_unittests" ], - "name": "debug.test", + "name": "debug.mac-amd64.test", "~followup_annotations": [ - "@@@STEP_NEST_LEVEL@1@@@" + "@@@STEP_NEST_LEVEL@2@@@" ] }, { @@ -202,13 +217,26 @@ }, { "cmd": [], - "name": "release.build", + "name": "release.mac-amd64", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" ] }, { "cmd": [ + "xcrun", + "--show-sdk-path" + ], + "name": "release.mac-amd64.xcrun", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@2@@@", + "@@@STEP_LOG_LINE@raw_io.output[sdk-path]@/some/xcode/path@@@", + "@@@STEP_LOG_END@raw_io.output[sdk-path]@@@" + ] + }, + { + "cmd": [ "python", "-u", "[START_DIR]/gn/build/gen.py", @@ -219,11 +247,11 @@ "env": { "AR": "[START_DIR]/cipd/bin/llvm-ar", "CC": "[START_DIR]/cipd/bin/clang", - "CFLAGS": "--sysroot=/some/xcode/path", + "CFLAGS": "--target=x86_64-apple-darwin --sysroot=/some/xcode/path", "CXX": "[START_DIR]/cipd/bin/clang++", - "LDFLAGS": "--sysroot=/some/xcode/path -nostdlib++ [START_DIR]/cipd/lib/libc++.a" + "LDFLAGS": "--target=x86_64-apple-darwin --sysroot=/some/xcode/path -nostdlib++ [START_DIR]/cipd/lib/libc++.a" }, - "name": "release.build.generate", + "name": "release.mac-amd64.generate", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -238,11 +266,11 @@ "env": { "AR": "[START_DIR]/cipd/bin/llvm-ar", "CC": "[START_DIR]/cipd/bin/clang", - "CFLAGS": "--sysroot=/some/xcode/path", + "CFLAGS": "--target=x86_64-apple-darwin --sysroot=/some/xcode/path", "CXX": "[START_DIR]/cipd/bin/clang++", - "LDFLAGS": "--sysroot=/some/xcode/path -nostdlib++ [START_DIR]/cipd/lib/libc++.a" + "LDFLAGS": "--target=x86_64-apple-darwin --sysroot=/some/xcode/path -nostdlib++ [START_DIR]/cipd/lib/libc++.a" }, - "name": "release.build.ninja", + "name": "release.mac-amd64.build", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -251,9 +279,41 @@ "cmd": [ "[START_DIR]/gn/out/gn_unittests" ], - "name": "release.test", + "name": "release.mac-amd64.test", "~followup_annotations": [ - "@@@STEP_NEST_LEVEL@1@@@" + "@@@STEP_NEST_LEVEL@2@@@" + ] + }, + { + "cmd": [], + "name": "release.mac-amd64.upload", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@2@@@" + ] + }, + { + "cmd": [ + "cipd", + "pkg-build", + "-pkg-def", + "{\"data\": [{\"file\": \"gn\"}, {\"version_file\": \".versions/gn.cipd_version\"}], \"install_mode\": \"copy\", \"package\": \"gn/gn/mac-amd64\", \"root\": \"[START_DIR]/gn/out\"}", + "-out", + "[CLEANUP]/gn.cipd", + "-hash-algo", + "sha256", + "-json-output", + "/path/to/tmp/json" + ], + "name": "release.mac-amd64.upload.build gn/gn/mac-amd64", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@3@@@", + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"40-chars-fake-of-the-package-instance_id\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"gn/gn/mac-amd64\"@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@" ] }, { @@ -266,30 +326,6 @@ "name": "reset XCode" }, { - "cmd": [ - "cipd", - "pkg-build", - "-pkg-def", - "{\"data\": [{\"file\": \"gn\"}, {\"version_file\": \".versions/gn.cipd_version\"}], \"install_mode\": \"copy\", \"package\": \"gn/gn/${platform}\", \"root\": \"[START_DIR]/gn/out\"}", - "-out", - "[CLEANUP]/gn.cipd", - "-hash-algo", - "sha256", - "-json-output", - "/path/to/tmp/json" - ], - "name": "build gn/gn/${platform}", - "~followup_annotations": [ - "@@@STEP_LOG_LINE@json.output@{@@@", - "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", - "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"40-chars-fake-of-the-package-instance_id\", @@@", - "@@@STEP_LOG_LINE@json.output@ \"package\": \"gn/gn/resolved-platform\"@@@", - "@@@STEP_LOG_LINE@json.output@ }@@@", - "@@@STEP_LOG_LINE@json.output@}@@@", - "@@@STEP_LOG_END@json.output@@@" - ] - }, - { "jsonResult": null, "name": "$result" }
diff --git a/infra/recipes/gn.expected/ci_win.json b/infra/recipes/gn.expected/ci_win.json index 305acae..88e8edb 100644 --- a/infra/recipes/gn.expected/ci_win.json +++ b/infra/recipes/gn.expected/ci_win.json
@@ -45,6 +45,20 @@ }, { "cmd": [ + "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]\\gn", + "infra_step": true, + "name": "git.rev-parse", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ "cipd.bat", "ensure", "-root", @@ -135,7 +149,7 @@ }, { "cmd": [], - "name": "debug.build", + "name": "debug.windows-amd64", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" ] @@ -156,7 +170,7 @@ "[CACHE]\\windows_sdk\\win_sdk\\bin\\x64" ] }, - "name": "debug.build.generate", + "name": "debug.windows-amd64.generate", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -176,7 +190,7 @@ "[CACHE]\\windows_sdk\\win_sdk\\bin\\x64" ] }, - "name": "debug.build.ninja", + "name": "debug.windows-amd64.build", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -193,9 +207,9 @@ "[CACHE]\\windows_sdk\\win_sdk\\bin\\x64" ] }, - "name": "debug.test", + "name": "debug.windows-amd64.test", "~followup_annotations": [ - "@@@STEP_NEST_LEVEL@1@@@" + "@@@STEP_NEST_LEVEL@2@@@" ] }, { @@ -204,7 +218,7 @@ }, { "cmd": [], - "name": "release.build", + "name": "release.windows-amd64", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" ] @@ -226,7 +240,7 @@ "[CACHE]\\windows_sdk\\win_sdk\\bin\\x64" ] }, - "name": "release.build.generate", + "name": "release.windows-amd64.generate", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -246,7 +260,7 @@ "[CACHE]\\windows_sdk\\win_sdk\\bin\\x64" ] }, - "name": "release.build.ninja", + "name": "release.windows-amd64.build", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -263,9 +277,49 @@ "[CACHE]\\windows_sdk\\win_sdk\\bin\\x64" ] }, - "name": "release.test", + "name": "release.windows-amd64.test", "~followup_annotations": [ - "@@@STEP_NEST_LEVEL@1@@@" + "@@@STEP_NEST_LEVEL@2@@@" + ] + }, + { + "cmd": [], + "name": "release.windows-amd64.upload", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@2@@@" + ] + }, + { + "cmd": [ + "cipd.bat", + "pkg-build", + "-pkg-def", + "{\"data\": [{\"file\": \"gn.exe\"}, {\"version_file\": \".versions/gn.exe.cipd_version\"}], \"install_mode\": \"copy\", \"package\": \"gn/gn/windows-amd64\", \"root\": \"[START_DIR]\\\\gn\\\\out\"}", + "-out", + "[CLEANUP]\\gn.cipd", + "-hash-algo", + "sha256", + "-json-output", + "/path/to/tmp/json" + ], + "env": { + "VSINSTALLDIR": "[CACHE]\\windows_sdk" + }, + "env_prefixes": { + "PATH": [ + "[CACHE]\\windows_sdk\\win_sdk\\bin\\x64" + ] + }, + "name": "release.windows-amd64.upload.build gn/gn/windows-amd64", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@3@@@", + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"40-chars-fake-of-the-package-instance_id\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"gn/gn/windows-amd64\"@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@" ] }, { @@ -279,30 +333,6 @@ "name": "taskkill mspdbsrv" }, { - "cmd": [ - "cipd.bat", - "pkg-build", - "-pkg-def", - "{\"data\": [{\"file\": \"gn.exe\"}, {\"version_file\": \".versions/gn.exe.cipd_version\"}], \"install_mode\": \"copy\", \"package\": \"gn/gn/${platform}\", \"root\": \"[START_DIR]\\\\gn\\\\out\"}", - "-out", - "[CLEANUP]\\gn.cipd", - "-hash-algo", - "sha256", - "-json-output", - "/path/to/tmp/json" - ], - "name": "build gn/gn/${platform}", - "~followup_annotations": [ - "@@@STEP_LOG_LINE@json.output@{@@@", - "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", - "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"40-chars-fake-of-the-package-instance_id\", @@@", - "@@@STEP_LOG_LINE@json.output@ \"package\": \"gn/gn/resolved-platform\"@@@", - "@@@STEP_LOG_LINE@json.output@ }@@@", - "@@@STEP_LOG_LINE@json.output@}@@@", - "@@@STEP_LOG_END@json.output@@@" - ] - }, - { "jsonResult": null, "name": "$result" }
diff --git a/infra/recipes/gn.expected/cipd_exists.json b/infra/recipes/gn.expected/cipd_exists.json index 337f548..3bc2163 100644 --- a/infra/recipes/gn.expected/cipd_exists.json +++ b/infra/recipes/gn.expected/cipd_exists.json
@@ -45,12 +45,26 @@ }, { "cmd": [ + "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]/gn", + "infra_step": true, + "name": "git.rev-parse", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ "cipd", "ensure", "-root", "[START_DIR]/cipd", "-ensure-file", - "infra/ninja/${platform} version:1.8.2\nfuchsia/clang/${platform} git_revision:b920a7f65b13237dc4d5b2b836b29a954fff440a\n@Subdir sysroot\nfuchsia/sysroot/${platform} git_revision:a28dfa20af063e5ca00634024c85732e20220419", + "infra/ninja/${platform} version:1.8.2\nfuchsia/third_party/clang/${platform} integration\n@Subdir sysroot\nfuchsia/third_party/sysroot/linux git_revision:c912d089c3d46d8982fdef76a50514cca79b6132", "-json-output", "/path/to/tmp/json" ], @@ -61,8 +75,8 @@ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", "@@@STEP_LOG_LINE@json.output@ \"\": [@@@", "@@@STEP_LOG_LINE@json.output@ {@@@", - "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:b92\", @@@", - "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/clang/resolved-platform\"@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-integration-----\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/third_party/clang/resolved-platform\"@@@", "@@@STEP_LOG_LINE@json.output@ }, @@@", "@@@STEP_LOG_LINE@json.output@ {@@@", "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-version:1.8.2---\", @@@", @@ -71,8 +85,8 @@ "@@@STEP_LOG_LINE@json.output@ ], @@@", "@@@STEP_LOG_LINE@json.output@ \"sysroot\": [@@@", "@@@STEP_LOG_LINE@json.output@ {@@@", - "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:a28\", @@@", - "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/sysroot/resolved-platform\"@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:c91\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/third_party/sysroot/linux\"@@@", "@@@STEP_LOG_LINE@json.output@ }@@@", "@@@STEP_LOG_LINE@json.output@ ]@@@", "@@@STEP_LOG_LINE@json.output@ }@@@", @@ -86,7 +100,7 @@ }, { "cmd": [], - "name": "debug.build", + "name": "debug.linux-amd64", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" ] @@ -102,11 +116,11 @@ "env": { "AR": "[START_DIR]/cipd/bin/llvm-ar", "CC": "[START_DIR]/cipd/bin/clang", - "CFLAGS": "--sysroot=[START_DIR]/cipd/sysroot", + "CFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot", "CXX": "[START_DIR]/cipd/bin/clang++", - "LDFLAGS": "--sysroot=[START_DIR]/cipd/sysroot" + "LDFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot -static-libstdc++" }, - "name": "debug.build.generate", + "name": "debug.linux-amd64.generate", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -121,11 +135,11 @@ "env": { "AR": "[START_DIR]/cipd/bin/llvm-ar", "CC": "[START_DIR]/cipd/bin/clang", - "CFLAGS": "--sysroot=[START_DIR]/cipd/sysroot", + "CFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot", "CXX": "[START_DIR]/cipd/bin/clang++", - "LDFLAGS": "--sysroot=[START_DIR]/cipd/sysroot" + "LDFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot -static-libstdc++" }, - "name": "debug.build.ninja", + "name": "debug.linux-amd64.build", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -134,9 +148,9 @@ "cmd": [ "[START_DIR]/gn/out/gn_unittests" ], - "name": "debug.test", + "name": "debug.linux-amd64.test", "~followup_annotations": [ - "@@@STEP_NEST_LEVEL@1@@@" + "@@@STEP_NEST_LEVEL@2@@@" ] }, { @@ -145,7 +159,7 @@ }, { "cmd": [], - "name": "release.build", + "name": "release.linux-amd64", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" ] @@ -162,11 +176,11 @@ "env": { "AR": "[START_DIR]/cipd/bin/llvm-ar", "CC": "[START_DIR]/cipd/bin/clang", - "CFLAGS": "--sysroot=[START_DIR]/cipd/sysroot", + "CFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot", "CXX": "[START_DIR]/cipd/bin/clang++", - "LDFLAGS": "--sysroot=[START_DIR]/cipd/sysroot" + "LDFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot -static-libstdc++" }, - "name": "release.build.generate", + "name": "release.linux-amd64.generate", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -181,11 +195,11 @@ "env": { "AR": "[START_DIR]/cipd/bin/llvm-ar", "CC": "[START_DIR]/cipd/bin/clang", - "CFLAGS": "--sysroot=[START_DIR]/cipd/sysroot", + "CFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot", "CXX": "[START_DIR]/cipd/bin/clang++", - "LDFLAGS": "--sysroot=[START_DIR]/cipd/sysroot" + "LDFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot -static-libstdc++" }, - "name": "release.build.ninja", + "name": "release.linux-amd64.build", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -194,9 +208,16 @@ "cmd": [ "[START_DIR]/gn/out/gn_unittests" ], - "name": "release.test", + "name": "release.linux-amd64.test", "~followup_annotations": [ - "@@@STEP_NEST_LEVEL@1@@@" + "@@@STEP_NEST_LEVEL@2@@@" + ] + }, + { + "cmd": [], + "name": "release.linux-amd64.upload", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@2@@@" ] }, { @@ -204,7 +225,7 @@ "cipd", "pkg-build", "-pkg-def", - "{\"data\": [{\"file\": \"gn\"}, {\"version_file\": \".versions/gn.cipd_version\"}], \"install_mode\": \"copy\", \"package\": \"gn/gn/${platform}\", \"root\": \"[START_DIR]/gn/out\"}", + "{\"data\": [{\"file\": \"gn\"}, {\"version_file\": \".versions/gn.cipd_version\"}], \"install_mode\": \"copy\", \"package\": \"gn/gn/linux-amd64\", \"root\": \"[START_DIR]/gn/out\"}", "-out", "[CLEANUP]/gn.cipd", "-hash-algo", @@ -212,12 +233,13 @@ "-json-output", "/path/to/tmp/json" ], - "name": "build gn/gn/${platform}", + "name": "release.linux-amd64.upload.build gn/gn/linux-amd64", "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@3@@@", "@@@STEP_LOG_LINE@json.output@{@@@", "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"40-chars-fake-of-the-package-instance_id\", @@@", - "@@@STEP_LOG_LINE@json.output@ \"package\": \"gn/gn/resolved-platform\"@@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"gn/gn/linux-amd64\"@@@", "@@@STEP_LOG_LINE@json.output@ }@@@", "@@@STEP_LOG_LINE@json.output@}@@@", "@@@STEP_LOG_END@json.output@@@" @@ -225,26 +247,17 @@ }, { "cmd": [ - "git", - "rev-parse", - "HEAD" - ], - "cwd": "[START_DIR]/gn", - "name": "rev-parse", - "stdout": "/path/to/tmp/" - }, - { - "cmd": [ "cipd", "search", - "gn/gn/${platform}", + "gn/gn/linux-amd64", "-tag", "git_revision:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "-json-output", "/path/to/tmp/json" ], - "name": "cipd search gn/gn/${platform} git_revision:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "name": "release.linux-amd64.upload.cipd search gn/gn/linux-amd64 git_revision:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@3@@@", "@@@STEP_LOG_LINE@json.output@{@@@", "@@@STEP_LOG_LINE@json.output@ \"result\": [@@@", "@@@STEP_LOG_LINE@json.output@ {@@@", @@ -258,7 +271,10 @@ }, { "cmd": [], - "name": "Package is up-to-date" + "name": "release.linux-amd64.upload.Package is up-to-date", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@3@@@" + ] }, { "jsonResult": null,
diff --git a/infra/recipes/gn.expected/cipd_register.json b/infra/recipes/gn.expected/cipd_register.json index ce6a221..2e09f95 100644 --- a/infra/recipes/gn.expected/cipd_register.json +++ b/infra/recipes/gn.expected/cipd_register.json
@@ -45,12 +45,26 @@ }, { "cmd": [ + "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]/gn", + "infra_step": true, + "name": "git.rev-parse", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ "cipd", "ensure", "-root", "[START_DIR]/cipd", "-ensure-file", - "infra/ninja/${platform} version:1.8.2\nfuchsia/clang/${platform} git_revision:b920a7f65b13237dc4d5b2b836b29a954fff440a\n@Subdir sysroot\nfuchsia/sysroot/${platform} git_revision:a28dfa20af063e5ca00634024c85732e20220419", + "infra/ninja/${platform} version:1.8.2\nfuchsia/third_party/clang/${platform} integration\n@Subdir sysroot\nfuchsia/third_party/sysroot/linux git_revision:c912d089c3d46d8982fdef76a50514cca79b6132", "-json-output", "/path/to/tmp/json" ], @@ -61,8 +75,8 @@ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", "@@@STEP_LOG_LINE@json.output@ \"\": [@@@", "@@@STEP_LOG_LINE@json.output@ {@@@", - "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:b92\", @@@", - "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/clang/resolved-platform\"@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-integration-----\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/third_party/clang/resolved-platform\"@@@", "@@@STEP_LOG_LINE@json.output@ }, @@@", "@@@STEP_LOG_LINE@json.output@ {@@@", "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-version:1.8.2---\", @@@", @@ -71,8 +85,8 @@ "@@@STEP_LOG_LINE@json.output@ ], @@@", "@@@STEP_LOG_LINE@json.output@ \"sysroot\": [@@@", "@@@STEP_LOG_LINE@json.output@ {@@@", - "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:a28\", @@@", - "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/sysroot/resolved-platform\"@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:c91\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/third_party/sysroot/linux\"@@@", "@@@STEP_LOG_LINE@json.output@ }@@@", "@@@STEP_LOG_LINE@json.output@ ]@@@", "@@@STEP_LOG_LINE@json.output@ }@@@", @@ -86,7 +100,7 @@ }, { "cmd": [], - "name": "debug.build", + "name": "debug.linux-amd64", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" ] @@ -102,11 +116,11 @@ "env": { "AR": "[START_DIR]/cipd/bin/llvm-ar", "CC": "[START_DIR]/cipd/bin/clang", - "CFLAGS": "--sysroot=[START_DIR]/cipd/sysroot", + "CFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot", "CXX": "[START_DIR]/cipd/bin/clang++", - "LDFLAGS": "--sysroot=[START_DIR]/cipd/sysroot" + "LDFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot -static-libstdc++" }, - "name": "debug.build.generate", + "name": "debug.linux-amd64.generate", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -121,11 +135,11 @@ "env": { "AR": "[START_DIR]/cipd/bin/llvm-ar", "CC": "[START_DIR]/cipd/bin/clang", - "CFLAGS": "--sysroot=[START_DIR]/cipd/sysroot", + "CFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot", "CXX": "[START_DIR]/cipd/bin/clang++", - "LDFLAGS": "--sysroot=[START_DIR]/cipd/sysroot" + "LDFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot -static-libstdc++" }, - "name": "debug.build.ninja", + "name": "debug.linux-amd64.build", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -134,9 +148,9 @@ "cmd": [ "[START_DIR]/gn/out/gn_unittests" ], - "name": "debug.test", + "name": "debug.linux-amd64.test", "~followup_annotations": [ - "@@@STEP_NEST_LEVEL@1@@@" + "@@@STEP_NEST_LEVEL@2@@@" ] }, { @@ -145,7 +159,7 @@ }, { "cmd": [], - "name": "release.build", + "name": "release.linux-amd64", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" ] @@ -162,11 +176,11 @@ "env": { "AR": "[START_DIR]/cipd/bin/llvm-ar", "CC": "[START_DIR]/cipd/bin/clang", - "CFLAGS": "--sysroot=[START_DIR]/cipd/sysroot", + "CFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot", "CXX": "[START_DIR]/cipd/bin/clang++", - "LDFLAGS": "--sysroot=[START_DIR]/cipd/sysroot" + "LDFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot -static-libstdc++" }, - "name": "release.build.generate", + "name": "release.linux-amd64.generate", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -181,11 +195,11 @@ "env": { "AR": "[START_DIR]/cipd/bin/llvm-ar", "CC": "[START_DIR]/cipd/bin/clang", - "CFLAGS": "--sysroot=[START_DIR]/cipd/sysroot", + "CFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot", "CXX": "[START_DIR]/cipd/bin/clang++", - "LDFLAGS": "--sysroot=[START_DIR]/cipd/sysroot" + "LDFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot -static-libstdc++" }, - "name": "release.build.ninja", + "name": "release.linux-amd64.build", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -194,9 +208,16 @@ "cmd": [ "[START_DIR]/gn/out/gn_unittests" ], - "name": "release.test", + "name": "release.linux-amd64.test", "~followup_annotations": [ - "@@@STEP_NEST_LEVEL@1@@@" + "@@@STEP_NEST_LEVEL@2@@@" + ] + }, + { + "cmd": [], + "name": "release.linux-amd64.upload", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@2@@@" ] }, { @@ -204,7 +225,7 @@ "cipd", "pkg-build", "-pkg-def", - "{\"data\": [{\"file\": \"gn\"}, {\"version_file\": \".versions/gn.cipd_version\"}], \"install_mode\": \"copy\", \"package\": \"gn/gn/${platform}\", \"root\": \"[START_DIR]/gn/out\"}", + "{\"data\": [{\"file\": \"gn\"}, {\"version_file\": \".versions/gn.cipd_version\"}], \"install_mode\": \"copy\", \"package\": \"gn/gn/linux-amd64\", \"root\": \"[START_DIR]/gn/out\"}", "-out", "[CLEANUP]/gn.cipd", "-hash-algo", @@ -212,12 +233,13 @@ "-json-output", "/path/to/tmp/json" ], - "name": "build gn/gn/${platform}", + "name": "release.linux-amd64.upload.build gn/gn/linux-amd64", "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@3@@@", "@@@STEP_LOG_LINE@json.output@{@@@", "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"40-chars-fake-of-the-package-instance_id\", @@@", - "@@@STEP_LOG_LINE@json.output@ \"package\": \"gn/gn/resolved-platform\"@@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"gn/gn/linux-amd64\"@@@", "@@@STEP_LOG_LINE@json.output@ }@@@", "@@@STEP_LOG_LINE@json.output@}@@@", "@@@STEP_LOG_END@json.output@@@" @@ -225,26 +247,17 @@ }, { "cmd": [ - "git", - "rev-parse", - "HEAD" - ], - "cwd": "[START_DIR]/gn", - "name": "rev-parse", - "stdout": "/path/to/tmp/" - }, - { - "cmd": [ "cipd", "search", - "gn/gn/${platform}", + "gn/gn/linux-amd64", "-tag", "git_revision:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "-json-output", "/path/to/tmp/json" ], - "name": "cipd search gn/gn/${platform} git_revision:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "name": "release.linux-amd64.upload.cipd search gn/gn/linux-amd64 git_revision:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@3@@@", "@@@STEP_LOG_LINE@json.output@{@@@", "@@@STEP_LOG_LINE@json.output@ \"result\": []@@@", "@@@STEP_LOG_LINE@json.output@}@@@", @@ -265,18 +278,129 @@ "-json-output", "/path/to/tmp/json" ], - "name": "register gn/gn/${platform}", + "name": "release.linux-amd64.upload.register gn/gn/linux-amd64", "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@3@@@", "@@@STEP_LOG_LINE@json.output@{@@@", "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"40-chars-fake-of-the-package-instance_id\", @@@", - "@@@STEP_LOG_LINE@json.output@ \"package\": \"gn/gn/resolved-platform\"@@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"gn/gn/linux-amd64\"@@@", "@@@STEP_LOG_LINE@json.output@ }@@@", "@@@STEP_LOG_LINE@json.output@}@@@", "@@@STEP_LOG_END@json.output@@@" ] }, { + "cmd": [], + "name": "release.linux-arm64", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "python", + "-u", + "[START_DIR]/gn/build/gen.py", + "--use-lto", + "--use-icf" + ], + "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CFLAGS": "--target=aarch64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "--target=aarch64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot -static-libstdc++" + }, + "name": "release.linux-arm64.generate", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@2@@@" + ] + }, + { + "cmd": [ + "[START_DIR]/cipd/ninja", + "-C", + "[START_DIR]/gn/out" + ], + "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CFLAGS": "--target=aarch64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "--target=aarch64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot -static-libstdc++" + }, + "name": "release.linux-arm64.build", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@2@@@" + ] + }, + { + "cmd": [], + "name": "release.linux-arm64.upload", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@2@@@" + ] + }, + { + "cmd": [ + "cipd", + "pkg-build", + "-pkg-def", + "{\"data\": [{\"file\": \"gn\"}, {\"version_file\": \".versions/gn.cipd_version\"}], \"install_mode\": \"copy\", \"package\": \"gn/gn/linux-arm64\", \"root\": \"[START_DIR]/gn/out\"}", + "-out", + "[CLEANUP]/gn.cipd", + "-hash-algo", + "sha256", + "-json-output", + "/path/to/tmp/json" + ], + "name": "release.linux-arm64.upload.build gn/gn/linux-arm64", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@3@@@", + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"40-chars-fake-of-the-package-instance_id\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"gn/gn/linux-arm64\"@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "cipd", + "search", + "gn/gn/linux-arm64", + "-tag", + "git_revision:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "-json-output", + "/path/to/tmp/json" + ], + "name": "release.linux-arm64.upload.cipd search gn/gn/linux-arm64 git_revision:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@3@@@", + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"result\": [@@@", + "@@@STEP_LOG_LINE@json.output@ {@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"40-chars-fake-of-the-package-instance_id\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"gn/gn/linux-arm64\"@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@ ]@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [], + "name": "release.linux-arm64.upload.Package is up-to-date", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@3@@@" + ] + }, + { "jsonResult": null, "name": "$result" }
diff --git a/infra/recipes/gn.expected/cq_linux.json b/infra/recipes/gn.expected/cq_linux.json index 329ac6e..c51eb29 100644 --- a/infra/recipes/gn.expected/cq_linux.json +++ b/infra/recipes/gn.expected/cq_linux.json
@@ -46,6 +46,20 @@ { "cmd": [ "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]/gn", + "infra_step": true, + "name": "git.rev-parse", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", "fetch", "https://gn.googlesource.com/gn", "refs/changes/56/123456/7" @@ -77,7 +91,7 @@ "-root", "[START_DIR]/cipd", "-ensure-file", - "infra/ninja/${platform} version:1.8.2\nfuchsia/clang/${platform} git_revision:b920a7f65b13237dc4d5b2b836b29a954fff440a\n@Subdir sysroot\nfuchsia/sysroot/${platform} git_revision:a28dfa20af063e5ca00634024c85732e20220419", + "infra/ninja/${platform} version:1.8.2\nfuchsia/third_party/clang/${platform} integration\n@Subdir sysroot\nfuchsia/third_party/sysroot/linux git_revision:c912d089c3d46d8982fdef76a50514cca79b6132", "-json-output", "/path/to/tmp/json" ], @@ -88,8 +102,8 @@ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", "@@@STEP_LOG_LINE@json.output@ \"\": [@@@", "@@@STEP_LOG_LINE@json.output@ {@@@", - "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:b92\", @@@", - "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/clang/resolved-platform\"@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-integration-----\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/third_party/clang/resolved-platform\"@@@", "@@@STEP_LOG_LINE@json.output@ }, @@@", "@@@STEP_LOG_LINE@json.output@ {@@@", "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-version:1.8.2---\", @@@", @@ -98,8 +112,8 @@ "@@@STEP_LOG_LINE@json.output@ ], @@@", "@@@STEP_LOG_LINE@json.output@ \"sysroot\": [@@@", "@@@STEP_LOG_LINE@json.output@ {@@@", - "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:a28\", @@@", - "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/sysroot/resolved-platform\"@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:c91\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/third_party/sysroot/linux\"@@@", "@@@STEP_LOG_LINE@json.output@ }@@@", "@@@STEP_LOG_LINE@json.output@ ]@@@", "@@@STEP_LOG_LINE@json.output@ }@@@", @@ -113,7 +127,7 @@ }, { "cmd": [], - "name": "debug.build", + "name": "debug.linux-amd64", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" ] @@ -129,11 +143,11 @@ "env": { "AR": "[START_DIR]/cipd/bin/llvm-ar", "CC": "[START_DIR]/cipd/bin/clang", - "CFLAGS": "--sysroot=[START_DIR]/cipd/sysroot", + "CFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot", "CXX": "[START_DIR]/cipd/bin/clang++", - "LDFLAGS": "--sysroot=[START_DIR]/cipd/sysroot" + "LDFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot -static-libstdc++" }, - "name": "debug.build.generate", + "name": "debug.linux-amd64.generate", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -148,11 +162,11 @@ "env": { "AR": "[START_DIR]/cipd/bin/llvm-ar", "CC": "[START_DIR]/cipd/bin/clang", - "CFLAGS": "--sysroot=[START_DIR]/cipd/sysroot", + "CFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot", "CXX": "[START_DIR]/cipd/bin/clang++", - "LDFLAGS": "--sysroot=[START_DIR]/cipd/sysroot" + "LDFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot -static-libstdc++" }, - "name": "debug.build.ninja", + "name": "debug.linux-amd64.build", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -161,9 +175,9 @@ "cmd": [ "[START_DIR]/gn/out/gn_unittests" ], - "name": "debug.test", + "name": "debug.linux-amd64.test", "~followup_annotations": [ - "@@@STEP_NEST_LEVEL@1@@@" + "@@@STEP_NEST_LEVEL@2@@@" ] }, { @@ -172,7 +186,7 @@ }, { "cmd": [], - "name": "release.build", + "name": "release.linux-amd64", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" ] @@ -189,11 +203,11 @@ "env": { "AR": "[START_DIR]/cipd/bin/llvm-ar", "CC": "[START_DIR]/cipd/bin/clang", - "CFLAGS": "--sysroot=[START_DIR]/cipd/sysroot", + "CFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot", "CXX": "[START_DIR]/cipd/bin/clang++", - "LDFLAGS": "--sysroot=[START_DIR]/cipd/sysroot" + "LDFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot -static-libstdc++" }, - "name": "release.build.generate", + "name": "release.linux-amd64.generate", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -208,11 +222,11 @@ "env": { "AR": "[START_DIR]/cipd/bin/llvm-ar", "CC": "[START_DIR]/cipd/bin/clang", - "CFLAGS": "--sysroot=[START_DIR]/cipd/sysroot", + "CFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot", "CXX": "[START_DIR]/cipd/bin/clang++", - "LDFLAGS": "--sysroot=[START_DIR]/cipd/sysroot" + "LDFLAGS": "--target=x86_64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot -static-libstdc++" }, - "name": "release.build.ninja", + "name": "release.linux-amd64.build", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -221,12 +235,59 @@ "cmd": [ "[START_DIR]/gn/out/gn_unittests" ], - "name": "release.test", + "name": "release.linux-amd64.test", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@2@@@" + ] + }, + { + "cmd": [], + "name": "release.linux-arm64", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" ] }, { + "cmd": [ + "python", + "-u", + "[START_DIR]/gn/build/gen.py", + "--use-lto", + "--use-icf" + ], + "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CFLAGS": "--target=aarch64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "--target=aarch64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot -static-libstdc++" + }, + "name": "release.linux-arm64.generate", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@2@@@" + ] + }, + { + "cmd": [ + "[START_DIR]/cipd/ninja", + "-C", + "[START_DIR]/gn/out" + ], + "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CFLAGS": "--target=aarch64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "--target=aarch64-linux-gnu --sysroot=[START_DIR]/cipd/sysroot -static-libstdc++" + }, + "name": "release.linux-arm64.build", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@2@@@" + ] + }, + { "jsonResult": null, "name": "$result" }
diff --git a/infra/recipes/gn.expected/cq_mac.json b/infra/recipes/gn.expected/cq_mac.json index b84aab8..3ae005b 100644 --- a/infra/recipes/gn.expected/cq_mac.json +++ b/infra/recipes/gn.expected/cq_mac.json
@@ -46,6 +46,20 @@ { "cmd": [ "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]/gn", + "infra_step": true, + "name": "git.rev-parse", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", "fetch", "https://gn.googlesource.com/gn", "refs/changes/56/123456/7" @@ -77,7 +91,7 @@ "-root", "[START_DIR]/cipd", "-ensure-file", - "infra/ninja/${platform} version:1.8.2\nfuchsia/clang/${platform} git_revision:b920a7f65b13237dc4d5b2b836b29a954fff440a", + "infra/ninja/${platform} version:1.8.2\nfuchsia/third_party/clang/${platform} integration", "-json-output", "/path/to/tmp/json" ], @@ -88,8 +102,8 @@ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", "@@@STEP_LOG_LINE@json.output@ \"\": [@@@", "@@@STEP_LOG_LINE@json.output@ {@@@", - "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:b92\", @@@", - "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/clang/resolved-platform\"@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-integration-----\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/third_party/clang/resolved-platform\"@@@", "@@@STEP_LOG_LINE@json.output@ }, @@@", "@@@STEP_LOG_LINE@json.output@ {@@@", "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-version:1.8.2---\", @@@", @@ -153,30 +167,31 @@ "name": "select XCode" }, { - "cmd": [ - "xcrun", - "--show-sdk-path" - ], - "name": "xcrun", - "stdout": "/path/to/tmp/", - "~followup_annotations": [ - "@@@STEP_LOG_LINE@raw_io.output[sdk-path]@/some/xcode/path@@@", - "@@@STEP_LOG_END@raw_io.output[sdk-path]@@@" - ] - }, - { "cmd": [], "name": "debug" }, { "cmd": [], - "name": "debug.build", + "name": "debug.mac-amd64", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" ] }, { "cmd": [ + "xcrun", + "--show-sdk-path" + ], + "name": "debug.mac-amd64.xcrun", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@2@@@", + "@@@STEP_LOG_LINE@raw_io.output[sdk-path]@/some/xcode/path@@@", + "@@@STEP_LOG_END@raw_io.output[sdk-path]@@@" + ] + }, + { + "cmd": [ "python", "-u", "[START_DIR]/gn/build/gen.py", @@ -186,11 +201,11 @@ "env": { "AR": "[START_DIR]/cipd/bin/llvm-ar", "CC": "[START_DIR]/cipd/bin/clang", - "CFLAGS": "--sysroot=/some/xcode/path", + "CFLAGS": "--target=x86_64-apple-darwin --sysroot=/some/xcode/path", "CXX": "[START_DIR]/cipd/bin/clang++", - "LDFLAGS": "--sysroot=/some/xcode/path -nostdlib++ [START_DIR]/cipd/lib/libc++.a" + "LDFLAGS": "--target=x86_64-apple-darwin --sysroot=/some/xcode/path -nostdlib++ [START_DIR]/cipd/lib/libc++.a" }, - "name": "debug.build.generate", + "name": "debug.mac-amd64.generate", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -205,11 +220,11 @@ "env": { "AR": "[START_DIR]/cipd/bin/llvm-ar", "CC": "[START_DIR]/cipd/bin/clang", - "CFLAGS": "--sysroot=/some/xcode/path", + "CFLAGS": "--target=x86_64-apple-darwin --sysroot=/some/xcode/path", "CXX": "[START_DIR]/cipd/bin/clang++", - "LDFLAGS": "--sysroot=/some/xcode/path -nostdlib++ [START_DIR]/cipd/lib/libc++.a" + "LDFLAGS": "--target=x86_64-apple-darwin --sysroot=/some/xcode/path -nostdlib++ [START_DIR]/cipd/lib/libc++.a" }, - "name": "debug.build.ninja", + "name": "debug.mac-amd64.build", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -218,9 +233,9 @@ "cmd": [ "[START_DIR]/gn/out/gn_unittests" ], - "name": "debug.test", + "name": "debug.mac-amd64.test", "~followup_annotations": [ - "@@@STEP_NEST_LEVEL@1@@@" + "@@@STEP_NEST_LEVEL@2@@@" ] }, { @@ -229,13 +244,26 @@ }, { "cmd": [], - "name": "release.build", + "name": "release.mac-amd64", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" ] }, { "cmd": [ + "xcrun", + "--show-sdk-path" + ], + "name": "release.mac-amd64.xcrun", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@2@@@", + "@@@STEP_LOG_LINE@raw_io.output[sdk-path]@/some/xcode/path@@@", + "@@@STEP_LOG_END@raw_io.output[sdk-path]@@@" + ] + }, + { + "cmd": [ "python", "-u", "[START_DIR]/gn/build/gen.py", @@ -246,11 +274,11 @@ "env": { "AR": "[START_DIR]/cipd/bin/llvm-ar", "CC": "[START_DIR]/cipd/bin/clang", - "CFLAGS": "--sysroot=/some/xcode/path", + "CFLAGS": "--target=x86_64-apple-darwin --sysroot=/some/xcode/path", "CXX": "[START_DIR]/cipd/bin/clang++", - "LDFLAGS": "--sysroot=/some/xcode/path -nostdlib++ [START_DIR]/cipd/lib/libc++.a" + "LDFLAGS": "--target=x86_64-apple-darwin --sysroot=/some/xcode/path -nostdlib++ [START_DIR]/cipd/lib/libc++.a" }, - "name": "release.build.generate", + "name": "release.mac-amd64.generate", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -265,11 +293,11 @@ "env": { "AR": "[START_DIR]/cipd/bin/llvm-ar", "CC": "[START_DIR]/cipd/bin/clang", - "CFLAGS": "--sysroot=/some/xcode/path", + "CFLAGS": "--target=x86_64-apple-darwin --sysroot=/some/xcode/path", "CXX": "[START_DIR]/cipd/bin/clang++", - "LDFLAGS": "--sysroot=/some/xcode/path -nostdlib++ [START_DIR]/cipd/lib/libc++.a" + "LDFLAGS": "--target=x86_64-apple-darwin --sysroot=/some/xcode/path -nostdlib++ [START_DIR]/cipd/lib/libc++.a" }, - "name": "release.build.ninja", + "name": "release.mac-amd64.build", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -278,9 +306,9 @@ "cmd": [ "[START_DIR]/gn/out/gn_unittests" ], - "name": "release.test", + "name": "release.mac-amd64.test", "~followup_annotations": [ - "@@@STEP_NEST_LEVEL@1@@@" + "@@@STEP_NEST_LEVEL@2@@@" ] }, {
diff --git a/infra/recipes/gn.expected/cq_win.json b/infra/recipes/gn.expected/cq_win.json index b27d53f..8e352de 100644 --- a/infra/recipes/gn.expected/cq_win.json +++ b/infra/recipes/gn.expected/cq_win.json
@@ -46,6 +46,20 @@ { "cmd": [ "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]\\gn", + "infra_step": true, + "name": "git.rev-parse", + "stdout": "/path/to/tmp/", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", "fetch", "https://gn.googlesource.com/gn", "refs/changes/56/123456/7" @@ -162,7 +176,7 @@ }, { "cmd": [], - "name": "debug.build", + "name": "debug.windows-amd64", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" ] @@ -183,7 +197,7 @@ "[CACHE]\\windows_sdk\\win_sdk\\bin\\x64" ] }, - "name": "debug.build.generate", + "name": "debug.windows-amd64.generate", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -203,7 +217,7 @@ "[CACHE]\\windows_sdk\\win_sdk\\bin\\x64" ] }, - "name": "debug.build.ninja", + "name": "debug.windows-amd64.build", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -220,9 +234,9 @@ "[CACHE]\\windows_sdk\\win_sdk\\bin\\x64" ] }, - "name": "debug.test", + "name": "debug.windows-amd64.test", "~followup_annotations": [ - "@@@STEP_NEST_LEVEL@1@@@" + "@@@STEP_NEST_LEVEL@2@@@" ] }, { @@ -231,7 +245,7 @@ }, { "cmd": [], - "name": "release.build", + "name": "release.windows-amd64", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" ] @@ -253,7 +267,7 @@ "[CACHE]\\windows_sdk\\win_sdk\\bin\\x64" ] }, - "name": "release.build.generate", + "name": "release.windows-amd64.generate", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -273,7 +287,7 @@ "[CACHE]\\windows_sdk\\win_sdk\\bin\\x64" ] }, - "name": "release.build.ninja", + "name": "release.windows-amd64.build", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" ] @@ -290,9 +304,9 @@ "[CACHE]\\windows_sdk\\win_sdk\\bin\\x64" ] }, - "name": "release.test", + "name": "release.windows-amd64.test", "~followup_annotations": [ - "@@@STEP_NEST_LEVEL@1@@@" + "@@@STEP_NEST_LEVEL@2@@@" ] }, {
diff --git a/infra/recipes/gn.py b/infra/recipes/gn.py index f219b81..8110dfa 100644 --- a/infra/recipes/gn.py +++ b/infra/recipes/gn.py
@@ -17,6 +17,7 @@ 'recipe_engine/python', 'recipe_engine/raw_io', 'recipe_engine/step', + 'target', 'macos_sdk', 'windows_sdk', ] @@ -40,6 +41,9 @@ # Fetch tags so `git describe` works. api.step('fetch', ['git', 'fetch', '--tags', repository, ref]) api.step('checkout', ['git', 'checkout', 'FETCH_HEAD']) + revision = api.step( + 'rev-parse', ['git', 'rev-parse', 'HEAD'], + stdout=api.raw_io.output()).stdout.strip() for change in build_input.gerrit_changes: api.step('fetch %s/%s' % (change.change, change.patchset), [ 'git', 'fetch', repository, @@ -54,11 +58,10 @@ pkgs = api.cipd.EnsureFile() pkgs.add_package('infra/ninja/${platform}', 'version:1.8.2') if api.platform.is_linux or api.platform.is_mac: - pkgs.add_package('fuchsia/clang/${platform}', - 'git_revision:b920a7f65b13237dc4d5b2b836b29a954fff440a') + pkgs.add_package('fuchsia/third_party/clang/${platform}', 'integration') if api.platform.is_linux: - pkgs.add_package('fuchsia/sysroot/${platform}', - 'git_revision:a28dfa20af063e5ca00634024c85732e20220419', + pkgs.add_package('fuchsia/third_party/sysroot/linux', + 'git_revision:c912d089c3d46d8982fdef76a50514cca79b6132', 'sysroot') api.cipd.ensure(cipd_dir, pkgs) @@ -66,93 +69,106 @@ configs = [ { 'name': 'debug', - 'args': ['-d'] + 'args': ['-d'], + 'targets': [api.target.host], }, { 'name': 'release', - 'args': ['--use-lto', '--use-icf'] + 'args': ['--use-lto', '--use-icf'], + 'targets': [api.target('linux-amd64'), + api.target('linux-arm64')] + if api.platform.is_linux else [api.target.host], }, ] with api.macos_sdk(), api.windows_sdk(): - if api.platform.is_linux: - sysroot = '--sysroot=%s' % cipd_dir.join('sysroot') - env = { - 'CC': cipd_dir.join('bin', 'clang'), - 'CXX': cipd_dir.join('bin', 'clang++'), - 'AR': cipd_dir.join('bin', 'llvm-ar'), - 'CFLAGS': sysroot, - 'LDFLAGS': sysroot, - } - elif api.platform.is_mac: - sysroot = '--sysroot=%s' % api.step( - 'xcrun', ['xcrun', '--show-sdk-path'], - stdout=api.raw_io.output(name='sdk-path', add_output_log=True), - step_test_data= - lambda: api.raw_io.test_api.stream_output('/some/xcode/path') - ).stdout.strip() - stdlib = '-nostdlib++ %s' % cipd_dir.join('lib', 'libc++.a') - env = { - 'CC': cipd_dir.join('bin', 'clang'), - 'CXX': cipd_dir.join('bin', 'clang++'), - 'AR': cipd_dir.join('bin', 'llvm-ar'), - 'CFLAGS': sysroot, - 'LDFLAGS': '%s %s' % (sysroot, stdlib), - } - else: - env = {} - for config in configs: with api.step.nest(config['name']): - with api.step.nest('build'), api.context(env=env, cwd=src_dir): - api.python( - 'generate', src_dir.join('build', 'gen.py'), args=config['args']) + for target in config['targets']: + with api.step.nest(target.platform): + if target.is_linux: + triple = '--target=%s' % target.triple + sysroot = '--sysroot=%s' % cipd_dir.join('sysroot') + env = { + 'CC': cipd_dir.join('bin', 'clang'), + 'CXX': cipd_dir.join('bin', 'clang++'), + 'AR': cipd_dir.join('bin', 'llvm-ar'), + 'CFLAGS': '%s %s' % (triple, sysroot), + 'LDFLAGS': '%s %s -static-libstdc++' % (triple, sysroot), + } + elif target.is_mac: + triple = '--target=%s' % target.triple + sysroot = '--sysroot=%s' % api.step( + 'xcrun', ['xcrun', '--show-sdk-path'], + stdout=api.raw_io.output( + name='sdk-path', add_output_log=True), + step_test_data=lambda: api.raw_io.test_api.stream_output( + '/some/xcode/path')).stdout.strip() + stdlib = cipd_dir.join('lib', 'libc++.a') + env = { + 'CC': cipd_dir.join('bin', 'clang'), + 'CXX': cipd_dir.join('bin', 'clang++'), + 'AR': cipd_dir.join('bin', 'llvm-ar'), + 'CFLAGS': '%s %s' % (triple, sysroot), + 'LDFLAGS': '%s %s -nostdlib++ %s' % (triple, sysroot, stdlib), + } + else: + env = {} - # Windows requires the environment modifications when building too. - api.step('ninja', [cipd_dir.join('ninja'), '-C', src_dir.join('out')]) + with api.context(env=env, cwd=src_dir): + api.python( + 'generate', + src_dir.join('build', 'gen.py'), + args=config['args']) - api.step('test', [src_dir.join('out', 'gn_unittests')]) + # Windows requires the environment modifications when building too. + api.step('build', + [cipd_dir.join('ninja'), '-C', + src_dir.join('out')]) - if build_input.gerrit_changes: - return + if target.is_host: + api.step('test', [src_dir.join('out', 'gn_unittests')]) - cipd_pkg_name = 'gn/gn/${platform}' - gn = 'gn' + ('.exe' if api.platform.is_win else '') + if build_input.gerrit_changes: + continue - pkg_def = api.cipd.PackageDefinition( - package_name=cipd_pkg_name, - package_root=src_dir.join('out'), - install_mode='copy') - pkg_def.add_file(src_dir.join('out', gn)) - pkg_def.add_version_file('.versions/%s.cipd_version' % gn) + if config['name'] != 'release': + continue - cipd_pkg_file = api.path['cleanup'].join('gn.cipd') + with api.step.nest('upload'): + cipd_pkg_name = 'gn/gn/%s' % target.platform + gn = 'gn' + ('.exe' if target.is_win else '') - api.cipd.build_from_pkg( - pkg_def=pkg_def, - output_package=cipd_pkg_file, - ) + pkg_def = api.cipd.PackageDefinition( + package_name=cipd_pkg_name, + package_root=src_dir.join('out'), + install_mode='copy') + pkg_def.add_file(src_dir.join('out', gn)) + pkg_def.add_version_file('.versions/%s.cipd_version' % gn) - if api.buildbucket.builder_id.project == 'infra-internal': - with api.context(cwd=src_dir): - revision = api.step( - 'rev-parse', ['git', 'rev-parse', 'HEAD'], - stdout=api.raw_io.output()).stdout.strip() + cipd_pkg_file = api.path['cleanup'].join('gn.cipd') - cipd_pin = api.cipd.search(cipd_pkg_name, 'git_revision:' + revision) - if cipd_pin: - api.step('Package is up-to-date', cmd=None) - return + api.cipd.build_from_pkg( + pkg_def=pkg_def, + output_package=cipd_pkg_file, + ) - api.cipd.register( - package_name=cipd_pkg_name, - package_path=cipd_pkg_file, - refs=['latest'], - tags={ - 'git_repository': repository, - 'git_revision': revision, - }, - ) + if api.buildbucket.builder_id.project == 'infra-internal': + cipd_pin = api.cipd.search(cipd_pkg_name, + 'git_revision:' + revision) + if cipd_pin: + api.step('Package is up-to-date', cmd=None) + return + + api.cipd.register( + package_name=cipd_pkg_name, + package_path=cipd_pkg_file, + refs=['latest'], + tags={ + 'git_repository': repository, + 'git_revision': revision, + }, + ) def GenTests(api): @@ -173,15 +189,20 @@ project='infra-internal', git_repo='gn.googlesource.com/gn', revision='a' * 40, - ) + api.step_data('rev-parse', api.raw_io.stream_output('a' * 40)) + - api.step_data('cipd search gn/gn/${platform} git_revision:' + 'a' * 40, - api.cipd.example_search('gn/gn/linux-amd64', - ['git_revision:' + 'a' * 40]))) + ) + api.step_data( + 'git.rev-parse', api.raw_io.stream_output('a' * 40) + ) + api.step_data( + 'release.linux-amd64.upload.cipd search gn/gn/linux-amd64 git_revision:' + + 'a' * 40, + api.cipd.example_search('gn/gn/linux-amd64', + ['git_revision:' + 'a' * 40]))) yield (api.test('cipd_register') + api.buildbucket.ci_build( project='infra-internal', git_repo='gn.googlesource.com/gn', revision='a' * 40, - ) + api.step_data('rev-parse', api.raw_io.stream_output('a' * 40)) + - api.step_data('cipd search gn/gn/${platform} git_revision:' + 'a' * 40, - api.cipd.example_search('gn/gn/linux-amd64', []))) + ) + api.step_data( + 'git.rev-parse', api.raw_io.stream_output('a' * 40) + ) + api.step_data( + 'release.linux-amd64.upload.cipd search gn/gn/linux-amd64 git_revision:' + + 'a' * 40, api.cipd.example_search('gn/gn/linux-amd64', [])))