fix(dev-infra): Ensure conditions with groups do not fail verification (#37798)
There are a few changes in this PR to ensure conditions that are based on groups (i.e. `- groups.pending.length == 0`) do not fail the verify task: * Remove the warning when a condition is encountered that depends on the `groups` state. The warning will otherwise be printed once for every file that triggers the execution of the condition (400,000+ times) * Add an `unverifiable` flag to `GroupCondition` interface and set it to true when an error is encountered due to attempting to get the state of `groups` in a condition * Ignore any unverifiable conditions when gathering unmatched conditions. These should not be considered `unmatched` for verification purposes. * Print the unverifiable conditions by group in the results Sample output: ``` ┌──────────────────────────────────────────────────────────────────────────────┐ │ PullApprove results by group │ └──────────────────────────────────────────────────────────────────────────────┘ Groups skipped (4 groups) Matched conditions by Group (37 groups) Unmatched conditions by Group (0 groups) Unverifiable conditions by Group (3 groups) [public-api] len(groups.pending.exclude("required-minimum-review")... len(groups.rejected.exclude("required-minimum-review")... [size-tracking] len(groups.pending.exclude("required-minimum-review")... len(groups.rejected.exclude("required-minimum-review")... [circular-dependencies] len(groups.pending.exclude("required-minimum-review")... len(groups.rejected.exclude("required-minimum-review")... ``` PR Close #37798
This commit is contained in:

committed by
Misko Hevery

parent
9821443150
commit
67e3ecc7e3
@ -84,11 +84,16 @@ export function verify() {
|
||||
info.groupEnd();
|
||||
const matchedGroups = resultsByGroup.filter(group => !group.unmatchedCount);
|
||||
info.group(`Matched conditions by Group (${matchedGroups.length} groups)`);
|
||||
matchedGroups.forEach(group => logGroup(group, true, debug));
|
||||
matchedGroups.forEach(group => logGroup(group, 'matchedConditions', debug));
|
||||
info.groupEnd();
|
||||
const unmatchedGroups = resultsByGroup.filter(group => group.unmatchedCount);
|
||||
info.group(`Unmatched conditions by Group (${unmatchedGroups.length} groups)`);
|
||||
unmatchedGroups.forEach(group => logGroup(group, false));
|
||||
unmatchedGroups.forEach(group => logGroup(group, 'unmatchedConditions'));
|
||||
info.groupEnd();
|
||||
const unverifiableConditionsInGroups =
|
||||
resultsByGroup.filter(group => group.unverifiableConditions.length > 0);
|
||||
info.group(`Unverifiable conditions by Group (${unverifiableConditionsInGroups.length} groups)`);
|
||||
unverifiableConditionsInGroups.forEach(group => logGroup(group, 'unverifiableConditions'));
|
||||
info.groupEnd();
|
||||
|
||||
// Provide correct exit code based on verification success.
|
||||
|
Reference in New Issue
Block a user