Run global generators from inside an engine context.
This is required because some of the global generators are using dart
binaries.
Bug: https://github.com/flutter/flutter/issues/81855
Change-Id: I7ca33b1f7c79f213e8fd54631e572bc5fe6468f8
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/33620
Commit-Queue: Godofredo Contreras <godofredoc@google.com>
Reviewed-by: Keyong Han <keyonghan@google.com>
diff --git a/recipes/engine_v2/engine_v2.expected/basic_linux.json b/recipes/engine_v2/engine_v2.expected/basic_linux.json
index 2f0a42c..3298acc 100644
--- a/recipes/engine_v2/engine_v2.expected/basic_linux.json
+++ b/recipes/engine_v2/engine_v2.expected/basic_linux.json
@@ -784,6 +784,11 @@
"OS": "linux",
"REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
"luci_context": {
"realm": {
"name": "proj:try"
diff --git a/recipes/engine_v2/engine_v2.expected/basic_mac.json b/recipes/engine_v2/engine_v2.expected/basic_mac.json
index 57ac209..17988b9 100644
--- a/recipes/engine_v2/engine_v2.expected/basic_mac.json
+++ b/recipes/engine_v2/engine_v2.expected/basic_mac.json
@@ -939,6 +939,11 @@
"OS": "darwin",
"REVISION": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin"
+ ]
+ },
"luci_context": {
"realm": {
"name": "proj:try"
diff --git a/recipes/engine_v2/engine_v2.py b/recipes/engine_v2/engine_v2.py
index ddd8312..8f7985e 100644
--- a/recipes/engine_v2/engine_v2.py
+++ b/recipes/engine_v2/engine_v2.py
@@ -140,13 +140,13 @@
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)
+ _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)
+ _run_global_generator(api, generator_task, 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
@@ -172,14 +172,16 @@
)
-def _run_global_generator(api, generator_task, full_engine_checkout):
+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', []))
- api.step(generator_task.get('name'), cmd)
+ # 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):