Skip to content

Commit 2f46024

Browse files
authored
fix: waitOnContentHash should also trigger on completed hash (#4718)
Prior to flipping completely over; we need to trigger tests for all shas, even if the content hash was generated.
1 parent 2b42c01 commit 2f46024

2 files changed

Lines changed: 40 additions & 2 deletions

File tree

app_dart/lib/src/service/scheduler.dart

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -672,10 +672,14 @@ $s
672672
// TODO: MergeQueueHashStatus
673673
// - .build: trigger targets!
674674
// - .wait: something is building.
675+
// - .completed: hash already built, complete!
675676
// - .*: do nothing
676-
// FOR NOW: trigger builds for build/wait
677+
// FOR NOW: trigger builds for build/wait/completed because they are also
678+
// building for SHA.
677679
switch (artifactStatus) {
678-
case MergeQueueHashStatus.build || MergeQueueHashStatus.wait
680+
case MergeQueueHashStatus.build ||
681+
MergeQueueHashStatus.wait ||
682+
MergeQueueHashStatus.complete
679683
when _config.flags.contentAwareHashing.waitOnContentHash:
680684
// Note from codefu: We do not have the merge queue lock yet.
681685
// It was short-circuited if the waitOnContentHash is set. The

app_dart/test/service/scheduler/hash_workflow_test.dart

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,40 @@ void main() async {
191191
),
192192
).called(1);
193193
});
194+
195+
test(
196+
'triggers tests on waitOnContentHash + completed artifacts (PRE-CAH flip over)',
197+
() async {
198+
config.dynamicConfig = DynamicConfig.fromJson({
199+
'contentAwareHashing': {'waitOnContentHash': true},
200+
});
201+
202+
final job = workflowJobTemplate().toWorkflowJob();
203+
204+
firestore.putDocument(
205+
ContentAwareHashBuilds(
206+
createdOn: DateTime(2025, 05, 20),
207+
contentHash: '65038ef4984b927fd1762ef01d35c5ecc34ff5f7',
208+
commitSha: 'a' * 40,
209+
buildStatus: BuildStatus.success,
210+
waitingShas: [],
211+
),
212+
);
213+
214+
await scheduler.processWorkflowJob(job);
215+
216+
verify(
217+
mockGithubChecksUtil.createCheckRun(
218+
any,
219+
RepositorySlug.full('flutter/flutter'),
220+
'27bfdee25949bc48044c4e16678f3449dd213b6e',
221+
'Merge Queue Guard',
222+
output: anyNamed('output'),
223+
conclusion: anyNamed('conclusion'),
224+
),
225+
).called(1);
226+
},
227+
);
194228
}
195229

196230
extension on String {

0 commit comments

Comments
 (0)