blob: 35cb0a2f1b193a6fe2a03011c71c41dd0c22183a [file] [log] [blame]
// Copyright 2019 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 'dart:convert';
import 'package:cocoon_service/src/service/bigquery.dart';
const int existingIssueNumber = 85578;
const String existingIssueURL = 'https://github.com/flutter/flutter/issues/$existingIssueNumber';
const String ciYamlContent = '''
# Describes the targets run in continuous integration environment.
#
# Flutter infra uses this file to generate a checklist of tasks to be performed
# for every commit.
#
# More information at:
# * https://github.com/flutter/cocoon/blob/master/scheduler/README.md
enabled_branches:
- master
targets:
- name: Mac_android android_semantics_integration_test
presubmit: false
bringup: true # Flaky $existingIssueURL
scheduler: luci
properties:
tags: >
["devicelab"]
task_name: android_semantics_integration_test
- name: Mac_android ignore_myflakiness
bringup: true
presubmit: false
scheduler: luci
properties:
ignore_flakiness: "true"
tags: >
["devicelab"]
task_name: ignore_myflakiness
- name: Linux analyze
scheduler: luci
properties:
tags: >
["framework","hostonly"]
- name: Windows framework_tests_misc
presubmit: false
scheduler: luci
properties:
tags: >
["shard"]
''';
const String ciYamlContentNoIssue = '''
# Describes the targets run in continuous integration environment.
#
# Flutter infra uses this file to generate a checklist of tasks to be performed
# for every commit.
#
# More information at:
# * https://github.com/flutter/cocoon/blob/master/scheduler/README.md
enabled_branches:
- master
targets:
- name: Mac_android android_semantics_integration_test
presubmit: false
bringup: true
scheduler: luci
properties:
tags: >
["devicelab"]
task_name: android_semantics_integration_test
- name: Mac_android ignore_myflakiness
bringup: true
presubmit: false
scheduler: luci
properties:
ignore_flakiness: "true"
tags: >
["devicelab"]
task_name: ignore_myflakiness
- name: Linux analyze
scheduler: luci
properties:
tags: >
["framework","hostonly"]
- name: Windows framework_tests_misc
presubmit: false
scheduler: luci
properties:
tags: >
["shard"]
''';
const String ciYamlContentFlakyInIgnoreList = '''
# Describes the targets run in continuous integration environment.
#
# Flutter infra uses this file to generate a checklist of tasks to be performed
# for every commit.
#
# More information at:
# * https://github.com/flutter/cocoon/blob/master/scheduler/README.md
enabled_branches:
- master
targets:
- name: Mac_ios32 native_ui_tests_ios
presubmit: false
bringup: true
scheduler: luci
properties:
tags: >
["devicelab"]
task_name: native_ui_tests_ios
''';
const String testOwnersContent = '''
# Below is a list of Flutter team members' GitHub handles who are
# test owners of this repository.
#
# These owners are mainly team leaders and their sub-teams. Please feel
# free to claim ownership by adding your handle to corresponding tests.
#
# This file will be used as a reference when new flaky bugs are filed and
# the TL will be assigned and the sub-team will be labeled by default
# for further triage.
## Linux Android DeviceLab tests
/dev/devicelab/bin/tasks/android_semantics_integration_test.dart @HansMuller @flutter/framework
## Host only framework tests
# Linux analyze
/dev/bots/analyze.dart @HansMuller @flutter/framework
## Shards tests
# framework_tests @HansMuller @flutter/framework
/dev/devicelab/bin/tasks/android_semantics_integration_test.dart @HansMuller @flutter/framework
''';
const String expectedSemanticsIntegrationTestResponseBody = '''
<!-- meta-tags: To be used by the automation script only, DO NOT MODIFY.
{
"name": "Mac_android android_semantics_integration_test"
}
-->
The post-submit test builder `Mac_android android_semantics_integration_test`, which has been marked `bringup: true`, had 3 flakes over past 10 commits.
One recent flaky example for a same commit: https://ci.chromium.org/ui/p/flutter/builders/staging/Mac_android%20android_semantics_integration_test/103
Commit: https://github.com/flutter/flutter/commit/abc
Flaky builds:
https://ci.chromium.org/ui/p/flutter/builders/staging/Mac_android%20android_semantics_integration_test/103
https://ci.chromium.org/ui/p/flutter/builders/staging/Mac_android%20android_semantics_integration_test/102
https://ci.chromium.org/ui/p/flutter/builders/staging/Mac_android%20android_semantics_integration_test/101
Recent test runs:
https://flutter-dashboard.appspot.com/#/build?taskFilter=Mac_android%20android_semantics_integration_test
Please follow https://github.com/flutter/flutter/wiki/Reducing-Test-Flakiness#fixing-flaky-tests to fix the flakiness and enable the test back after validating the fix (internal dashboard to validate: go/flutter_test_flakiness).
''';
final List<BuilderRecord> semanticsIntegrationTestRecordsAllPassed = <BuilderRecord>[
BuilderRecord(commit: 'abc', isFlaky: false, isFailed: false),
BuilderRecord(commit: 'abc', isFlaky: false, isFailed: false),
BuilderRecord(commit: 'abc', isFlaky: false, isFailed: false),
BuilderRecord(commit: 'abc', isFlaky: false, isFailed: false),
BuilderRecord(commit: 'abc', isFlaky: false, isFailed: false),
BuilderRecord(commit: 'abc', isFlaky: false, isFailed: false),
BuilderRecord(commit: 'abc', isFlaky: false, isFailed: false),
BuilderRecord(commit: 'abc', isFlaky: false, isFailed: false),
];
final List<BuilderRecord> semanticsIntegrationTestRecordsFlaky = <BuilderRecord>[
BuilderRecord(commit: 'abc', isFlaky: false, isFailed: false),
BuilderRecord(commit: 'abc', isFlaky: false, isFailed: false),
BuilderRecord(commit: 'abc', isFlaky: true, isFailed: false),
BuilderRecord(commit: 'abc', isFlaky: false, isFailed: false),
BuilderRecord(commit: 'abc', isFlaky: false, isFailed: false),
BuilderRecord(commit: 'abc', isFlaky: false, isFailed: false),
BuilderRecord(commit: 'abc', isFlaky: false, isFailed: false),
BuilderRecord(commit: 'abc', isFlaky: false, isFailed: false),
];
final List<BuilderRecord> semanticsIntegrationTestRecordsFailed = <BuilderRecord>[
BuilderRecord(commit: 'abc', isFlaky: false, isFailed: false),
BuilderRecord(commit: 'abc', isFlaky: false, isFailed: true),
BuilderRecord(commit: 'abc', isFlaky: false, isFailed: false),
BuilderRecord(commit: 'abc', isFlaky: false, isFailed: false),
BuilderRecord(commit: 'abc', isFlaky: false, isFailed: false),
BuilderRecord(commit: 'abc', isFlaky: false, isFailed: false),
BuilderRecord(commit: 'abc', isFlaky: false, isFailed: false),
BuilderRecord(commit: 'abc', isFlaky: false, isFailed: false),
];
const String expectedSemanticsIntegrationTestOwner = 'HansMuller';
const List<String> expectedSemanticsIntegrationTestLabels = <String>[
'c: flake',
'P0',
'framework',
];
const String expectedSemanticsIntegrationTestTreeSha = 'abcdefg';
const int expectedSemanticsIntegrationTestPRNumber = 123;
const String expectedSemanticsIntegrationTestBuilderName = 'Mac_android android_semantics_integration_test';
const String expectedSemanticsIntegrationTestCiYamlContent = '''
# Describes the targets run in continuous integration environment.
#
# Flutter infra uses this file to generate a checklist of tasks to be performed
# for every commit.
#
# More information at:
# * https://github.com/flutter/cocoon/blob/master/scheduler/README.md
enabled_branches:
- master
targets:
- name: Mac_android android_semantics_integration_test
presubmit: false
scheduler: luci
properties:
tags: >
["devicelab"]
task_name: android_semantics_integration_test
- name: Mac_android ignore_myflakiness
bringup: true
presubmit: false
scheduler: luci
properties:
ignore_flakiness: "true"
tags: >
["devicelab"]
task_name: ignore_myflakiness
- name: Linux analyze
scheduler: luci
properties:
tags: >
["framework","hostonly"]
- name: Windows framework_tests_misc
presubmit: false
scheduler: luci
properties:
tags: >
["shard"]
''';
const String expectedSemanticsIntegrationTestPullRequestTitle =
'Marks Mac_android android_semantics_integration_test to be unflaky';
const String expectedSemanticsIntegrationTestPullRequestBody = '''
<!-- meta-tags: To be used by the automation script only, DO NOT MODIFY.
{
"name": "Mac_android android_semantics_integration_test"
}
-->
The issue $existingIssueURL has been closed, and the test has been passing for [8 consecutive runs](https://data.corp.google.com/sites/flutter_infra_metrics_datasite/flutter_check_test_flakiness_status_dashboard/?p=BUILDER_NAME:%22Mac_android%20android_semantics_integration_test%22).
This test can be marked as unflaky.
''';
const String expectedSemanticsIntegrationTestPullRequestBodyNoIssue = '''
<!-- meta-tags: To be used by the automation script only, DO NOT MODIFY.
{
"name": "Mac_android android_semantics_integration_test"
}
-->
The test has been passing for [8 consecutive runs](https://data.corp.google.com/sites/flutter_infra_metrics_datasite/flutter_check_test_flakiness_status_dashboard/?p=BUILDER_NAME:%22Mac_android%20android_semantics_integration_test%22).
This test can be marked as unflaky.
''';
final List<BuilderStatistic> stagingSemanticsIntegrationTestResponse = <BuilderStatistic>[
BuilderStatistic(
name: 'Mac_android android_semantics_integration_test',
flakyRate: 0.5,
flakyBuilds: <String>['103', '102', '101'],
succeededBuilds: <String>['203', '202', '201', '200', '199', '198', '197'],
recentCommit: 'abc',
flakyBuildOfRecentCommit: '103',
flakyNumber: 3,
totalNumber: 10,
),
// This builder is flakey, but it should be
// ignored because it has ignore_flakiness set.
BuilderStatistic(
name: 'Mac_android ignore_myflakiness',
flakyRate: 0.5,
flakyBuilds: <String>['103', '102', '101'],
succeededBuilds: <String>['203', '202', '201', '200', '199', '198', '197'],
recentCommit: 'abc',
flakyBuildOfRecentCommit: '103',
flakyNumber: 3,
totalNumber: 10,
),
];
String gitHubEncode(String source) {
final List<int> utf8Characters = utf8.encode(source);
final String base64encoded = base64Encode(utf8Characters);
return base64encoded;
}