[sdk] Add property sdk_subbuilders to schedule subbuilds
Part of a soft-transition to use fuchsia/build.py as
sdk_subbuilders. This property will become mandatory once
the transition is complete.
Bug: 37259
Change-Id: I47f067fe5f6550bcd76ceeda1b80c4f9a1145e3e
diff --git a/recipes/sdk.expected/global_ci.json b/recipes/sdk.expected/global_ci.json
index ad25c49..e81cab1 100644
--- a/recipes/sdk.expected/global_ci.json
+++ b/recipes/sdk.expected/global_ci.json
@@ -8,7 +8,7 @@
],
"infra_step": true,
"name": "schedule sdk builds",
- "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"###global-integration-bucket###\", \"builder\": \"sdk-core-subbuild-arm64-linux\", \"project\": \"project\"}, \"experimental\": \"NO\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"fuchsia.googlesource.com\", \"id\": \"c22471f4e3f842ae18dd9adec82ed9eb78ed1127\", \"project\": \"topaz\", \"ref\": \"refs/heads/master\"}, \"properties\": {\"sdk_id\": \"8945511751514863184\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}, {\"scheduleBuild\": {\"builder\": {\"bucket\": \"###global-integration-bucket###\", \"builder\": \"sdk-core-subbuild-x64-linux\", \"project\": \"project\"}, \"experimental\": \"NO\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"fuchsia.googlesource.com\", \"id\": \"c22471f4e3f842ae18dd9adec82ed9eb78ed1127\", \"project\": \"topaz\", \"ref\": \"refs/heads/master\"}, \"properties\": {\"sdk_id\": \"8945511751514863184\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-00000000133a\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+ "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"###global-integration-bucket###\", \"builder\": \"core.arm64-linux-sdk-subbuild\", \"project\": \"project\"}, \"experimental\": \"NO\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"fuchsia.googlesource.com\", \"id\": \"c22471f4e3f842ae18dd9adec82ed9eb78ed1127\", \"project\": \"topaz\", \"ref\": \"refs/heads/master\"}, \"properties\": {\"sdk_id\": \"8945511751514863184\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}, {\"scheduleBuild\": {\"builder\": {\"bucket\": \"###global-integration-bucket###\", \"builder\": \"core.x64-linux-sdk-subbuild\", \"project\": \"project\"}, \"experimental\": \"NO\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"fuchsia.googlesource.com\", \"id\": \"c22471f4e3f842ae18dd9adec82ed9eb78ed1127\", \"project\": \"topaz\", \"ref\": \"refs/heads/master\"}, \"properties\": {\"sdk_id\": \"8945511751514863184\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-00000000133a\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
"~followup_annotations": [
"@@@STEP_LOG_LINE@json.output@{@@@",
"@@@STEP_LOG_LINE@json.output@ \"responses\": [@@@",
@@ -16,7 +16,7 @@
"@@@STEP_LOG_LINE@json.output@ \"scheduleBuild\": {@@@",
"@@@STEP_LOG_LINE@json.output@ \"builder\": {@@@",
"@@@STEP_LOG_LINE@json.output@ \"bucket\": \"###global-integration-bucket###\", @@@",
- "@@@STEP_LOG_LINE@json.output@ \"builder\": \"sdk-core-subbuild-arm64-linux\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"builder\": \"core.arm64-linux-sdk-subbuild\", @@@",
"@@@STEP_LOG_LINE@json.output@ \"project\": \"project\"@@@",
"@@@STEP_LOG_LINE@json.output@ }, @@@",
"@@@STEP_LOG_LINE@json.output@ \"id\": \"8922054662172514000\"@@@",
@@ -26,7 +26,7 @@
"@@@STEP_LOG_LINE@json.output@ \"scheduleBuild\": {@@@",
"@@@STEP_LOG_LINE@json.output@ \"builder\": {@@@",
"@@@STEP_LOG_LINE@json.output@ \"bucket\": \"###global-integration-bucket###\", @@@",
- "@@@STEP_LOG_LINE@json.output@ \"builder\": \"sdk-core-subbuild-x64-linux\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"builder\": \"core.x64-linux-sdk-subbuild\", @@@",
"@@@STEP_LOG_LINE@json.output@ \"project\": \"project\"@@@",
"@@@STEP_LOG_LINE@json.output@ }, @@@",
"@@@STEP_LOG_LINE@json.output@ \"id\": \"8922054662172514001\"@@@",
@@ -41,7 +41,7 @@
"@@@STEP_LOG_LINE@request@ \"scheduleBuild\": {@@@",
"@@@STEP_LOG_LINE@request@ \"builder\": {@@@",
"@@@STEP_LOG_LINE@request@ \"bucket\": \"###global-integration-bucket###\", @@@",
- "@@@STEP_LOG_LINE@request@ \"builder\": \"sdk-core-subbuild-arm64-linux\", @@@",
+ "@@@STEP_LOG_LINE@request@ \"builder\": \"core.arm64-linux-sdk-subbuild\", @@@",
"@@@STEP_LOG_LINE@request@ \"project\": \"project\"@@@",
"@@@STEP_LOG_LINE@request@ }, @@@",
"@@@STEP_LOG_LINE@request@ \"experimental\": \"NO\", @@@",
@@ -68,7 +68,7 @@
"@@@STEP_LOG_LINE@request@ \"scheduleBuild\": {@@@",
"@@@STEP_LOG_LINE@request@ \"builder\": {@@@",
"@@@STEP_LOG_LINE@request@ \"bucket\": \"###global-integration-bucket###\", @@@",
- "@@@STEP_LOG_LINE@request@ \"builder\": \"sdk-core-subbuild-x64-linux\", @@@",
+ "@@@STEP_LOG_LINE@request@ \"builder\": \"core.x64-linux-sdk-subbuild\", @@@",
"@@@STEP_LOG_LINE@request@ \"project\": \"project\"@@@",
"@@@STEP_LOG_LINE@request@ }, @@@",
"@@@STEP_LOG_LINE@request@ \"experimental\": \"NO\", @@@",
@@ -533,8 +533,8 @@
"infra_step": true,
"name": "get_sdk_paths",
"~followup_annotations": [
- "@@@STEP_LOG_LINE@glob@[START_DIR]/fuchsia/archives/sdk-core-subbuild-arm64-linux/core.tar.gz@@@",
- "@@@STEP_LOG_LINE@glob@[START_DIR]/fuchsia/archives/sdk-core-subbuild-x64-linux/core.tar.gz@@@",
+ "@@@STEP_LOG_LINE@glob@[START_DIR]/fuchsia/archives/core.arm64-linux-sdk-subbuild/core.tar.gz@@@",
+ "@@@STEP_LOG_LINE@glob@[START_DIR]/fuchsia/archives/core.x64-linux-sdk-subbuild/core.tar.gz@@@",
"@@@STEP_LOG_END@glob@@@"
]
},
@@ -546,7 +546,7 @@
"--json-output",
"/path/to/tmp/json",
"move",
- "[START_DIR]/fuchsia/archives/sdk-core-subbuild-arm64-linux/core.tar.gz",
+ "[START_DIR]/fuchsia/archives/core.arm64-linux-sdk-subbuild/core.tar.gz",
"[CLEANUP]/merged_sdk_archive.tar.gz"
],
"infra_step": true,
@@ -558,13 +558,13 @@
"-u",
"[START_DIR]/fuchsia/scripts/sdk/merger/merge.py",
"--first-archive",
- "[START_DIR]/fuchsia/archives/sdk-core-subbuild-x64-linux/core.tar.gz",
+ "[START_DIR]/fuchsia/archives/core.x64-linux-sdk-subbuild/core.tar.gz",
"--second-archive",
"[CLEANUP]/merged_sdk_archive.tar.gz",
"--output-archive",
"[CLEANUP]/merged_sdk_archive.tar.gz"
],
- "name": "merge [START_DIR]/fuchsia/archives/sdk-core-subbuild-x64-linux/core.tar.gz"
+ "name": "merge [START_DIR]/fuchsia/archives/core.x64-linux-sdk-subbuild/core.tar.gz"
},
{
"cmd": [
diff --git a/recipes/sdk.expected/release_ci.json b/recipes/sdk.expected/release_ci.json
index 50f1de3..cfd9c66 100644
--- a/recipes/sdk.expected/release_ci.json
+++ b/recipes/sdk.expected/release_ci.json
@@ -8,7 +8,7 @@
],
"infra_step": true,
"name": "schedule sdk builds",
- "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"###global-integration-bucket###\", \"builder\": \"sdk-core-subbuild-arm64-linux\", \"project\": \"project\"}, \"experimental\": \"NO\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"fuchsia.googlesource.com\", \"id\": \"c22471f4e3f842ae18dd9adec82ed9eb78ed1127\", \"project\": \"topaz\", \"ref\": \"refs/heads/release\"}, \"properties\": {\"sdk_id\": \"8945511751514863184\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}, {\"scheduleBuild\": {\"builder\": {\"bucket\": \"###global-integration-bucket###\", \"builder\": \"sdk-core-subbuild-x64-linux\", \"project\": \"project\"}, \"experimental\": \"NO\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"fuchsia.googlesource.com\", \"id\": \"c22471f4e3f842ae18dd9adec82ed9eb78ed1127\", \"project\": \"topaz\", \"ref\": \"refs/heads/release\"}, \"properties\": {\"sdk_id\": \"8945511751514863184\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-00000000133a\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+ "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"###global-integration-bucket###\", \"builder\": \"core.arm64-linux-sdk-subbuild\", \"project\": \"project\"}, \"experimental\": \"NO\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"fuchsia.googlesource.com\", \"id\": \"c22471f4e3f842ae18dd9adec82ed9eb78ed1127\", \"project\": \"topaz\", \"ref\": \"refs/heads/release\"}, \"properties\": {\"sdk_id\": \"8945511751514863184\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}, {\"scheduleBuild\": {\"builder\": {\"bucket\": \"###global-integration-bucket###\", \"builder\": \"core.x64-linux-sdk-subbuild\", \"project\": \"project\"}, \"experimental\": \"NO\", \"fields\": \"builder,createTime,createdBy,critical,endTime,id,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"fuchsia.googlesource.com\", \"id\": \"c22471f4e3f842ae18dd9adec82ed9eb78ed1127\", \"project\": \"topaz\", \"ref\": \"refs/heads/release\"}, \"properties\": {\"sdk_id\": \"8945511751514863184\"}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-00000000133a\", \"tags\": [{\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
"~followup_annotations": [
"@@@STEP_LOG_LINE@json.output@{@@@",
"@@@STEP_LOG_LINE@json.output@ \"responses\": [@@@",
@@ -16,7 +16,7 @@
"@@@STEP_LOG_LINE@json.output@ \"scheduleBuild\": {@@@",
"@@@STEP_LOG_LINE@json.output@ \"builder\": {@@@",
"@@@STEP_LOG_LINE@json.output@ \"bucket\": \"###global-integration-bucket###\", @@@",
- "@@@STEP_LOG_LINE@json.output@ \"builder\": \"sdk-core-subbuild-arm64-linux\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"builder\": \"core.arm64-linux-sdk-subbuild\", @@@",
"@@@STEP_LOG_LINE@json.output@ \"project\": \"project\"@@@",
"@@@STEP_LOG_LINE@json.output@ }, @@@",
"@@@STEP_LOG_LINE@json.output@ \"id\": \"8922054662172514000\"@@@",
@@ -26,7 +26,7 @@
"@@@STEP_LOG_LINE@json.output@ \"scheduleBuild\": {@@@",
"@@@STEP_LOG_LINE@json.output@ \"builder\": {@@@",
"@@@STEP_LOG_LINE@json.output@ \"bucket\": \"###global-integration-bucket###\", @@@",
- "@@@STEP_LOG_LINE@json.output@ \"builder\": \"sdk-core-subbuild-x64-linux\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"builder\": \"core.x64-linux-sdk-subbuild\", @@@",
"@@@STEP_LOG_LINE@json.output@ \"project\": \"project\"@@@",
"@@@STEP_LOG_LINE@json.output@ }, @@@",
"@@@STEP_LOG_LINE@json.output@ \"id\": \"8922054662172514001\"@@@",
@@ -41,7 +41,7 @@
"@@@STEP_LOG_LINE@request@ \"scheduleBuild\": {@@@",
"@@@STEP_LOG_LINE@request@ \"builder\": {@@@",
"@@@STEP_LOG_LINE@request@ \"bucket\": \"###global-integration-bucket###\", @@@",
- "@@@STEP_LOG_LINE@request@ \"builder\": \"sdk-core-subbuild-arm64-linux\", @@@",
+ "@@@STEP_LOG_LINE@request@ \"builder\": \"core.arm64-linux-sdk-subbuild\", @@@",
"@@@STEP_LOG_LINE@request@ \"project\": \"project\"@@@",
"@@@STEP_LOG_LINE@request@ }, @@@",
"@@@STEP_LOG_LINE@request@ \"experimental\": \"NO\", @@@",
@@ -68,7 +68,7 @@
"@@@STEP_LOG_LINE@request@ \"scheduleBuild\": {@@@",
"@@@STEP_LOG_LINE@request@ \"builder\": {@@@",
"@@@STEP_LOG_LINE@request@ \"bucket\": \"###global-integration-bucket###\", @@@",
- "@@@STEP_LOG_LINE@request@ \"builder\": \"sdk-core-subbuild-x64-linux\", @@@",
+ "@@@STEP_LOG_LINE@request@ \"builder\": \"core.x64-linux-sdk-subbuild\", @@@",
"@@@STEP_LOG_LINE@request@ \"project\": \"project\"@@@",
"@@@STEP_LOG_LINE@request@ }, @@@",
"@@@STEP_LOG_LINE@request@ \"experimental\": \"NO\", @@@",
@@ -657,8 +657,8 @@
"infra_step": true,
"name": "get_sdk_paths",
"~followup_annotations": [
- "@@@STEP_LOG_LINE@glob@[START_DIR]/fuchsia/archives/sdk-core-subbuild-arm64-linux/core.tar.gz@@@",
- "@@@STEP_LOG_LINE@glob@[START_DIR]/fuchsia/archives/sdk-core-subbuild-x64-linux/core.tar.gz@@@",
+ "@@@STEP_LOG_LINE@glob@[START_DIR]/fuchsia/archives/core.arm64-linux-sdk-subbuild/core.tar.gz@@@",
+ "@@@STEP_LOG_LINE@glob@[START_DIR]/fuchsia/archives/core.x64-linux-sdk-subbuild/core.tar.gz@@@",
"@@@STEP_LOG_END@glob@@@"
]
},
@@ -670,7 +670,7 @@
"--json-output",
"/path/to/tmp/json",
"move",
- "[START_DIR]/fuchsia/archives/sdk-core-subbuild-arm64-linux/core.tar.gz",
+ "[START_DIR]/fuchsia/archives/core.arm64-linux-sdk-subbuild/core.tar.gz",
"[CLEANUP]/merged_sdk_archive.tar.gz"
],
"infra_step": true,
@@ -682,13 +682,13 @@
"-u",
"[START_DIR]/fuchsia/scripts/sdk/merger/merge.py",
"--first-archive",
- "[START_DIR]/fuchsia/archives/sdk-core-subbuild-x64-linux/core.tar.gz",
+ "[START_DIR]/fuchsia/archives/core.x64-linux-sdk-subbuild/core.tar.gz",
"--second-archive",
"[CLEANUP]/merged_sdk_archive.tar.gz",
"--output-archive",
"[CLEANUP]/merged_sdk_archive.tar.gz"
],
- "name": "merge [START_DIR]/fuchsia/archives/sdk-core-subbuild-x64-linux/core.tar.gz"
+ "name": "merge [START_DIR]/fuchsia/archives/core.x64-linux-sdk-subbuild/core.tar.gz"
},
{
"cmd": [
diff --git a/recipes/sdk.py b/recipes/sdk.py
index 4c7e0a4..e419f0f 100644
--- a/recipes/sdk.py
+++ b/recipes/sdk.py
@@ -73,6 +73,15 @@
kind=str,
help='The CIPD package root for upload.',
default='fuchsia'),
+ 'subbuilders':
+ Property(
+ kind=List(basestring),
+ help='SDK subbuilders used to generate SDK archives.',
+ # TODO(fxb/40777): Make this required. This is optional for a
+ # soft-transition away from sdk_subbuild.py to fuchsia/build.py.
+ # If this property is set, use these fuchsia/build.py subbuilders
+ # instead of the default sdk_subbuild.py.
+ default=()),
'companion_images':
Property(
kind=List(dict),
@@ -145,7 +154,7 @@
def RunSteps(api, manifest, remote, checkout_snapshot, gcs_bucket, sdk_name,
- cipd_root, companion_images, publish_branch, sdk_id):
+ cipd_root, subbuilders, companion_images, publish_branch, sdk_id):
build = api.buildbucket.build
revision = build.input.gitiles_commit.id
@@ -157,10 +166,16 @@
properties = {'sdk_id': sdk_id}
sdk_schedule_reqs = []
- builder_names = [
- 'sdk-%s-subbuild-%s-%s' % (sdk_name, target, api.platform.name)
- for target in TARGETS
- ]
+
+ # TODO (fxb/40777): Make this unconditionally use subbuilders.
+ if not subbuilders:
+ builder_names = [
+ 'sdk-%s-subbuild-%s-%s' % (sdk_name, target, api.platform.name)
+ for target in TARGETS
+ ]
+ else:
+ builder_names = subbuilders
+
for builder_name in builder_names:
sdk_schedule_reqs.append(
api.buildbucket.schedule_request(
@@ -469,6 +484,12 @@
revision = api.jiri.example_revision
+ # TODO(fxb/40777): Make this a default property.
+ subbuilders_properties = api.properties(subbuilders=[
+ 'core.arm64-linux-sdk-subbuild',
+ 'core.x64-linux-sdk-subbuild',
+ ])
+
topaz_properties = api.properties(
project='integration',
manifest='fuchsia/topaz/topaz',
@@ -588,12 +609,12 @@
api.properties(
companion_images=companion_images,
publish_branch=publish_branch,
- ) + failed_describe)
+ ) + failed_describe + subbuilders_properties)
yield (api.test('release_ci') + topaz_release_ci + ci_subbuilds +
ci_image_builds + api.properties(
companion_images=companion_images,
publish_branch=publish_branch,
- ) + describe + release_versions)
+ ) + describe + subbuilders_properties + release_versions)
yield (api.test('local_ci_build_failure') + topaz_global_ci +
ci_subbuilds_failure)
yield (api.test('local_ci_infra_failure') + topaz_global_ci +