Remove complexity from global generators.
The workflow was installing dependencies, cleaning up xcode repository
and re-installing multiple times.
Bug: https://github.com/flutter/flutter/issues/114477
Change-Id: I690647d7f7c6ab18241539f9ac8428cc279cc02e
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/35481
Reviewed-by: Keyong Han <keyonghan@google.com>
Commit-Queue: Godofredo Contreras <godofredoc@google.com>
diff --git a/recipes/engine_v2/engine_v2.py b/recipes/engine_v2/engine_v2.py
index f1cbce0..87a1b4f 100644
--- a/recipes/engine_v2/engine_v2.py
+++ b/recipes/engine_v2/engine_v2.py
@@ -138,23 +138,11 @@
with api.step.nest('Global generators') as presentation:
if 'tasks' in generators:
api.flutter_bcid.report_stage(BcidStage.COMPILE.value)
- for generator_task in generators['tasks']:
- # Generators must run from inside flutter folder.
- # If platform is mac we need to run the generator from an xcode context.
- if api.platform.is_mac:
- with api.osx_sdk('ios'):
- # Install dependencies from within the ios context use
- # xcode's ruby version.
- deps = api.properties.get('dependencies', [])
- api.flutter_deps.required_deps(env, env_prefixes, deps)
- with api.context(env=env, cwd=full_engine_checkout):
- _run_global_generator(api, generator_task, full_engine_checkout, env, env_prefixes)
- else:
- # Install dependencies.
- deps = api.properties.get('dependencies', [])
- api.flutter_deps.required_deps(env, env_prefixes, deps)
- with api.context(env=env, cwd=full_engine_checkout):
- _run_global_generator(api, generator_task, full_engine_checkout, env, env_prefixes)
+ if api.platform.is_mac:
+ with api.osx_sdk('ios'):
+ _run_global_generators(api, generators, full_engine_checkout, env, env_prefixes)
+ else:
+ _run_global_generators(api, generators, full_engine_checkout, env, env_prefixes)
api.file.listdir('Final List checkout', full_engine_checkout.join('src', 'out'), recursive=True)
api.file.listdir('Final List checkout 2', full_engine_checkout.join('src', 'flutter', 'sky'), recursive=True)
# Global archives
@@ -178,16 +166,24 @@
api.flutter_bcid.report_stage(BcidStage.UPLOAD_COMPLETE.value)
-def _run_global_generator(api, generator_task, full_engine_checkout, env, env_prefixes):
- cmd = [generator_task.get('language')] if generator_task.get('language') else []
- api.file.listdir('List checkout', full_engine_checkout.join('src', 'out'), recursive=True)
- script = generator_task.get('script')
- full_path_script = full_engine_checkout.join('src', script)
- cmd.append(full_path_script)
- cmd.extend(generator_task.get('parameters', []))
- # Run within an engine context to make dart available.
- with api.context(env=env, env_prefixes=env_prefixes):
- api.step(generator_task.get('name'), cmd)
+def _run_global_generators(api, generators, full_engine_checkout, env, env_prefixes):
+ # Install dependencies. If this is running from within an xcode context it will use
+ # xcode's ruby.
+ deps = api.properties.get('dependencies', [])
+ api.flutter_deps.required_deps(env, env_prefixes, deps)
+ for generator_task in generators['tasks']:
+ # Generators must run from inside flutter folder.
+ # If platform is mac we need to run the generator from an xcode context.
+ with api.context(env=env, cwd=full_engine_checkout):
+ cmd = [generator_task.get('language')] if generator_task.get('language') else []
+ api.file.listdir('List checkout', full_engine_checkout.join('src', 'out'), recursive=True)
+ script = generator_task.get('script')
+ full_path_script = full_engine_checkout.join('src', script)
+ cmd.append(full_path_script)
+ cmd.extend(generator_task.get('parameters', []))
+ # Run within an engine context to make dart available.
+ with api.context(env=env, env_prefixes=env_prefixes):
+ api.step(generator_task.get('name'), cmd)
def GenTests(api):