github.com/GoogleCloudPlatform/testgrid@v0.0.174/pb/config/config.proto (about) 1 syntax = "proto3"; 2 3 package testgrid.config; 4 5 option go_package = "github.com/GoogleCloudPlatform/testgrid/pb/config"; 6 7 // Protocol buffer for configuring testgrid.k8s.io 8 9 import "pb/custom_evaluator/custom_evaluator.proto"; 10 11 // Specifies the test name, and its source 12 message TestNameConfig { 13 // Specifies name elements to be selected from configuration values 14 message NameElement { 15 // A space-delimited string of labels 16 string labels = 1; 17 18 // Configuration value to use. 19 // Valid choice are: 20 // 'Tests name': The name of a test case 21 // 'Commit': The commit number of the build 22 // 'Context', 'Thread': The info extracted from each junit files: 23 // - junit_core-os_01.xml -> Context: core-os, Thread: 01 24 // - junit_runner.xml -> Context: runner 25 // - junit_01.xml -> Thread: 01 26 // or any metadata key from finished.json, which is copied from your test 27 // suite. 28 // 29 // A valid sample TestNameConfig looks like: 30 // test_name_config: 31 // name_elements: 32 // - target_config: Tests name 33 // - target_config: Context 34 // name_format: '%s [%s]' 35 string target_config = 2; 36 // Whether to use the build-target name 37 bool build_target = 3; 38 // A space-delimited string of Bazel build tags. 39 string tags = 4; 40 // The key of a test result's property. 41 string test_property = 5; 42 } 43 44 // The name elements specifying the target test name for this tab. 45 repeated NameElement name_elements = 1; 46 47 // Specifies a printf-style format string for name elements. The format 48 // string should have as many conversions as there are name_elements. 49 // For example, two name_elements could be used with name_format="%s: %s". 50 string name_format = 2; 51 } 52 53 // A single notification. 54 message Notification { 55 // Required: Text summary of the issue or notice. 56 string summary = 1; 57 // Optional: Link to further information, such as a bug, email, document, etc. 58 string context_link = 2; 59 } 60 61 // Specifies a group of tests to gather. 62 message TestGroup { 63 // Name of this TestGroup, for mapping dashboard tabs to tests. 64 string name = 1; 65 66 // Path to the test result stored in gcs (some-bucket/some/optional/path). 67 string gcs_prefix = 2; 68 69 // Number of days of test results to gather and serve. 70 int32 days_of_results = 3; 71 72 // Whether to ignore pending (currently running) test results. 73 bool ignore_pending = 4; 74 75 // Whether to ignore reported build results. It is recommended that tests 76 // report BUILD_FAIL instead of relying on this being disabled. 77 bool ignore_built = 5; 78 79 enum TestsName { 80 TESTS_NAME_UNSPECIFIED = 0; 81 TESTS_NAME_IGNORE = 1; 82 TESTS_NAME_REPLACE = 2; 83 TESTS_NAME_APPEND = 3; 84 } 85 86 // What to do with the 'Tests name' configuration value. It can replace the 87 // name of the test, be appended to the name of the test, or ignored. If it is 88 // ignored, then the name of the tests will be the build target. 89 TestsName tests_name_policy = 6; 90 91 reserved 7; // Unused gather_test_properties 92 93 // Tests with names that include these substrings will be removed from the 94 // table. 95 repeated string ignore_test_substring = 8; 96 97 // Custom column headers for defining extra column-heading rows from values in 98 // the test result. 99 message ColumnHeader { 100 string label = 1; 101 string property = 2; 102 string configuration_value = 3; 103 104 // If true, list all distinct values. Else, list multiple distinct values as 105 // "*". 106 bool list_all_values = 4; 107 } 108 repeated ColumnHeader column_header = 9; 109 110 enum FallbackGrouping { 111 FALLBACK_GROUPING_NONE = 0; 112 FALLBACK_GROUPING_DATE = 1; 113 FALLBACK_GROUPING_LABELS = 2; 114 FALLBACK_GROUPING_ID = 3; 115 FALLBACK_GROUPING_BUILD = 4; 116 117 // When using this, ensure fallback_grouping_configuration_value is 118 // also set. 119 FALLBACK_GROUPING_CONFIGURATION_VALUE = 5; 120 } 121 122 // A test grouping option used if not specified by primary_grouping (#29) 123 FallbackGrouping fallback_grouping = 10; 124 125 // DEPRECATED: use DashboardTabAlertOptions > alert_stale_result_hours 126 int32 alert_stale_results_hours = 11 [deprecated = true]; 127 128 // DEPRECATED: use DashboardTabAlertOptions > num_failures_to_alert 129 int32 num_failures_to_alert = 12 [ deprecated = true ]; 130 131 // DEPRECATED: use dashboard_tab.beta_autobug_options.beta_autobug_component 132 // instead. 133 int32 bug_component = 13 [deprecated = true]; 134 135 // Default code search path for searching regressions. Overridden by 136 // code_search_path in DashboardTab. 137 string code_search_path = 14; 138 139 // The number of columns to consider "recent" for a variety of purposes. 140 int32 num_columns_recent = 15; 141 142 // Whether to read test metadata from the test results. Information 143 // from the test metadata is used to determine where bugs are filed in 144 // specific cases. 145 bool use_test_metadata = 16; 146 147 // DEPRECATED: use DashboardTabAlertOptions > alert_mail_to_address instead 148 string alert_mail_to_addresses = 17 [deprecated = true]; 149 150 // DEPRECATED: use DashboardTabAlertOptions > subject 151 string alert_mail_subject = 18 [deprecated = true]; 152 153 // DEPRECATED: use DashboardTabAlertOptions > alert_mail_failure_message 154 string alert_mail_failure_message = 19 [deprecated = true]; 155 156 // DEPRECATED: use DashboardTabAlertOptions > debug_url 157 string alert_mail_debug_url = 20 [deprecated = true]; 158 159 // DEPRECATED: use DashboardTabAlertOptions > wait_minutes_between_emails 160 int32 min_elapsed_minutes_between_mails = 21 [deprecated = true]; 161 162 reserved 22; // No longer used 163 164 // Whether to treat a combination of passes and failures within one test as a 165 // flaky status. 166 bool enable_flaky_status = 23; 167 168 // disable_merged_status will restores deprecated behavior of 169 // splitting multiple foo rows into foo [2], etc rather a single 170 // potentially flaky row. 171 bool disable_merged_status = 60; 172 173 // deprecated - always set to true 174 bool use_kubernetes_client = 24 [deprecated = true]; 175 176 // When use_kubernetes_client is on testgrid expects these results 177 // to come from prow, which should include a prowjob.json and podinfo.json 178 // to help debugging. If you do not expect these files to exist, you 179 // can optionally disable this analysis. 180 bool disable_prowjob_analysis = 62; 181 182 // deprecated - always set to true 183 bool is_external = 25; 184 185 // Specifies the test name for a test. 186 TestNameConfig test_name_config = 26; 187 188 // A list of notifications attached to this test group. 189 // This is displayed on any dashboard tab backed by this test group. 190 repeated Notification notifications = 27; 191 192 reserved 28; // Deprecated Field (column_sort_by) 193 194 enum PrimaryGrouping { 195 PRIMARY_GROUPING_NONE = 0; 196 PRIMARY_GROUPING_BUILD = 1; 197 } 198 199 // A primary grouping strategy for grouping test results in columns. 200 // If a primary grouping is specified, the fallback grouping is ignored. 201 PrimaryGrouping primary_grouping = 29; 202 203 // Whether to collect pass-fail data for test methods. Additional test cases 204 // will be added for each test method in a target. 205 bool enable_test_methods = 30; 206 207 // Associates the presence of a named test property with a custom short text 208 // displayed over the results. Short text must be <=5 characters long. 209 message TestAnnotation { 210 string short_text = 1; 211 oneof short_text_message_source { 212 string property_name = 2; 213 } 214 } 215 216 // Test annotations to look for. Adds custom icon to results. 217 repeated TestAnnotation test_annotations = 31; 218 219 // Maximum number of individual test methods to collect for any given test 220 // row. If a test has more than this many methods, no methods will be 221 // displayed. 222 int32 max_test_methods_per_test = 32; 223 224 reserved 33; 225 226 // Default metadata that should be applied for opening bugs, if a given regex 227 // matches against a test's name. 228 // Requires 'use_test_metadata = true'. 229 repeated TestMetadataOptions test_metadata_options = 34; 230 231 // A space-delimited string of tags that are used to filter test targets. 232 // A leading - before the tag means this tag should not be present 233 // in the target. 234 // Example: 235 // contains tag1, but not tag2: test_tag_pattern = 'tag1 -tag2' 236 string test_tag_pattern = 35; 237 238 // DEPRECATED: use dashboard_tab.beta_autobug_options instead. 239 AutoBugOptions auto_bug_options = 36 [deprecated = true]; 240 241 // Max number of days any single test can take. 242 int32 max_test_runtime_hours = 37; 243 244 // The number of consecutive test passes to close the alert. 245 int32 num_passes_to_disable_alert = 38; 246 247 // If true, also associate bugs with tests if the test result's overview/group 248 // ID is in the bug. 249 bool link_bugs_by_group = 39; 250 251 reserved 40; 252 253 // A string key value pair message 254 message KeyValue { 255 string key = 1; 256 string value = 2; 257 } 258 259 // Only show test methods with all required properties 260 repeated KeyValue test_method_properties = 41; 261 262 // If true, allows gathering and associating bugs with targets in the 263 // dashboard. Required in order to auto-file bugs. 264 bool gather_bugs = 42; 265 266 // Numeric property metric value to be used for short text. If this property 267 // is present, it will override all the other short text values. 268 string short_text_metric = 43; 269 270 // The key of a key-value pair in metadata (a 'configuration value'). 271 // This overrides the default build with the value from the key-value pair. 272 string build_override_configuration_value = 44; 273 274 // If true, only associate bugs with test methods if that test method is 275 // mentioned in the bug. If false, bugs will be associated with all test 276 // methods. 277 bool link_bugs_by_test_methods = 45; 278 279 // Regex to match test methods. Only test methods with names that match 280 // this regex will be included in the table. 281 string test_method_match_regex = 46; 282 283 // Regex to exclude test methods. Test methods with names that match 284 // this regex will be excluded from the table, even if they match 285 // test_method_match_regex. 286 string test_method_unmatch_regex = 61; 287 288 // If true, test method names are printed with the full class names. 289 bool use_full_method_names = 47; 290 291 reserved 48; 292 293 // A configuration value that is used as a fallback grouping. 294 // This is useful for cases where there are builds that shared the same 295 // commit but are run at separate times of day. 296 string fallback_grouping_configuration_value = 49; 297 298 message ResultSource { 299 reserved 1, 3 to 5; // Legacy sources 300 301 oneof result_source_config { 302 // GCS buckets holding junit and json results, typically created by prow. 303 GCSConfig gcs_config = 2; 304 // Invocations stored in ResultStore. 305 ResultStoreConfig resultstore_config = 6; 306 } 307 } 308 309 // Configuration type of the result source. 310 ResultSource result_source = 50; 311 312 // Set of rules that are evaluated with each test result. If an evaluation is 313 // successful, the status of that test result will be whatever is specified 314 // for a given rule. For more information, look at RuleSet documention 315 testgrid.custom_evaluator.RuleSet custom_evaluator_rule_set = 51; 316 317 // If true, instead of updating the group, read the state proto from storage 318 // and update summary, alerts, etc. from that state. 319 // This only applies to test group state, not bug state for a test group. 320 // This assumes that the state proto is updated through other means (another 321 // updater, manually, etc). 322 bool read_state_from_storage = 52; 323 324 // If true, only add the most recent result for a test when multiple results 325 // for a test with the same name are encountered. 326 bool ignore_old_results = 53; 327 328 // If True, ignore the 'pass with skips' status (show as a blank cell). 329 bool ignore_skip = 54; 330 331 // A string containing python formatting specifiers that overrides the 332 // commit with the date formatted according to this string. This is useful 333 // for aggregating multiple columns that don't have a matching commit. 334 string build_override_strftime = 55; 335 336 // Specify a property that will be read into state in the user_property field. 337 // These can be substituted into LinkTemplates. 338 string user_property = 56; 339 340 reserved 57 to 59; 341 342 // Where to gather linked issues from. (Currently a no-op). 343 IssueGatherOptions issue_gather_options = 63; 344 } 345 346 // GCSConfig specifies results stored in GCS, typically created by prow. 347 // 348 // Each invocation is stored in a GCS path, containing json metadata files 349 // as well as junit and other artifacts specifying the result of the run. 350 // 351 // More info: 352 // https://github.com/GoogleCloudPlatform/testgrid/tree/master/metadata 353 message GCSConfig { 354 // Path to the test result stored in gcs (some-bucket/some/optional/path). 355 string gcs_prefix = 1; 356 357 // The GCP project where GCS sends notifications for the above prefix. 358 string pubsub_project = 2; 359 // The pubsub subscription ID in the above topic 360 string pubsub_subscription = 3; 361 } 362 363 // ResultStoreConfig specifies results stored in ResultStore. 364 message ResultStoreConfig { 365 // Google Cloud Platform project ID where ResultStore results are stored. 366 string project = 1; 367 // A simple query to filter for particular results. 368 // Currently, only allows a query in the form of `target:"<target>"`. 369 string query = 2; 370 } 371 372 // Options for where to gather linked issues from. 373 message IssueGatherOptions { 374 reserved 1, 2; 375 } 376 377 // Default metadata to apply when opening bugs. 378 message TestMetadataOptions { 379 // Apply the following metadata if this regex matches a test's name. 380 string test_name_regex = 1; 381 382 // Default bug component to open a bug in. 383 int32 bug_component = 2; 384 385 // Default owner to assign a bug to. 386 string owner = 3; 387 388 // List of default users to CC a bug to. 389 repeated string cc = 4; 390 391 // Apply following metadata if this regex matches a test’s failure message. 392 string message_regex = 5; 393 394 reserved 6; 395 } 396 397 message AutoBugOptions { 398 // [BETA] When specified, file bugs to this component, using the beta AutoBug. 399 // If you do not want to opt into the beta, specify `bug_component` in your 400 // TestGroup instead. 401 // TODO(b/154866134): Rename to autobug_component once we've migrated. 402 int32 beta_autobug_component = 10; 403 404 // Whether to auto-close auto-filed bugs. 405 // Alias for "passing_behavior = CLOSE_ON_PASSING"; 406 bool auto_close = 1; 407 408 // A list of hotlist ids attached to auto-filed bugs. 409 repeated int64 hotlist_ids = 2; 410 411 // Scale of issue priority, used to indicate importance of issue. 412 enum Priority { 413 // Unspecified; may not set priority at all 414 PRIORITY_UNSPECIFIED = 0; 415 // See https://developers.google.com/issue-tracker/concepts/issues 416 P0 = 1; 417 P1 = 2; 418 P2 = 3; 419 P3 = 4; 420 P4 = 5; 421 } 422 423 // The priority of the auto-filed bug. If provided, this will overwrite the 424 // priority in the component default template 425 Priority priority = 3; 426 427 // A list of hotlist id sources 428 // Corresponds with the list hotlist_ids (#2) 429 repeated HotlistIdFromSource hotlist_ids_from_source = 4 [deprecated = true]; 430 431 // If True, files separate bugs for each failing target, instead of one bug 432 // for each set of targets failing at the same run. 433 bool file_individual = 5; 434 435 // If True; keep only one automantic bug per target, regardless of the number 436 // of separate failures a target gets. Requires `file_individual` to be True. 437 // Consider setting `num_passes_to_disable_alert` instead if you're tracking 438 // flaky tests. 439 bool singleton_autobug = 6; 440 441 // If provided: only raise one bug if the number of failures for a single 442 // query by testgrid for a single failure group exceeds this value. Requires 443 // 'file_individual' to be True. 444 int32 max_allowed_individual_bugs = 7; 445 446 // If True; file issues for the 'Overall' target, even if otherwise invalid. 447 bool file_overall = 8; 448 449 message DefaultTestMetadata { 450 int32 bug_component = 1; 451 string owner = 2; 452 repeated string cc = 3; 453 } 454 455 // If provided: supplements `max_allowed_individual_bugs` field to raise a 456 // single bug if the number of failures for a single query by testgrid exceeds 457 // the max_allowed_individual_bugs` value, regardless of `TEST_METADATA` 458 // configurations. This is useful for filing fewer suspected environmental 459 // failure bugs and routing them to a specific location (i.e. an oncall). 460 // Requires 'file_individual' to be true and `max_allowed_individual_bugs` to 461 // not be empty. 462 DefaultTestMetadata default_test_metadata = 9; 463 464 // [BETA] If True, query the test metadata API to get issue-routing metadata. 465 // Enables routing issues using structured test failures. 466 bool advanced_test_metadata = 11; 467 468 // If True, file a bug when the tab goes stale. 469 // (Requires `alert_stale_results_hours` to be set.) 470 bool file_stale = 12; 471 472 // If True, ignore overall rows when auto-filing. 473 bool ignore_overall = 13; 474 475 // [BETA] Extra text displayed in opened bugs. e.g., for including a link to a 476 // playbook. 477 string note = 14; 478 479 reserved 15, 16; 480 } 481 482 message HotlistIdFromSource { 483 oneof hotlist_id_source { 484 // ID value of hotlists 485 int64 value = 1; 486 // A label prefix 487 string label = 2; 488 } 489 } 490 491 // Specifies a dashboard. 492 message Dashboard { 493 // A list of the tabs on the dashboard. 494 repeated DashboardTab dashboard_tab = 1; 495 496 // A name for the Dashboard. 497 string name = 2; 498 499 // A list of notifications attached to this dashboard. 500 // This is displayed on any dashboard tab in this dashboard. 501 repeated Notification notifications = 3; 502 503 reserved 4; // Deprecated show_summary_first bool, unused 504 505 // Control which tab is displayed when first opening a dashboard. 506 // Defaults to Summary 507 string default_tab = 5; 508 509 // Controls whether to suppress highlighting of failing tabs. 510 bool downplay_failing_tabs = 8; 511 512 // Deprecated: Invert of 'downplay_failing_tabs' 513 bool highlight_failing_tabs = 6 [deprecated = true]; 514 515 // Controls whether to apply special highlighting to result header columns for 516 // the current day. 517 bool highlight_today = 7; 518 519 // A description paragraph to be displayed. 520 string description = 9; 521 } 522 523 message LinkTemplate { 524 // The URL template. 525 string url = 1; 526 // The options templates. 527 repeated LinkOptionsTemplate options = 2; 528 // An optional name, used for the context menu 529 string name = 3; 530 } 531 532 // A simple key/value pair for link options. 533 message LinkOptionsTemplate { 534 // The key for the option. This is not expanded. 535 string key = 1; 536 537 // The value for the option. This is expanded the same as the LinkTemplate. 538 string value = 2; 539 } 540 541 // A single tab on a dashboard. 542 message DashboardTab { 543 // The name of the dashboard tab to display in the client. 544 string name = 1; 545 546 // The name of the TestGroup specifying the test results for this tab. 547 string test_group_name = 2; 548 549 // Default bug component for manually filing bugs from the dashboard 550 int32 bug_component = 3; 551 552 // Default code search path for searching regressions. This value overrides 553 // the default in the TestGroup config so that dashboards may be customized 554 // separately. 555 string code_search_path = 4; 556 557 // See TestGroup.num_columns_recent. This value overrides the default in the 558 // TestGroup config so that dashboards may be customized separately. 559 int32 num_columns_recent = 5; 560 561 // Base options to always include, for example: 562 // width=20&include-filter-by-regex=level_tests 563 // This is taken from the #fragment part of the testgrid url. 564 // Best way to create these is to setup the options on testgrid and then 565 // copy the #fragment part. 566 string base_options = 6; 567 568 // The URL template to visit after clicking on a cell. 569 LinkTemplate open_test_template = 7; 570 571 // The URL template to visit when filing a bug. 572 LinkTemplate file_bug_template = 8; 573 574 // The URL template to visit when attaching a bug 575 LinkTemplate attach_bug_template = 9; 576 577 // Text to show in the about menu as a link to another view of the results. 578 string results_text = 10; 579 580 // The URL template to visit after clicking. 581 LinkTemplate results_url_template = 11; 582 583 // The URL template to visit when searching for code changes, such as pull 584 // requests 585 LinkTemplate code_search_url_template = 12; 586 587 // A description paragraph to be displayed. 588 string description = 13; 589 590 // A regular expression that uses the named group syntax to specify how to 591 // show names in a table. 592 string tabular_names_regex = 14; 593 594 // Configuration options for dashboard tab alerts. 595 DashboardTabAlertOptions alert_options = 15; 596 597 // Configuration options for dashboard tab flakiness alerts. 598 DashboardTabFlakinessAlertOptions flakiness_alert_options = 24; 599 600 // Configuration options for customizing dashboard tab status calculation. 601 DashboardTabStatusCustomizationOptions status_customization_options = 26; 602 603 // A URL for the "About this Dashboard" menu option 604 string about_dashboard_url = 16; 605 606 // The URL template to visit when viewing an associated bug. 607 LinkTemplate open_bug_template = 17; 608 609 // If true, auto-file bugs when new alerts occur. This requires that the 610 // backing test group has `bug_component` set and uses the backing test 611 // group's `auto_bug_options`. 612 bool auto_file_bugs = 18; 613 614 // Display user local time on the dashboard when set to true (by default). 615 // If false, uses Pacific Timezone for this DashboardTab. 616 bool display_local_time = 19; 617 618 // A set of optional LinkTemplates that will become right-click context menu 619 // items. 620 // TODO(b/159042168) in the near future this should be re-implemented as a 621 // generic list of repeated LinkTemplates which users may specify in their 622 // reqpective configurations as right-click context menus with names and 623 // actions upon being clicked. 624 LinkTemplate context_menu_template = 20; 625 626 // When specified, treat a tab as BROKEN as long as one of the most recent 627 // columns are "broken" (ratio of failed to total tests exceeds <threshold>). 628 float broken_column_threshold = 21; 629 630 // Options for auto-filed bugs. 631 // Using this for a dashboard tab requires specifying `beta_autobug_component` 632 // and will opt you into the beta AutoBug. 633 AutoBugOptions beta_autobug_options = 22; 634 635 // Options for the configuration of the flakiness analysis tool, on a per tab 636 // basis 637 HealthAnalysisOptions health_analysis_options = 23; 638 639 // A set of optional Link Templates when search for diffs between columns. 640 repeated LinkTemplate column_diff_link_templates = 25; 641 } 642 643 // Configuration options for dashboard tab alerts. 644 message DashboardTabAlertOptions { 645 // Time in hours before an alert will be added to a test results table if the 646 // run date of the latest results are older than this time. If zero, no 647 // alerts are raised. 648 int32 alert_stale_results_hours = 1; 649 650 // The number of consecutive test result failures to see before alerting of 651 // a consistent failure. If zero, no alerts are raised. 652 int32 num_failures_to_alert = 2; 653 654 // The comma-separated addresses to send mail. 655 string alert_mail_to_addresses = 3; 656 657 // The number of consecutive test passes to close the alert. 658 int32 num_passes_to_disable_alert = 4; 659 660 // Custom subject for alert mails. 661 string subject = 5; 662 663 // Custom link for further help/instructions on debugging this alert. 664 string debug_url = 6; 665 666 // Custom text to show for the debug link. 667 string debug_message = 7; 668 669 // Wait time between emails. If unset or zero, an email will be sent only once 670 // it becomes a consistent failure, and not again until it succeeds. 671 // TestGrid does not pester about staleness 672 int32 wait_minutes_between_emails = 8; 673 674 // A custom message 675 string alert_mail_failure_message = 9; 676 } 677 678 // Configuration options for dashboard tab flakiness alerts. 679 message DashboardTabFlakinessAlertOptions { 680 // The minimum amount of flakiness needed to trigger a flakiness alert. 681 // 0=Disable alerts 682 // This is a percentage; expected values go from 0 to 100 (100 = 100% flaky) 683 float minimum_flakiness_to_alert = 1; 684 685 // The comma-separated addresses to send mail. 686 string alert_mail_to_addresses = 2; 687 688 // Custom subject for alert mails. 689 string subject = 3; 690 691 // Minimum time between sending mails. 692 int32 wait_minutes_between_emails = 4; 693 694 // A custom message 695 // TODO(RonWeber): This should be a template 696 string alert_mail_failure_message = 5; 697 } 698 699 // Configuration options for customizing the tab status calculation. 700 message DashboardTabStatusCustomizationOptions { 701 // Maximum amount of flakiness tolerated to categorize tab as acceptable. Will 702 // supplement dashboard tab status message, and mark the tab as ACCEPTABLE in 703 // the dashboard group view. Set to "0" to disable. This is configured as a 704 // percentage of valid (non-ignored) columns; expected values go from 0.0 to 705 // 100.0 (100% = no passing columns is acceptable) 706 float max_acceptable_flakiness = 1; 707 708 // Columns which contain cells with any status configure below will be 709 // ignored. Ignored columns affect the computation of flakiness and 710 // non-ignored number of runs. 711 enum IgnoredTestStatus { 712 TEST_STATUS_UNSPECIFIED = 0; 713 CATEGORIZED_ABORT = 1; 714 UNKNOWN = 2; 715 CANCEL = 3; 716 BLOCKED = 4; 717 } 718 719 repeated IgnoredTestStatus ignored_test_statuses = 2; 720 721 // Minimum number of runs required excluding ignored ones. 722 // If the non-ignored columns is less than this, tab status will be PENDING. 723 int32 min_acceptable_runs = 3; 724 } 725 726 // Specifies a dashboard group. 727 message DashboardGroup { 728 // The name for the dashboard group. 729 string name = 1; 730 731 // A list of names specifying dashboards to show links to in a separate tabbed 732 // bar at the top of the page for each of the given dashboards. 733 repeated string dashboard_names = 2; 734 735 // A description paragraph to be displayed. 736 string description = 3; 737 } 738 739 // A service configuration consisting of multiple test groups and dashboards. 740 message Configuration { 741 // A list of groups of tests to gather. 742 repeated TestGroup test_groups = 1; 743 744 // A list of all of the dashboards for a server. 745 repeated Dashboard dashboards = 2; 746 747 // A list of all the dashboard groups for a server. 748 repeated DashboardGroup dashboard_groups = 3; 749 } 750 751 // A grouping of configuration options for the flakiness analysis tool. 752 // Later configuration options could include the ability to choose different 753 // kinds of flakiness and choosing if and who to email a copy of the flakiness 754 // report. 755 message HealthAnalysisOptions { 756 // Defaults to false; flakiness analysis is opt-in 757 bool enable = 1; 758 759 // Defines the number of days for one interval of analysis. 760 // i.e. flakiness will be analyzed for the previous N days starting from Now, 761 // and it will be compared to the calculated N days before that for trend 762 // analysis. 763 int32 days_of_analysis = 2; 764 765 // When to send healthiness emails out, uses cron string format. 766 string email_schedule = 3; 767 768 // A comma-separated list of healthiness email recipients. 769 string email_recipients = 4; 770 771 // A compilable regex string for grouping tests by name. 772 // Works the same as the group-by-regex-mask option of base_options: 773 // go/testgrid/users/dashboard_guide#grouping-tests 774 // An empty string means no grouping. 775 // e.g. test name: "//path/to/test - env", regex: ` - \w+` 776 // The regex will match " - env" in the above test name and give a group of: 777 // //path/to/test <- Group Name 778 // - env <- Group Member 779 string grouping_regex = 5; 780 } 781 782 // The DefaultConfiguration Proto is deprecated, and will be deleted after Nov 783 // 1, 2019. For defaulting behavior, use the yamlcfg library instead. 784 message DefaultConfiguration { 785 // A default testgroup with default initialization data 786 TestGroup default_test_group = 1 [deprecated = true]; 787 788 // A default dashboard tab with default initialization data 789 DashboardTab default_dashboard_tab = 2 [deprecated = true]; 790 }