Pass git branch to devicelab test runner
The git checkout in LUCI is in a detached state,
so the test runner must be told the git branch.
Bug: https://github.com/flutter/flutter/issues/71749
Test: Added branch to upload_metrics test
Change-Id: I83e8e6544e37c3070ffb016bb23cf8c12cc6e3f6
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/9160
Reviewed-by: Keyong Han <keyonghan@google.com>
Commit-Queue: Casey Hillers <chillers@google.com>
diff --git a/recipes/devicelab/devicelab_drone.expected/post-submit.json b/recipes/devicelab/devicelab_drone.expected/post-submit.json
index 3ae8f08..c1c7d4c 100644
--- a/recipes/devicelab/devicelab_drone.expected/post-submit.json
+++ b/recipes/devicelab/devicelab_drone.expected/post-submit.json
@@ -34,7 +34,7 @@
"git",
"fetch",
"origin",
- "master",
+ "refs/heads/master",
"--recurse-submodules",
"--progress",
"--tags"
@@ -220,7 +220,13 @@
"dart",
"bin/run.dart",
"-t",
- "abc"
+ "abc",
+ "--service-account-token-file",
+ "[CLEANUP]/tmp_tmp_1",
+ "--luci-builder",
+ "Linux abc",
+ "--git-branch",
+ "master"
],
"cwd": "[START_DIR]/flutter/dev/devicelab",
"env": {
diff --git a/recipes/devicelab/devicelab_drone.py b/recipes/devicelab/devicelab_drone.py
index b7441cc..b7fe5cc 100644
--- a/recipes/devicelab/devicelab_drone.py
+++ b/recipes/devicelab/devicelab_drone.py
@@ -40,24 +40,24 @@
deps = api.properties.get('dependencies', [])
api.flutter_deps.required_deps(env, env_prefixes, deps)
devicelab_path = flutter_path.join('dev', 'devicelab')
+ # Run test
test_runner_command = ['dart', 'bin/run.dart', '-t', task_name]
# Create service account for post submit tests.
- service_account_args = []
if api.properties.get('upload_metrics'):
service_account = api.service_account.default()
access_token = service_account.get_access_token()
access_token_path = api.path.mkstemp()
+ git_branch = api.properties.get('branch').replace('refs/heads/', '')
api.file.write_text(
"write token", access_token_path, access_token, include_log=False
)
test_runner_command.extend([
- '--service-account-token-file', access_token_path, '--luci-builder',
- api.properties.get('buildername')
+ '--service-account-token-file', access_token_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
])
- # Run test
- test_runner_command = ['dart', 'bin/run.dart', '-t', task_name]
- test_runner_command.extend(service_account_args)
-
# Gems are installed differently new and old versions of xcode. Pre xcode 12
# the ruby sdk included in xcode was able to compile the gems correctly but
# with xcode 12 gems building from inside a xcode context fails. We use the
@@ -134,6 +134,7 @@
yield api.test(
"post-submit",
api.properties(
+ branch='refs/heads/master',
buildername='Linux abc',
pool='flutter.luci.prod',
task_name='abc',