Commit graph

9 commits

Author SHA1 Message Date
Jonas Termansen 4d63202b53 [infra] Fix warning when pre-approving an already approved failure.
This can happen if a test is approved as failing, it then is fixed, and a
changelist needs to break it again, and the new failure is pre-approved.
This causes approve_results to warn that it can't properly change an approval
from one outcome to the exact same outcome, which is of course wrong, it can
do that.

Change-Id: Ib9ea1d4ea5a204b66808a1789c31fe6ec9c2c9d2
Reviewed-on: https://dart-review.googlesource.com/c/86920
Reviewed-by: William Hesse <whesse@google.com>
2018-12-11 15:24:20 +00:00
Jonas Termansen 4cd567b3a2 [infra] Add auditing to approve_results.
This change ads two new fields to approved_results.json:

* approver: The username of the person who approved the new results.
* approved_at: The ISO 8601 UTC time of when the approval occured.

This data provides a history for approvals as a replacement for the git
commit history for status files. Each build makes a copy of the
approved_results.json file at the time, effectively acting as a commit.

Bug: https://github.com/dart-lang/sdk/issues/35315
Change-Id: I64430a53820a0cffeb277012d5318b50999a9df5
Reviewed-on: https://dart-review.googlesource.com/c/85940
Reviewed-by: William Hesse <whesse@google.com>
2018-12-05 10:58:29 +00:00
Jonas Termansen 2ca08ef2e1 [infra] Implement preapproval of failing tests in approve_results.
This change lets committers preapprove new failing tests based on commit
queue / dry run results for CQ builders, such that the CQ builder stays
green when the change is submitted.

The current implementation does not support changing one test from a failing
mode to another failing mode. It will work, but if the corresponding CI
builder cycles before the changelist is submitted, it will become red until
the changelist is submitted. This will be addressed in the future.

Likewise approving a builder after a preapproval will undo the preapproval
unless the changelist has been submitted and the corresponding CI builder
has cycled.

Bug: https://github.com/dart-lang/sdk/issues/35289
Change-Id: Ie43df4439a27a3472c5178cb7c6af69292cf70e4
Reviewed-on: https://dart-review.googlesource.com/c/85601
Reviewed-by: William Hesse <whesse@google.com>
2018-11-30 17:08:04 +00:00
Jonas Termansen 25f0c21c81 [infra] Fix approve_results reporting wrong number of changed tests
Change-Id: I70afb4319dfd83a38897582b4d3e93113953fdba
Reviewed-on: https://dart-review.googlesource.com/c/85447
Reviewed-by: Alexander Thomas <athom@google.com>
2018-11-28 11:28:37 +00:00
Jonas Termansen 927f0937bd [infra] Add test.dart script for local testing.
test.dart locates where the current branch branched off master and compares
the local testing results with the appropriate mainline builder results,
letting you know how the current change compares without the need for status
files.

Bug: https://github.com/dart-lang/sdk/issues/35086
Change-Id: Ib79479b867c5ac131302fea1bdf7effd0422a83a
Reviewed-on: https://dart-review.googlesource.com/c/83281
Reviewed-by: Alexander Thomas <athom@google.com>
2018-11-12 21:51:48 +00:00
Jonas Termansen 8043e9851c [infra] Fix test matrix path logic in approve_results.
Change-Id: Id84365b760d61e01e06f7c5c1377eae456c15441
Reviewed-on: https://dart-review.googlesource.com/c/83764
Reviewed-by: Alexander Thomas <athom@google.com>
2018-11-12 18:47:10 +00:00
Jonas Termansen c52a38c4ad [infra] Use new approved results bucket in approve_results.dart
Change-Id: Ia20e682c542edba8b606276124e9f8fd78785680
Reviewed-on: https://dart-review.googlesource.com/c/83620
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: William Hesse <whesse@google.com>
2018-11-08 18:53:19 +00:00
Jonas Termansen c46202a387 [infra] Fix approve_results using wrong name.
Change-Id: I1b39d69ebd859b29aeb1b217097f0be69b55341b
Reviewed-on: https://dart-review.googlesource.com/c/83260
Reviewed-by: William Hesse <whesse@google.com>
2018-11-07 00:05:57 +00:00
Jonas Termansen af63ea79a1 [infra] Add approve_results.dart script for approving test result changes.
The approve_results program downloads the current results, the approved
results, and flakiness information for the specified bots. It presents
tables of the tests that have been fixed and the ones that have broken since
the last approval. Finally, it provides the option to approve the new
changes.

The approve_results program is part of the new workflow and only affects the
greenness of bots enrolled in it.

You can list the available bots by running:

    dart tools/approve_results.dart -l

You can approve the results on a bot by running:

    dart tools/approve_results.dart -b vm-kernel-linux-release-x64

Globs are supported, e.g. to approve all vm linux bots on ia32 and x64:

    dart tools/approve_results.dart -b 'vm-*linux*{ia32,x64}*'

By default the tool is interactive and asks whether the changes should be
approved. Approving the results turns the bots green on the next commit.
It's assumed that bugs have been filed prior to approving the test changes.
The -y option approves the changes non-interactively while the -n option
does a try run and shows what needs to be approved.

This tool is meant to be used early and often to turn the bot green. Emails
are not set about additional failures until the regressions has been
approved.

Bug: https://github.com/dart-lang/sdk/issues/35000
Change-Id: I6479edaa76556aa5ef499509c04b92ae770d1727
Reviewed-on: https://dart-review.googlesource.com/c/82222
Reviewed-by: William Hesse <whesse@google.com>
2018-11-06 01:08:50 +00:00