mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
obey custom timeout supplied by cocoon (#9260)
This commit is contained in:
parent
c96ab53b42
commit
57ca2b5ce8
@ -16,7 +16,7 @@ import 'utils.dart';
|
|||||||
/// Maximum amount of time a single task is allowed to take to run.
|
/// Maximum amount of time a single task is allowed to take to run.
|
||||||
///
|
///
|
||||||
/// If exceeded the task is considered to have failed.
|
/// If exceeded the task is considered to have failed.
|
||||||
const Duration taskTimeout = const Duration(minutes: 25);
|
const Duration _kDefaultTaskTimeout = const Duration(minutes: 15);
|
||||||
|
|
||||||
/// Represents a unit of work performed in the CI environment that can
|
/// Represents a unit of work performed in the CI environment that can
|
||||||
/// succeed, fail and be retried independently of others.
|
/// succeed, fail and be retried independently of others.
|
||||||
@ -63,7 +63,10 @@ class _TaskRunner {
|
|||||||
_TaskRunner(this.task) {
|
_TaskRunner(this.task) {
|
||||||
registerExtension('ext.cocoonRunTask',
|
registerExtension('ext.cocoonRunTask',
|
||||||
(String method, Map<String, String> parameters) async {
|
(String method, Map<String, String> parameters) async {
|
||||||
final TaskResult result = await run();
|
final Duration taskTimeout = parameters.containsKey('timeoutInMinutes')
|
||||||
|
? new Duration(minutes: int.parse(parameters['timeoutInMinutes']))
|
||||||
|
: _kDefaultTaskTimeout;
|
||||||
|
final TaskResult result = await run(taskTimeout);
|
||||||
return new ServiceExtensionResponse.result(JSON.encode(result.toJson()));
|
return new ServiceExtensionResponse.result(JSON.encode(result.toJson()));
|
||||||
});
|
});
|
||||||
registerExtension('ext.cocoonRunnerReady',
|
registerExtension('ext.cocoonRunnerReady',
|
||||||
@ -75,7 +78,7 @@ class _TaskRunner {
|
|||||||
/// Signals that this task runner finished running the task.
|
/// Signals that this task runner finished running the task.
|
||||||
Future<TaskResult> get whenDone => _completer.future;
|
Future<TaskResult> get whenDone => _completer.future;
|
||||||
|
|
||||||
Future<TaskResult> run() async {
|
Future<TaskResult> run(Duration taskTimeout) async {
|
||||||
try {
|
try {
|
||||||
_taskStarted = true;
|
_taskStarted = true;
|
||||||
final TaskResult result = await _performTask().timeout(taskTimeout);
|
final TaskResult result = await _performTask().timeout(taskTimeout);
|
||||||
|
@ -143,6 +143,7 @@ tasks:
|
|||||||
Runs benchmarks from dev/benchmarks/microbenchmarks.
|
Runs benchmarks from dev/benchmarks/microbenchmarks.
|
||||||
stage: devicelab
|
stage: devicelab
|
||||||
required_agent_capabilities: ["has-android-device"]
|
required_agent_capabilities: ["has-android-device"]
|
||||||
|
timeout_in_minutes: 30
|
||||||
|
|
||||||
flutter_view__start_up:
|
flutter_view__start_up:
|
||||||
description: >
|
description: >
|
||||||
@ -195,6 +196,7 @@ tasks:
|
|||||||
Runs benchmarks from dev/benchmarks/microbenchmarks on iOS.
|
Runs benchmarks from dev/benchmarks/microbenchmarks on iOS.
|
||||||
stage: devicelab_ios
|
stage: devicelab_ios
|
||||||
required_agent_capabilities: ["has-ios-device"]
|
required_agent_capabilities: ["has-ios-device"]
|
||||||
|
timeout_in_minutes: 30
|
||||||
|
|
||||||
flutter_view_ios__start_up:
|
flutter_view_ios__start_up:
|
||||||
description: >
|
description: >
|
||||||
|
Loading…
Reference in New Issue
Block a user