Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reschedule presubmit targets when base ref is changed #3211

Merged
merged 24 commits into from
Nov 17, 2023
Merged
Show file tree
Hide file tree
Changes from 20 commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
51787de
Bump retry from 3.1.1 to 3.1.2 in /app_dart
dependabot[bot] Jun 1, 2023
97e2a70
Bump github from 9.18.0 to 9.19.0 in /app_dart
dependabot[bot] Sep 15, 2023
ff07134
Bump test from 1.24.6 to 1.24.7 in /auto_submit
dependabot[bot] Oct 2, 2023
ff45605
Merge pull request #284 from ricardoamador/dependabot/pub/app_dart/re…
ricardoamador Oct 2, 2023
f585b37
Merge pull request #344 from ricardoamador/dependabot/pub/app_dart/gi…
ricardoamador Oct 2, 2023
1a3c00b
Merge pull request #347 from ricardoamador/dependabot/pub/auto_submit…
ricardoamador Oct 2, 2023
793fad4
Merge branch 'flutter:main' into main
ricardoamador Oct 4, 2023
16c6713
Merge branch 'flutter:main' into main
ricardoamador Oct 10, 2023
70392e4
Merge branch 'flutter:main' into main
ricardoamador Oct 16, 2023
3705b9a
Merge branch 'flutter:main' into main
ricardoamador Oct 16, 2023
f531092
Merge branch 'flutter:main' into main
ricardoamador Oct 17, 2023
b4984e4
Merge branch 'flutter:main' into main
ricardoamador Oct 19, 2023
7e38655
Merge branch 'flutter:main' into main
ricardoamador Oct 23, 2023
32c6d69
Merge branch 'flutter:main' into main
ricardoamador Oct 23, 2023
8a1c09f
Merge branch 'flutter:main' into main
ricardoamador Oct 24, 2023
b1ea800
Merge branch 'flutter:main' into main
ricardoamador Oct 30, 2023
bda6333
Merge branch 'flutter:main' into main
ricardoamador Nov 6, 2023
4bbd587
Reschedule try tests when base ref is changed.
Nov 6, 2023
086757c
Remove unused imports
Nov 6, 2023
cb8a37b
Added feedback on test.
Nov 6, 2023
2a005a3
Forgot to push changes.
Nov 17, 2023
8750394
Updated test.
Nov 17, 2023
ab36367
Updated formatting.
Nov 17, 2023
01ac2a1
Fixed analyzer warnings.
Nov 17, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,7 @@ class GithubWebhookSubscription extends SubscriptionHandler {
final RepositorySlug slug = pr.base!.repo!.slug();
ricardoamador marked this conversation as resolved.
Show resolved Hide resolved
final bool isTipOfTree = pr.base!.ref == Config.defaultBranch(slug);
final GitHub gitHubClient = await config.createGitHubClient(pullRequest: pr);
await _validateRefs(gitHubClient, pr);
await _validateRefs(gitHubClient, pr, pullRequestEvent);
if (kNeedsTests.contains(slug) && isTipOfTree) {
switch (slug.name) {
case 'flutter':
Expand Down Expand Up @@ -490,6 +490,7 @@ class GithubWebhookSubscription extends SubscriptionHandler {
Future<void> _validateRefs(
GitHub gitHubClient,
PullRequest pr,
PullRequestEvent pullRequestEvent,
) async {
final RepositorySlug slug = pr.base!.repo!.slug();
String body;
Expand Down Expand Up @@ -538,6 +539,8 @@ class GithubWebhookSubscription extends SubscriptionHandler {
base: Config.defaultBranch(slug),
);
await gitHubClient.issues.createComment(slug, pr.number!, body);
// Not that this should cancel all existing running tasks.
await _scheduleIfMergeable(pullRequestEvent);
ricardoamador marked this conversation as resolved.
Show resolved Hide resolved
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

import 'package:cocoon_service/src/model/appengine/commit.dart';
import 'package:cocoon_service/src/model/luci/buildbucket.dart';
import 'package:cocoon_service/src/model/luci/push_message.dart' as pm;
import 'package:cocoon_service/src/request_handlers/github/webhook_subscription.dart';
import 'package:cocoon_service/src/service/cache_service.dart';
import 'package:cocoon_service/src/service/config.dart';
Expand Down Expand Up @@ -272,13 +273,15 @@ void main() {
test('Acts on opened against master when default is main', () async {
const int issueNumber = 123;

tester.message = generateGithubWebhookMessage(
final pm.PushMessage pushMessage = generateGithubWebhookMessage(
action: 'opened',
number: issueNumber,
baseRef: 'master',
slug: Config.engineSlug,
);

tester.message = pushMessage;

when(pullRequestsService.listFiles(Config.engineSlug, issueNumber)).thenAnswer(
(_) => Stream<PullRequestFile>.value(
PullRequestFile()..filename = 'packages/flutter/blah.dart',
Expand Down Expand Up @@ -308,6 +311,11 @@ void main() {
argThat(contains('master -> main')),
),
).called(1);

// Count two calls for the initial triggering and after the update of the
// base branch reference.
expect(scheduler.triggerPresubmitTargetsCallCount, 2);
scheduler.resetTriggerPresubmitTargetsCallCount();
});

// We already schedule checks when a draft is opened, don't need to re-test
Expand Down
24 changes: 18 additions & 6 deletions app_dart/test/src/service/fake_scheduler.dart
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,9 @@ class FakeScheduler extends Scheduler {

int cancelPreSubmitTargetsCallCnt = 0;

int get cancelPreSubmitTargetsCallCount {
return cancelPreSubmitTargetsCallCnt;
}
int get cancelPreSubmitTargetsCallCount => cancelPreSubmitTargetsCallCnt;

void resetCancelPreSubmitTargetsCallCount() {
cancelPreSubmitTargetsCallCnt = 0;
}
void resetCancelPreSubmitTargetsCallCount() => cancelPreSubmitTargetsCallCnt = 0;

@override
Future<void> cancelPreSubmitTargets({
Expand All @@ -78,6 +74,22 @@ class FakeScheduler extends Scheduler {
cancelPreSubmitTargetsCallCnt++;
}

int triggerPresubmitTargetsCnt = 0;

int get triggerPresubmitTargetsCallCount => triggerPresubmitTargetsCnt;

void resetTriggerPresubmitTargetsCallCount() => triggerPresubmitTargetsCnt = 0;

@override
Future<void> triggerPresubmitTargets({
required PullRequest pullRequest,
String reason = 'Newer commit available',
List<String>? builderTriggerList,
}) async {
await super.triggerPresubmitTargets(pullRequest: pullRequest);
triggerPresubmitTargetsCnt++;
}

int addPullRequestCallCnt = 0;

int get addPullRequestCallCount {
Expand Down