// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'package:args/command_runner.dart'; import '../framework/metrics_center.dart'; class UploadMetricsCommand extends Command { UploadMetricsCommand() { argParser.addOption('results-file', help: 'Test results JSON to upload to Cocoon.'); argParser.addOption('commit-time', help: 'Commit time in UNIX timestamp'); argParser.addOption( 'task-name', help: '[Flutter infrastructure] Name of the task being run on.', ); argParser.addOption( 'benchmark-tags', help: '[Flutter infrastructure] Benchmark tags to surface on Skia Perf', ); } @override String get name => 'upload-metrics'; @override String get description => '[Flutter infrastructure] Upload results data to Cocoon/Skia Perf'; @override Future run() async { final String? resultsPath = argResults!['results-file'] as String?; final String? commitTime = argResults!['commit-time'] as String?; final String? taskName = argResults!['task-name'] as String?; final String? benchmarkTags = argResults!['benchmark-tags'] as String?; // Upload metrics to skia perf from test runner when `resultsPath` is specified. if (resultsPath != null) { await uploadToSkiaPerf(resultsPath, commitTime, taskName, benchmarkTags); print('Successfully uploaded metrics to skia perf'); } } }