Fix problem passing a runner empty command.
This relands https://flutter-review.googlesource.com/c/recipes/+/9642
with minor updates to conditionally add the git-branch parameter only
when it is not empty.
Change-Id: I286f41f49e53b7935db5e5d58a74005454db25d1
Bug: https://github.com/flutter/flutter/issues/73446
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/9661
Reviewed-by: Casey Hillers <chillers@google.com>
Commit-Queue: Godofredo Contreras <godofredoc@google.com>
diff --git a/recipes/devicelab/devicelab_drone.expected/basic.json b/recipes/devicelab/devicelab_drone.expected/basic.json
index 8c678bc..e2a23d3 100644
--- a/recipes/devicelab/devicelab_drone.expected/basic.json
+++ b/recipes/devicelab/devicelab_drone.expected/basic.json
@@ -34,7 +34,6 @@
"git",
"fetch",
"origin",
- "master",
"--recurse-submodules",
"--progress",
"--tags"
@@ -54,7 +53,7 @@
"git",
"checkout",
"-f",
- "FETCH_HEAD"
+ "2d72510e447ab60a9728aeea2362d8be2cbd7789"
],
"cwd": "[CACHE]/flutter sdk",
"infra_step": true,
@@ -202,7 +201,7 @@
"--luci-builder",
"Linux abc",
"--git-branch",
- ""
+ "master"
],
"cwd": "[CACHE]/flutter sdk/dev/devicelab",
"env": {
diff --git a/recipes/devicelab/devicelab_drone.expected/post-submit.json b/recipes/devicelab/devicelab_drone.expected/post-submit.json
index a48888f..3c7be72 100644
--- a/recipes/devicelab/devicelab_drone.expected/post-submit.json
+++ b/recipes/devicelab/devicelab_drone.expected/post-submit.json
@@ -200,9 +200,7 @@
"--results-file",
"[CLEANUP]/tmp_tmp_1",
"--luci-builder",
- "Linux abc",
- "--git-branch",
- ""
+ "Linux abc"
],
"cwd": "[CACHE]/flutter sdk/dev/devicelab",
"env": {
diff --git a/recipes/devicelab/devicelab_drone.expected/upload-metrics-mac.json b/recipes/devicelab/devicelab_drone.expected/upload-metrics-mac.json
index 1270756..5aec13b 100644
--- a/recipes/devicelab/devicelab_drone.expected/upload-metrics-mac.json
+++ b/recipes/devicelab/devicelab_drone.expected/upload-metrics-mac.json
@@ -218,7 +218,33 @@
"name": "Set execute permission"
},
{
- "cmd": [],
+ "cmd": [
+ "RECIPE[flutter::devicelab/devicelab_drone].resources/runner.sh",
+ "-t",
+ "abc",
+ "--results-file",
+ "[CLEANUP]/tmp_tmp_1",
+ "--luci-builder",
+ "Mac abc"
+ ],
+ "cwd": "[CACHE]/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[CACHE]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[CACHE]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/flutter sdk/bin",
+ "[CACHE]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/flutter sdk/bin",
+ "[CACHE]/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
"name": "run abc"
},
{
diff --git a/recipes/devicelab/devicelab_drone.expected/xcode-chromium-mac.json b/recipes/devicelab/devicelab_drone.expected/xcode-chromium-mac.json
index f9ab587..1db1ced 100644
--- a/recipes/devicelab/devicelab_drone.expected/xcode-chromium-mac.json
+++ b/recipes/devicelab/devicelab_drone.expected/xcode-chromium-mac.json
@@ -218,7 +218,33 @@
"name": "Set execute permission"
},
{
- "cmd": [],
+ "cmd": [
+ "RECIPE[flutter::devicelab/devicelab_drone].resources/runner.sh",
+ "-t",
+ "abc",
+ "--results-file",
+ "[CLEANUP]/tmp_tmp_1",
+ "--luci-builder",
+ "Mac abc"
+ ],
+ "cwd": "[CACHE]/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[CACHE]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[CACHE]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/flutter sdk/bin",
+ "[CACHE]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/flutter sdk/bin",
+ "[CACHE]/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
"name": "run abc"
},
{
diff --git a/recipes/devicelab/devicelab_drone.expected/xcode-devicelab.json b/recipes/devicelab/devicelab_drone.expected/xcode-devicelab.json
index f9ab587..1db1ced 100644
--- a/recipes/devicelab/devicelab_drone.expected/xcode-devicelab.json
+++ b/recipes/devicelab/devicelab_drone.expected/xcode-devicelab.json
@@ -218,7 +218,33 @@
"name": "Set execute permission"
},
{
- "cmd": [],
+ "cmd": [
+ "RECIPE[flutter::devicelab/devicelab_drone].resources/runner.sh",
+ "-t",
+ "abc",
+ "--results-file",
+ "[CLEANUP]/tmp_tmp_1",
+ "--luci-builder",
+ "Mac abc"
+ ],
+ "cwd": "[CACHE]/flutter sdk/dev/devicelab",
+ "env": {
+ "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+ "LUCI_BRANCH": "",
+ "LUCI_CI": "True",
+ "LUCI_PR": "",
+ "OS": "linux",
+ "PUB_CACHE": "[CACHE]/.pub-cache",
+ "SDK_CHECKOUT_PATH": "[CACHE]/flutter sdk"
+ },
+ "env_prefixes": {
+ "PATH": [
+ "[CACHE]/flutter sdk/bin",
+ "[CACHE]/flutter sdk/bin/cache/dart-sdk/bin",
+ "[CACHE]/flutter sdk/bin",
+ "[CACHE]/flutter sdk/bin/cache/dart-sdk/bin"
+ ]
+ },
"name": "run abc"
},
{
diff --git a/recipes/devicelab/devicelab_drone.py b/recipes/devicelab/devicelab_drone.py
index a35ac8e..1c742b2 100644
--- a/recipes/devicelab/devicelab_drone.py
+++ b/recipes/devicelab/devicelab_drone.py
@@ -45,17 +45,14 @@
results_path = api.path.mkstemp()
# Run test
runner_params = [
- '-t',
- task_name,
- '--results-file',
- results_path,
- '--luci-builder',
- api.properties.get('buildername'),
- # LUCI git checkouts end up in a detached HEAD state, so branch must
- # be passed from gitiles -> test runner -> Cocoon.
- '--git-branch',
- git_branch
+ '-t', task_name, '--results-file', results_path, '--luci-builder',
+ api.properties.get('buildername')
]
+ # LUCI git checkouts end up in a detached HEAD state, so branch must
+ # be passed from gitiles -> test runner -> Cocoon.
+ if git_branch:
+ # git_branch is set only when the build was triggered by buildbucket.
+ runner_params.extend(['--git-branch', git_branch])
with api.context(env=env, env_prefixes=env_prefixes, cwd=devicelab_path):
api.step('flutter doctor', ['flutter', 'doctor', '--verbose'])
api.step('flutter update-packages', ['flutter', 'update-packages'])
@@ -72,7 +69,9 @@
env_prefixes=env_prefixes), api.step.defer_results():
resource_name = api.resource('runner.sh')
api.step('Set execute permission', ['chmod', '755', resource_name])
- api.step('run %s' % task_name, [resource_name].extend(runner_params))
+ test_runner_command = [resource_name]
+ test_runner_command.extend(runner_params)
+ api.step('run %s' % task_name, test_runner_command)
# This is to clean up leaked processes.
api.os_utils.kill_processes()
# Collect memory/cpu/process after task execution.
@@ -119,9 +118,12 @@
api.expect_exception('ValueError'),
)
yield api.test(
- "basic",
- api.properties(buildername='Linux abc', task_name='abc'),
+ "basic", api.properties(buildername='Linux abc', task_name='abc'),
api.repo_util.flutter_environment_data(),
+ api.buildbucket.ci_build(
+ project='test',
+ git_repo='git.example.com/test/repo',
+ )
)
yield api.test(
"xcode-devicelab",
diff --git a/recipes/devicelab/devicelab_drone.resources/runner.sh b/recipes/devicelab/devicelab_drone.resources/runner.sh
index d9b2763..d913d5e 100644
--- a/recipes/devicelab/devicelab_drone.resources/runner.sh
+++ b/recipes/devicelab/devicelab_drone.resources/runner.sh
@@ -4,7 +4,8 @@
# as the test runner script.
set -e
-if [ -f /usr/local/bin/unlock_login_keychain.sh ] then
+if [ -f /usr/local/bin/unlock_login_keychain.sh ]
+then
/usr/local/bin/unlock_login_keychain.sh
else
echo "This bot does not support codesigning"