From 263b9eec9ff24ec1091cbe2152d88e04e814afb2 Mon Sep 17 00:00:00 2001 From: Matan Lurey Date: Tue, 6 May 2025 14:18:49 -0700 Subject: [PATCH] Migrate Task.statusFoo to TaskStatus.foo. --- app_dart/lib/src/model/firestore/task.dart | 40 +------- .../dart_internal_subscription.dart | 3 +- .../request_handlers/get_green_commits.dart | 6 +- .../postsubmit_luci_subscription.dart | 4 +- .../src/request_handlers/rerun_prod_task.dart | 8 +- .../scheduler/backfill_grid.dart | 4 +- .../scheduler/backfill_strategy.dart | 9 +- .../scheduler/batch_backfiller.dart | 5 +- .../scheduler/vacuum_stale_tasks.dart | 5 +- .../commit_tasks_status.dart | 8 +- .../lib/src/service/build_status_service.dart | 4 +- .../lib/src/service/luci_build_service.dart | 3 +- app_dart/lib/src/service/scheduler.dart | 5 +- .../lib/src/service/scheduler/policy.dart | 15 ++- app_dart/test/model/firestore/task_test.dart | 7 +- .../dart_internal_subscription_test.dart | 11 ++- .../get_build_status_test.dart | 12 +-- .../get_green_commits_test.dart | 10 +- .../request_handlers/get_status_test.dart | 5 +- .../postsubmit_luci_subscription_test.dart | 42 ++++---- .../rerun_prod_task_test.dart | 95 ++++++++++--------- .../scheduler/backfill_grid_test.dart | 3 +- .../scheduler/backfill_strategy_test.dart | 10 +- .../scheduler/batch_backfiller_test.dart | 18 ++-- .../scheduler/vacuum_stale_tasks_test.dart | 26 ++--- .../update_discord_status_test.dart | 18 ++-- .../service/build_status_service_test.dart | 78 +++++++-------- .../check_rerun_builder_test.dart | 15 +-- .../rerun_dart_internal_test.dart | 15 +-- .../test/service/scheduler/policy_test.dart | 27 +++--- app_dart/test/service/scheduler_test.dart | 23 +++-- .../test/src/utilities/entity_generators.dart | 3 +- packages/cocoon_common/lib/task_status.dart | 8 +- .../cocoon_common/test/task_status_test.dart | 2 +- 34 files changed, 265 insertions(+), 282 deletions(-) diff --git a/app_dart/lib/src/model/firestore/task.dart b/app_dart/lib/src/model/firestore/task.dart index 538257777b..8aebec1238 100644 --- a/app_dart/lib/src/model/firestore/task.dart +++ b/app_dart/lib/src/model/firestore/task.dart @@ -158,7 +158,7 @@ final class Task extends AppDocument { required int createTimestamp, required int startTimestamp, required int endTimestamp, - required String status, + required TaskStatus status, required bool testFlaky, required int? buildNumber, }) { @@ -199,7 +199,7 @@ final class Task extends AppDocument { currentAttempt: 1, createTimestamp: commit.createTimestamp, bringup: target.isBringup, - status: statusNew, + status: TaskStatus.waitingForBackfill, commitSha: commit.sha, builderName: target.name, buildNumber: null, @@ -217,7 +217,7 @@ final class Task extends AppDocument { /// Returns a Firestore [Write] that patches the [status] field for [id]. @useResult - static Write patchStatus(AppDocumentId id, String status) { + static Write patchStatus(AppDocumentId id, TaskStatus status) { return Write( currentDocument: Precondition(exists: true), update: Document( @@ -233,41 +233,9 @@ final class Task extends AppDocument { ); } - /// The task was cancelled. - static const statusCancelled = TaskStatus.cancelled; - - /// The task is yet to be run. - static const statusNew = TaskStatus.queuedForBackfill; - - /// The task failed to run due to an unexpected issue. - static const statusInfraFailure = TaskStatus.infraFailure; - - /// The task is currently running. - static const statusInProgress = TaskStatus.inProgress; - /// The task was run successfully. static const statusSucceeded = TaskStatus.succeeded; - /// The task failed to run successfully. - static const statusFailed = TaskStatus.failed; - - /// The task was skipped instead of being executed. - static const statusSkipped = TaskStatus.skipped; - - static const Set taskFailStatusSet = { - Task.statusInfraFailure, - Task.statusFailed, - Task.statusCancelled, - }; - - static const finishedStatusValues = { - statusCancelled, - statusFailed, - statusInfraFailure, - statusSkipped, - statusSucceeded, - }; - /// The timestamp (in milliseconds since the Epoch) that this task was /// created. /// @@ -384,7 +352,7 @@ final class Task extends AppDocument { fieldBringup: bringup.toValue(), fieldName: taskName.toValue(), fieldStartTimestamp: 0.toValue(), - fieldStatus: Task.statusNew.toValue(), + fieldStatus: TaskStatus.waitingForBackfill.toValue(), fieldTestFlaky: false.toValue(), fieldCommitSha: commitSha.toValue(), fieldAttempt: attempt.toValue(), diff --git a/app_dart/lib/src/request_handlers/dart_internal_subscription.dart b/app_dart/lib/src/request_handlers/dart_internal_subscription.dart index 7fb6c6632c..665ff75b75 100644 --- a/app_dart/lib/src/request_handlers/dart_internal_subscription.dart +++ b/app_dart/lib/src/request_handlers/dart_internal_subscription.dart @@ -6,6 +6,7 @@ import 'dart:convert'; import 'package:buildbucket/buildbucket_pb.dart' as bbv2; import 'package:cocoon_common/is_dart_internal.dart'; +import 'package:cocoon_common/task_status.dart'; import 'package:cocoon_server/logging.dart'; import 'package:googleapis/firestore/v1.dart'; import 'package:meta/meta.dart'; @@ -61,7 +62,7 @@ final class DartInternalSubscription extends SubscriptionHandler { if (existing != null) { fsTask = existing; // Don't increment the task attempt if it's waiting for a build numnber. - if (fsTask.status != fs.Task.statusInProgress || + if (fsTask.status != TaskStatus.inProgress || fsTask.buildNumber != build.number) { fsTask.resetAsRetry(); } diff --git a/app_dart/lib/src/request_handlers/get_green_commits.dart b/app_dart/lib/src/request_handlers/get_green_commits.dart index 4572757608..c84c576d21 100644 --- a/app_dart/lib/src/request_handlers/get_green_commits.dart +++ b/app_dart/lib/src/request_handlers/get_green_commits.dart @@ -4,10 +4,10 @@ import 'dart:async'; +import 'package:cocoon_common/task_status.dart'; import 'package:github/github.dart'; import 'package:meta/meta.dart'; -import '../model/firestore/task.dart' as fs; import '../request_handling/body.dart'; import '../request_handling/request_handler.dart'; import '../service/build_status_provider/commit_tasks_status.dart'; @@ -75,8 +75,8 @@ final class GetGreenCommits extends RequestHandler { continue; } if (!const { - fs.Task.statusSkipped, - fs.Task.statusSucceeded, + TaskStatus.skipped, + TaskStatus.succeeded, }.contains(task.status)) { return false; } diff --git a/app_dart/lib/src/request_handlers/postsubmit_luci_subscription.dart b/app_dart/lib/src/request_handlers/postsubmit_luci_subscription.dart index d47195f01b..b45be27c35 100644 --- a/app_dart/lib/src/request_handlers/postsubmit_luci_subscription.dart +++ b/app_dart/lib/src/request_handlers/postsubmit_luci_subscription.dart @@ -162,14 +162,14 @@ final class PostsubmitLuciSubscription extends SubscriptionHandler { if (build.status == bbv2.Status.SCHEDULED) { return false; } - return !fs.Task.finishedStatusValues.contains(task.status); + return !task.status.isComplete; } /// Check if a builder should be rerun. /// /// A rerun happens when a build fails, the retry number hasn't reached the limit, and the build is on TOT. Future _shouldAutomaticallyRerun(fs.Task task) async { - if (!fs.Task.taskFailStatusSet.contains(task.status)) { + if (!task.status.isFailure) { log.debug('${task.taskName} is not failing. No rerun needed.'); return false; } diff --git a/app_dart/lib/src/request_handlers/rerun_prod_task.dart b/app_dart/lib/src/request_handlers/rerun_prod_task.dart index 2896eda2fc..ef9e3a54bc 100644 --- a/app_dart/lib/src/request_handlers/rerun_prod_task.dart +++ b/app_dart/lib/src/request_handlers/rerun_prod_task.dart @@ -193,7 +193,7 @@ final class RerunProdTask extends ApiRequestHandler { // Wait for cancellations? final Future cancelRunningTasks; - if (statusesToRerun.contains(fs.Task.statusInProgress)) { + if (statusesToRerun.contains(TaskStatus.inProgress)) { cancelRunningTasks = _luciBuildService.cancelBuildsBySha( sha: commit.sha, reason: '$email cancelled build to schedule a fresh rerun', @@ -214,7 +214,7 @@ final class RerunProdTask extends ApiRequestHandler { // If it appears the task was in progress, cancel any running builders // and crease a _new_ task (to represent a new run). - if (task.status == fs.Task.statusInProgress) { + if (task.status == TaskStatus.inProgress) { // Mark cancelled. documentWrites.add( fs.Task.patchStatus( @@ -223,7 +223,7 @@ final class RerunProdTask extends ApiRequestHandler { currentAttempt: task.currentAttempt, taskName: task.taskName, ), - fs.Task.statusCancelled, + TaskStatus.cancelled, ), ); } @@ -258,7 +258,7 @@ final class RerunProdTask extends ApiRequestHandler { // If we wanted to do better, that is, allow rerunning targets without // waiting for the task to be complete, we'd need a different strategy // (i.e. multiple tasks per release builder, versus one). - if (!fs.Task.finishedStatusValues.contains(task.status)) { + if (!task.status.isComplete) { throw const BadRequestException( 'Cannot rerun a release builder that is not done running', ); diff --git a/app_dart/lib/src/request_handlers/scheduler/backfill_grid.dart b/app_dart/lib/src/request_handlers/scheduler/backfill_grid.dart index d04741325a..484eaae75b 100644 --- a/app_dart/lib/src/request_handlers/scheduler/backfill_grid.dart +++ b/app_dart/lib/src/request_handlers/scheduler/backfill_grid.dart @@ -8,11 +8,11 @@ library; import 'dart:collection'; import 'dart:convert'; +import 'package:cocoon_common/task_status.dart'; import 'package:meta/meta.dart'; import '../../model/ci_yaml/target.dart'; import '../../model/commit_ref.dart'; -import '../../model/firestore/task.dart'; import '../../model/task_ref.dart'; import '../../service/luci_build_service/pending_task.dart'; import '../../service/scheduler/policy.dart'; @@ -155,7 +155,7 @@ final class BackfillGrid { continue; } for (final task in column) { - if (task.status != Task.statusNew) { + if (task.status != TaskStatus.waitingForBackfill) { continue; } final commit = _commitsBySha[task.commitSha]; diff --git a/app_dart/lib/src/request_handlers/scheduler/backfill_strategy.dart b/app_dart/lib/src/request_handlers/scheduler/backfill_strategy.dart index 17b56c91f7..e610995825 100644 --- a/app_dart/lib/src/request_handlers/scheduler/backfill_strategy.dart +++ b/app_dart/lib/src/request_handlers/scheduler/backfill_strategy.dart @@ -5,6 +5,7 @@ import 'dart:math'; import 'package:cocoon_common/is_release_branch.dart'; +import 'package:cocoon_common/task_status.dart'; import 'package:meta/meta.dart'; import '../../model/firestore/task.dart' as fs; @@ -64,7 +65,7 @@ final class DefaultBackfillStrategy extends BackfillStrategy { // Remove entire columns where any of the following is true. grid.removeColumnWhere((tasks) { // At least one task in progress; - if (tasks.any((t) => t.status == fs.Task.statusInProgress)) { + if (tasks.any((t) => t.status == TaskStatus.inProgress)) { return true; } @@ -83,7 +84,7 @@ final class DefaultBackfillStrategy extends BackfillStrategy { for (final (_, column) in grid.eligibleTasks) { for (var i = 0; i < column.length; i++) { final row = column[i]; - if (row.status != fs.Task.statusNew) { + if (row.status != TaskStatus.waitingForBackfill) { continue; } @@ -151,12 +152,12 @@ final class DefaultBackfillStrategy extends BackfillStrategy { static int? _indexOfTreeRedCause(Iterable tasks) { for (final (i, task) in tasks.indexed) { // Only evaluate completed tasks. - if (!fs.Task.finishedStatusValues.contains(task.status)) { + if (!task.status.isComplete) { continue; } // Returns true for failed tasks, and false for successful. - if (fs.Task.taskFailStatusSet.contains(task.status)) { + if (task.status.isFailure) { return i; } else { return null; diff --git a/app_dart/lib/src/request_handlers/scheduler/batch_backfiller.dart b/app_dart/lib/src/request_handlers/scheduler/batch_backfiller.dart index b868968f81..5b9ecd8dc2 100644 --- a/app_dart/lib/src/request_handlers/scheduler/batch_backfiller.dart +++ b/app_dart/lib/src/request_handlers/scheduler/batch_backfiller.dart @@ -5,6 +5,7 @@ import 'dart:math'; import 'package:cocoon_common/is_release_branch.dart'; +import 'package:cocoon_common/task_status.dart'; import 'package:cocoon_server/logging.dart'; import 'package:github/github.dart'; import 'package:meta/meta.dart'; @@ -158,7 +159,7 @@ final class BatchBackfiller extends RequestHandler { taskName: task.name, currentAttempt: task.currentAttempt, ), - fs.Task.statusInProgress, + TaskStatus.inProgress, ); }), ...skip.map((toSkip) { @@ -169,7 +170,7 @@ final class BatchBackfiller extends RequestHandler { taskName: task.name, currentAttempt: task.currentAttempt, ), - fs.Task.statusSkipped, + TaskStatus.skipped, ); }), ]); diff --git a/app_dart/lib/src/request_handlers/scheduler/vacuum_stale_tasks.dart b/app_dart/lib/src/request_handlers/scheduler/vacuum_stale_tasks.dart index ab8a193ce1..79cdd524f7 100644 --- a/app_dart/lib/src/request_handlers/scheduler/vacuum_stale_tasks.dart +++ b/app_dart/lib/src/request_handlers/scheduler/vacuum_stale_tasks.dart @@ -6,6 +6,7 @@ import 'dart:async'; import 'package:buildbucket/buildbucket_pb.dart' as bbv2; import 'package:cocoon_common/is_release_branch.dart'; +import 'package:cocoon_common/task_status.dart'; import 'package:cocoon_server/logging.dart'; import 'package:github/github.dart' as gh; import 'package:googleapis/firestore/v1.dart'; @@ -69,7 +70,7 @@ final class VacuumStaleTasks extends RequestHandler { final recentCommits = await _firestore.queryRecentCommitsAndTasks( slug, commitLimit: config.backfillerCommitLimit, - status: fs.Task.statusInProgress, + status: TaskStatus.inProgress, branch: branch, ); for (final CommitAndTasks(:commit, :tasks) in recentCommits) { @@ -130,7 +131,7 @@ final class VacuumStaleTasks extends RequestHandler { final task = fs.Task.fromDocument(intent.task); switch (intent) { case _ResetTaskStatusToNew(): - task.setStatus(fs.Task.statusNew); + task.setStatus(TaskStatus.waitingForBackfill); case _UpdateTaskFromLuciBuild(): task.updateFromBuild(intent.build); } diff --git a/app_dart/lib/src/service/build_status_provider/commit_tasks_status.dart b/app_dart/lib/src/service/build_status_provider/commit_tasks_status.dart index 0b41f81fd7..ea14523f97 100644 --- a/app_dart/lib/src/service/build_status_provider/commit_tasks_status.dart +++ b/app_dart/lib/src/service/build_status_provider/commit_tasks_status.dart @@ -47,9 +47,7 @@ final class CommitTasksStatus { FullTask( tasks.first, [...tasks.reversed.map((t) => t.buildNumber).nonNulls], - didAtLeastOneFailureOccur: tasks.any( - (t) => Task.taskFailStatusSet.contains(t.status), - ), + didAtLeastOneFailureOccur: tasks.any((t) => t.status.isFailure), lastCompletedAttemptWasFailure: _lastCompletedAttemptWasFailure( tasks, ), @@ -61,10 +59,10 @@ final class CommitTasksStatus { // Iterate through the tasks. // As soon as we find a PASSING or {FAILED, INFRA FAILURE, CANCELLED}, stop. for (final task in tasks) { - if (task.status == Task.statusSucceeded) { + if (task.status.isSuccess) { return false; } - if (Task.taskFailStatusSet.contains(task.status)) { + if (task.status.isFailure) { return true; } } diff --git a/app_dart/lib/src/service/build_status_service.dart b/app_dart/lib/src/service/build_status_service.dart index 8da07756c1..7ecaee9bfc 100644 --- a/app_dart/lib/src/service/build_status_service.dart +++ b/app_dart/lib/src/service/build_status_service.dart @@ -4,13 +4,13 @@ import 'dart:async'; +import 'package:cocoon_common/task_status.dart'; import 'package:cocoon_server/logging.dart'; import 'package:github/github.dart'; import 'package:meta/meta.dart'; import '../../cocoon_service.dart'; import '../model/firestore/github_build_status.dart'; -import '../model/firestore/task.dart'; import 'build_status_provider/commit_tasks_status.dart'; /// Class that calculates the current build status. @@ -70,7 +70,7 @@ interface class BuildStatusService { } if (collatedTask.lastCompletedAttemptWasFailure) { failingTasks.add(collatedTask.task.taskName); - } else if (collatedTask.task.status == Task.statusSucceeded) { + } else if (collatedTask.task.status == TaskStatus.succeeded) { toBePassing.remove(collatedTask.task.taskName); } } diff --git a/app_dart/lib/src/service/luci_build_service.dart b/app_dart/lib/src/service/luci_build_service.dart index ef90b671c3..e93154af85 100644 --- a/app_dart/lib/src/service/luci_build_service.dart +++ b/app_dart/lib/src/service/luci_build_service.dart @@ -8,6 +8,7 @@ import 'dart:typed_data'; import 'package:buildbucket/buildbucket_pb.dart' as bbv2; import 'package:cocoon_common/is_release_branch.dart'; +import 'package:cocoon_common/task_status.dart'; import 'package:cocoon_server/logging.dart'; import 'package:fixnum/fixnum.dart'; import 'package:github/github.dart' as github; @@ -1049,7 +1050,7 @@ class LuciBuildService { ) async { // Update task status in Firestore. task.resetAsRetry(); - task.setStatus(fs.Task.statusInProgress); + task.setStatus(TaskStatus.inProgress); await _firestore.batchWriteDocuments( BatchWriteRequest(writes: documentsToWrites([task], exists: false)), diff --git a/app_dart/lib/src/service/scheduler.dart b/app_dart/lib/src/service/scheduler.dart index 47e472b773..174e25af94 100644 --- a/app_dart/lib/src/service/scheduler.dart +++ b/app_dart/lib/src/service/scheduler.dart @@ -6,6 +6,7 @@ import 'dart:convert'; import 'dart:math'; import 'package:cocoon_common/is_release_branch.dart'; +import 'package:cocoon_common/task_status.dart'; import 'package:cocoon_server/logging.dart'; import 'package:collection/collection.dart'; import 'package:github/github.dart'; @@ -193,7 +194,7 @@ class Scheduler { // // See https://github.com/flutter/flutter/issues/163896. if (skipAllTasks) { - task.setStatus(fs.Task.statusSkipped); + task.setStatus(TaskStatus.skipped); continue; } @@ -208,7 +209,7 @@ class Scheduler { ); if (priority != null) { // Mark task as in progress to ensure it isn't scheduled over - task.setStatus(fs.Task.statusInProgress); + task.setStatus(TaskStatus.inProgress); toBeScheduled.add( PendingTask( target: target, diff --git a/app_dart/lib/src/service/scheduler/policy.dart b/app_dart/lib/src/service/scheduler/policy.dart index 91798bf05c..9bde8bcd05 100644 --- a/app_dart/lib/src/service/scheduler/policy.dart +++ b/app_dart/lib/src/service/scheduler/policy.dart @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'package:cocoon_common/task_status.dart'; import 'package:cocoon_server/logging.dart'; import '../../model/firestore/task.dart'; @@ -66,7 +67,7 @@ final class BatchPolicy implements SchedulerPolicy { required List recentTasks, }) async { // Skip scheduling if there is already a running task. - if (recentTasks.any((Task task) => task.status == Task.statusInProgress)) { + if (recentTasks.any((Task task) => task.status == TaskStatus.inProgress)) { return null; } @@ -87,7 +88,7 @@ final class BatchPolicy implements SchedulerPolicy { return LuciBuildService.kRerunPriority; } - if (_allNewOrSkipped(recentTasks.sublist(0, kBatchSize - 1))) { + if (_allWaitingOrSkipped(recentTasks.sublist(0, kBatchSize - 1))) { return LuciBuildService.kDefaultPriority; } @@ -95,9 +96,9 @@ final class BatchPolicy implements SchedulerPolicy { } } -/// Checks if all tasks are with [Task.statusNew]. -bool _allNewOrSkipped(List tasks) { - const newOrSkipped = {Task.statusNew, Task.statusSkipped}; +/// Checks if all tasks are with waiting for backfill or skipped. +bool _allWaitingOrSkipped(List tasks) { + const newOrSkipped = {TaskStatus.waitingForBackfill, TaskStatus.skipped}; return tasks.every((Task task) => newOrSkipped.contains(task.status)); } @@ -106,7 +107,7 @@ bool _shouldRerunPriority(List tasks, int pastTaskNumber) { // Prioritize tasks that recently failed. var hasRecentFailure = false; for (var i = 0; i < pastTaskNumber && i < tasks.length; i++) { - if (_isFailed(tasks[i])) { + if (tasks[i].status.isFailure) { hasRecentFailure = true; break; } @@ -114,8 +115,6 @@ bool _shouldRerunPriority(List tasks, int pastTaskNumber) { return hasRecentFailure; } -bool _isFailed(Task task) => Task.taskFailStatusSet.contains(task.status); - /// [Task] run outside of Cocoon are not triggered by the Cocoon scheduler. final class OmitPolicy implements SchedulerPolicy { const OmitPolicy(); diff --git a/app_dart/test/model/firestore/task_test.dart b/app_dart/test/model/firestore/task_test.dart index b7c89463d2..e5dd814adf 100644 --- a/app_dart/test/model/firestore/task_test.dart +++ b/app_dart/test/model/firestore/task_test.dart @@ -5,6 +5,7 @@ import 'dart:convert'; import 'package:buildbucket/buildbucket_pb.dart' as bbv2; +import 'package:cocoon_common/task_status.dart'; import 'package:cocoon_server_test/test_logging.dart'; import 'package:cocoon_service/src/model/firestore/task.dart'; import 'package:test/test.dart'; @@ -40,7 +41,7 @@ void main() { '2024-03-27T23:51:20.758986946Z', ); - expect(task.status, Task.statusNew); + expect(task.status, TaskStatus.waitingForBackfill); expect(task.buildNumber, isNull); expect(task.endTimestamp, 0); expect(task.createTimestamp, 0); @@ -85,13 +86,13 @@ void main() { test('success', () { final task = generateFirestoreTask( 1, - status: Task.statusFailed, + status: TaskStatus.failed, testFlaky: true, ); task.resetAsRetry(); expect(int.parse(task.name!.split('_').last), 2); - expect(task.status, Task.statusNew); + expect(task.status, TaskStatus.waitingForBackfill); expect(task.testFlaky, false); }); }); diff --git a/app_dart/test/request_handlers/dart_internal_subscription_test.dart b/app_dart/test/request_handlers/dart_internal_subscription_test.dart index baacc56fca..7066d655cf 100644 --- a/app_dart/test/request_handlers/dart_internal_subscription_test.dart +++ b/app_dart/test/request_handlers/dart_internal_subscription_test.dart @@ -5,6 +5,7 @@ import 'dart:convert'; import 'package:buildbucket/buildbucket_pb.dart' as bbv2; +import 'package:cocoon_common/task_status.dart'; import 'package:cocoon_server_test/test_logging.dart'; import 'package:cocoon_service/cocoon_service.dart'; import 'package:cocoon_service/src/model/firestore/task.dart' as fs; @@ -147,7 +148,7 @@ void main() { attempts: 1, buildNumber: buildNumber, name: builder, - status: 'In Progress', + status: TaskStatus.inProgress, commitSha: fsCommit.sha, ), ); @@ -176,7 +177,7 @@ void main() { attempts: 1, buildNumber: buildNumber, name: builder, - status: 'In Progress', + status: TaskStatus.inProgress, commitSha: fsCommit.sha, ), ); @@ -205,7 +206,7 @@ void main() { attempts: 1, buildNumber: buildNumber - 1, name: builder, - status: fs.Task.statusFailed, + status: TaskStatus.failed, commitSha: fsCommit.sha, ), ); @@ -221,12 +222,12 @@ void main() { .hasTaskName(builder) .hasCurrentAttempt(1) .hasBuildNumber(buildNumber - 1) - .hasStatus(fs.Task.statusFailed), + .hasStatus(TaskStatus.failed), isTask .hasTaskName(builder) .hasCurrentAttempt(2) .hasBuildNumber(buildNumber) - .hasStatus(fs.Task.statusSucceeded), + .hasStatus(TaskStatus.succeeded), ]), ); }); diff --git a/app_dart/test/request_handlers/get_build_status_test.dart b/app_dart/test/request_handlers/get_build_status_test.dart index 89c82edcd6..50657e4fe4 100644 --- a/app_dart/test/request_handlers/get_build_status_test.dart +++ b/app_dart/test/request_handlers/get_build_status_test.dart @@ -4,9 +4,9 @@ import 'dart:convert'; +import 'package:cocoon_common/task_status.dart'; import 'package:cocoon_server_test/test_logging.dart'; import 'package:cocoon_service/cocoon_service.dart'; -import 'package:cocoon_service/src/model/firestore/task.dart'; import 'package:cocoon_service/src/service/build_status_service.dart'; import 'package:test/test.dart'; @@ -44,7 +44,7 @@ void main() { final commit = generateFirestoreCommit(1); final task = generateFirestoreTask( 1, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: commit.sha, ); firestore.putDocument(commit); @@ -58,12 +58,12 @@ void main() { final commit = generateFirestoreCommit(1); final taskPass = generateFirestoreTask( 1, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: commit.sha, ); final taskFail = generateFirestoreTask( 2, - status: Task.statusFailed, + status: TaskStatus.failed, commitSha: commit.sha, ); firestore.putDocument(commit); @@ -84,12 +84,12 @@ void main() { ); final taskPass = generateFirestoreTask( 1, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: commit.sha, ); final taskFail = generateFirestoreTask( 2, - status: Task.statusFailed, + status: TaskStatus.failed, commitSha: commit.sha, ); firestore.putDocument(commit); diff --git a/app_dart/test/request_handlers/get_green_commits_test.dart b/app_dart/test/request_handlers/get_green_commits_test.dart index ef678830a5..137e4ddae7 100644 --- a/app_dart/test/request_handlers/get_green_commits_test.dart +++ b/app_dart/test/request_handlers/get_green_commits_test.dart @@ -4,9 +4,9 @@ import 'dart:convert'; +import 'package:cocoon_common/task_status.dart'; import 'package:cocoon_server_test/test_logging.dart'; import 'package:cocoon_service/cocoon_service.dart'; -import 'package:cocoon_service/src/model/firestore/task.dart'; import 'package:cocoon_service/src/service/build_status_provider/commit_tasks_status.dart'; import 'package:test/test.dart'; @@ -41,19 +41,19 @@ void main() { branch: 'flutter-2.13-candidate.0', ); - final task1Succeed = generateFirestoreTask(1, status: Task.statusSucceeded); + final task1Succeed = generateFirestoreTask(1, status: TaskStatus.succeeded); final task2Failed = generateFirestoreTask( 2, - status: Task.statusFailed, + status: TaskStatus.failed, ); // should fail if included final task3FailedFlaky = generateFirestoreTask( 3, - status: Task.statusFailed, + status: TaskStatus.failed, bringup: true, ); // should succeed if included because `bringup: true` final task4SucceedFlaky = generateFirestoreTask( 4, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, testFlaky: true, ); diff --git a/app_dart/test/request_handlers/get_status_test.dart b/app_dart/test/request_handlers/get_status_test.dart index 8fd5d12fd1..5f0d0e49e7 100644 --- a/app_dart/test/request_handlers/get_status_test.dart +++ b/app_dart/test/request_handlers/get_status_test.dart @@ -4,6 +4,7 @@ import 'dart:convert'; +import 'package:cocoon_common/task_status.dart'; import 'package:cocoon_server_test/test_logging.dart'; import 'package:cocoon_service/src/request_handlers/get_status.dart'; import 'package:cocoon_service/src/service/build_status_provider/commit_tasks_status.dart'; @@ -125,14 +126,14 @@ void main() { generateFirestoreTask( 2, bringup: true, - status: 'Failed', + status: TaskStatus.failed, attempts: 1, buildNumber: 123, ), generateFirestoreTask( 2, bringup: true, - status: 'In Progress', + status: TaskStatus.inProgress, attempts: 2, buildNumber: 456, ), diff --git a/app_dart/test/request_handlers/postsubmit_luci_subscription_test.dart b/app_dart/test/request_handlers/postsubmit_luci_subscription_test.dart index c995c354d6..4687cd518f 100644 --- a/app_dart/test/request_handlers/postsubmit_luci_subscription_test.dart +++ b/app_dart/test/request_handlers/postsubmit_luci_subscription_test.dart @@ -3,10 +3,10 @@ // found in the LICENSE file. import 'package:buildbucket/buildbucket_pb.dart' as bbv2; +import 'package:cocoon_common/task_status.dart'; import 'package:cocoon_server_test/test_logging.dart'; import 'package:cocoon_service/cocoon_service.dart'; import 'package:cocoon_service/src/model/firestore/task.dart' as fs; -import 'package:cocoon_service/src/model/firestore/task.dart'; import 'package:cocoon_service/src/service/luci_build_service/user_data.dart'; import 'package:fixnum/fixnum.dart'; import 'package:mockito/mockito.dart'; @@ -108,7 +108,7 @@ void main() { ); // Firestore checks before API call. - expect(fsTask.status, Task.statusNew); + expect(fsTask.status, TaskStatus.waitingForBackfill); expect(fsTask.buildNumber, null); await tester.post(handler); @@ -118,7 +118,7 @@ void main() { existsInStorage(fs.Task.metadata, [ isTask .hasTaskName('Linux A') - .hasStatus(fs.Task.statusSucceeded) + .hasStatus(TaskStatus.succeeded) .hasBuildNumber(63405), ]), ); @@ -133,7 +133,7 @@ void main() { 1, name: 'Linux A', commitSha: fsCommit.sha, - status: fs.Task.statusInProgress, + status: TaskStatus.inProgress, ); firestore.putDocument(fsCommit); firestore.putDocument(fsTask); @@ -159,7 +159,7 @@ void main() { existsInStorage(fs.Task.metadata, [ isTask .hasTaskName('Linux A') - .hasStatus(fs.Task.statusInProgress) + .hasStatus(TaskStatus.inProgress) .hasCurrentAttempt(1), ]), ); @@ -174,7 +174,7 @@ void main() { 1, name: 'Linux A', commitSha: fsCommit.sha, - status: fs.Task.statusSucceeded, + status: TaskStatus.succeeded, ); firestore.putDocument(fsCommit); firestore.putDocument(fsTask); @@ -200,7 +200,7 @@ void main() { existsInStorage(fs.Task.metadata, [ isTask .hasTaskName('Linux A') - .hasStatus(fs.Task.statusSucceeded) + .hasStatus(TaskStatus.succeeded) .hasCurrentAttempt(1), ]), ); @@ -215,7 +215,7 @@ void main() { 1, name: 'Linux B', commitSha: fsCommit.sha, - status: fs.Task.statusSucceeded, + status: TaskStatus.succeeded, ); firestore.putDocument(fsCommit); firestore.putDocument(fsTask); @@ -242,7 +242,7 @@ void main() { existsInStorage(fs.Task.metadata, [ isTask .hasTaskName('Linux B') - .hasStatus(fs.Task.statusSucceeded) + .hasStatus(TaskStatus.succeeded) .hasCurrentAttempt(1), ]), ); @@ -257,7 +257,7 @@ void main() { 1, name: 'Linux A', commitSha: fsCommit.sha, - status: fs.Task.statusFailed, + status: TaskStatus.failed, ); firestore.putDocument(fsCommit); firestore.putDocument(fsTask); @@ -285,7 +285,7 @@ void main() { contains( isTask .hasTaskName('Linux A') - .hasStatus(fs.Task.statusInProgress) + .hasStatus(TaskStatus.inProgress) .hasCurrentAttempt(2), ), ), @@ -301,7 +301,7 @@ void main() { 1, name: 'Linux A', commitSha: fsCommit.sha, - status: fs.Task.statusInfraFailure, + status: TaskStatus.infraFailure, ); firestore.putDocument(fsCommit); firestore.putDocument(fsTask); @@ -329,7 +329,7 @@ void main() { contains( isTask .hasTaskName('Linux A') - .hasStatus(fs.Task.statusInProgress) + .hasStatus(TaskStatus.inProgress) .hasCurrentAttempt(2), ), ), @@ -347,7 +347,7 @@ void main() { 1, name: 'Linux A', commitSha: fsCommit.sha, - status: fs.Task.statusInfraFailure, + status: TaskStatus.infraFailure, ); firestore.putDocument(fsCommit); firestore.putDocument(fsTask); @@ -375,7 +375,7 @@ void main() { contains( isTask .hasTaskName('Linux A') - .hasStatus(fs.Task.statusInProgress) + .hasStatus(TaskStatus.inProgress) .hasCurrentAttempt(2), ), ), @@ -435,9 +435,7 @@ void main() { expect( firestore, existsInStorage(fs.Task.metadata, [ - isTask - .hasTaskName('Linux nonbringup') - .hasStatus(fs.Task.statusSucceeded), + isTask.hasTaskName('Linux nonbringup').hasStatus(TaskStatus.succeeded), ]), ); }); @@ -542,7 +540,7 @@ void main() { expect( firestore, existsInStorage(fs.Task.metadata, [ - isTask.hasTaskName('Linux flutter').hasStatus(fs.Task.statusSucceeded), + isTask.hasTaskName('Linux flutter').hasStatus(TaskStatus.succeeded), ]), ); }); @@ -556,7 +554,7 @@ void main() { 1, name: 'Linux A', commitSha: fsCommit.sha, - status: fs.Task.statusInProgress, + status: TaskStatus.inProgress, ); firestore.putDocument(fsCommit); firestore.putDocument(fsTask); @@ -589,7 +587,7 @@ void main() { 1, name: 'Linux A', commitSha: fsCommit.sha, - status: fs.Task.statusInProgress, + status: TaskStatus.inProgress, ); firestore.putDocument(fsCommit); firestore.putDocument(fsTask); @@ -624,7 +622,7 @@ void main() { 1, name: 'Linux A', commitSha: fsCommit.sha, - status: fs.Task.statusInProgress, + status: TaskStatus.inProgress, ); firestore.putDocument(fsCommit); firestore.putDocument(fsTask); diff --git a/app_dart/test/request_handlers/rerun_prod_task_test.dart b/app_dart/test/request_handlers/rerun_prod_task_test.dart index 771ff0e9c5..17df530712 100644 --- a/app_dart/test/request_handlers/rerun_prod_task_test.dart +++ b/app_dart/test/request_handlers/rerun_prod_task_test.dart @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'package:cocoon_common/task_status.dart'; import 'package:cocoon_common_test/cocoon_common_test.dart'; import 'package:cocoon_server/logging.dart'; import 'package:cocoon_server_test/test_logging.dart'; @@ -72,7 +73,7 @@ void main() { final fsCommit = generateFirestoreCommit(1); final fsTask = generateFirestoreTask( 1, - status: Task.statusFailed, + status: TaskStatus.failed, name: 'Linux A', commitSha: fsCommit.sha, ); @@ -106,7 +107,7 @@ void main() { final fsCommit = generateFirestoreCommit(1); final fsTask = generateFirestoreTask( 1, - status: Task.statusFailed, + status: TaskStatus.failed, name: 'Linux A', commitSha: fsCommit.sha, ); @@ -135,7 +136,7 @@ void main() { final fsCommit = generateFirestoreCommit(1); final fsTask = generateFirestoreTask( 1, - status: Task.statusFailed, + status: TaskStatus.failed, name: 'Linux A', commitSha: fsCommit.sha, ); @@ -147,7 +148,7 @@ void main() { 'repo': fsCommit.slug.name, 'commit': fsCommit.sha, 'task': fsTask.taskName, - 'include': Task.statusSkipped, + 'include': TaskStatus.skipped, }; await expectLater( @@ -168,13 +169,13 @@ void main() { 2, name: 'Linux A', commitSha: fsCommit.sha, - status: fs.Task.statusFailed, + status: TaskStatus.failed, ); final fsTaskB = generateFirestoreTask( 3, name: 'Mac A', commitSha: fsCommit.sha, - status: Task.statusFailed, + status: TaskStatus.failed, ); firestore.putDocument(fsCommit); firestore.putDocument(fsTaskA); @@ -205,19 +206,19 @@ void main() { unorderedEquals([ isTask .hasTaskName('Linux A') - .hasStatus(fs.Task.statusFailed) + .hasStatus(TaskStatus.failed) .hasCurrentAttempt(1), isTask .hasTaskName('Linux A') - .hasStatus(fs.Task.statusNew) + .hasStatus(TaskStatus.waitingForBackfill) .hasCurrentAttempt(2), isTask .hasTaskName('Mac A') - .hasStatus(fs.Task.statusFailed) + .hasStatus(TaskStatus.failed) .hasCurrentAttempt(1), isTask .hasTaskName('Mac A') - .hasStatus(fs.Task.statusNew) + .hasStatus(TaskStatus.waitingForBackfill) .hasCurrentAttempt(2), ]), ), @@ -232,7 +233,7 @@ void main() { 2, name: 'Windows A', commitSha: fsCommit.sha, - status: fs.Task.statusSucceeded, + status: TaskStatus.succeeded, ), ); @@ -262,7 +263,7 @@ void main() { 2, name: 'Windows A', commitSha: fsCommit.sha, - status: fs.Task.statusSkipped, + status: TaskStatus.skipped, ), ); @@ -292,7 +293,7 @@ void main() { 2, name: 'Windows A', commitSha: fsCommit.sha, - status: fs.Task.statusSkipped, + status: TaskStatus.skipped, ), ); @@ -301,7 +302,7 @@ void main() { 'repo': fsCommit.slug.name, 'commit': fsCommit.sha, 'task': 'all', - 'include': Task.statusSkipped, + 'include': TaskStatus.skipped, }; await tester.post(handler); @@ -319,11 +320,11 @@ void main() { existsInStorage(fs.Task.metadata, [ isTask .hasTaskName('Windows A') - .hasStatus(fs.Task.statusSkipped) + .hasStatus(TaskStatus.skipped) .hasCurrentAttempt(1), isTask .hasTaskName('Windows A') - .hasStatus(fs.Task.statusNew) + .hasStatus(TaskStatus.waitingForBackfill) .hasCurrentAttempt(2), ]), ); @@ -337,7 +338,7 @@ void main() { 2, name: 'Windows A', commitSha: fsCommit.sha, - status: fs.Task.statusInProgress, + status: TaskStatus.inProgress, ), ); @@ -346,7 +347,7 @@ void main() { 'repo': fsCommit.slug.name, 'commit': fsCommit.sha, 'task': 'all', - 'include': Task.statusInProgress, + 'include': TaskStatus.inProgress, }; await tester.post(handler); @@ -366,11 +367,11 @@ void main() { unorderedEquals([ isTask .hasTaskName('Windows A') - .hasStatus(fs.Task.statusCancelled) + .hasStatus(TaskStatus.cancelled) .hasCurrentAttempt(1), isTask .hasTaskName('Windows A') - .hasStatus(fs.Task.statusNew) + .hasStatus(TaskStatus.waitingForBackfill) .hasCurrentAttempt(2), ]), ), @@ -395,7 +396,7 @@ void main() { 2, name: 'Windows A', commitSha: fsCommit.sha, - status: fs.Task.statusInProgress, + status: TaskStatus.inProgress, ), ); @@ -404,7 +405,7 @@ void main() { 'repo': fsCommit.slug.name, 'commit': fsCommit.sha, 'task': 'all', - 'include': Task.statusInProgress, + 'include': TaskStatus.inProgress, }; await tester.post(handler); @@ -424,11 +425,11 @@ void main() { unorderedEquals([ isTask .hasTaskName('Windows A') - .hasStatus(fs.Task.statusCancelled) + .hasStatus(TaskStatus.cancelled) .hasCurrentAttempt(1), isTask .hasTaskName('Windows A') - .hasStatus(fs.Task.statusNew) + .hasStatus(TaskStatus.waitingForBackfill) .hasCurrentAttempt(2), ]), ), @@ -480,7 +481,7 @@ void main() { 1, name: 'Linux flutter_release_builder', attempts: 1, - status: fs.Task.statusFailed, + status: TaskStatus.failed, commitSha: '1', created: date, ), @@ -488,7 +489,7 @@ void main() { 2, name: 'Linux flutter_release_builder', attempts: 2, - status: fs.Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: '1', created: date.add(const Duration(hours: 1)), ), @@ -496,7 +497,7 @@ void main() { 3, name: 'Linux depends_on_release_builder_passing_first', attempts: 1, - status: fs.Task.statusSkipped, + status: TaskStatus.skipped, commitSha: '1', created: date, ), @@ -518,19 +519,19 @@ void main() { isTask .hasTaskName('Linux flutter_release_builder') .hasCurrentAttempt(1) - .hasStatus(fs.Task.statusFailed), + .hasStatus(TaskStatus.failed), isTask .hasTaskName('Linux flutter_release_builder') .hasCurrentAttempt(2) - .hasStatus(fs.Task.statusSucceeded), + .hasStatus(TaskStatus.succeeded), isTask .hasTaskName('Linux depends_on_release_builder_passing_first') .hasCurrentAttempt(1) - .hasStatus(fs.Task.statusSkipped), + .hasStatus(TaskStatus.skipped), isTask .hasTaskName('Linux depends_on_release_builder_passing_first') .hasCurrentAttempt(2) - .hasStatus(fs.Task.statusNew), + .hasStatus(TaskStatus.waitingForBackfill), ]), ); }); @@ -546,7 +547,7 @@ void main() { 1, name: 'Linux A', attempts: 1, - status: fs.Task.statusSkipped, + status: TaskStatus.skipped, commitSha: '1', created: date, ), @@ -554,7 +555,7 @@ void main() { 1, name: 'Linux B', attempts: 1, - status: fs.Task.statusSkipped, + status: TaskStatus.skipped, commitSha: '1', created: date, ), @@ -576,19 +577,19 @@ void main() { isTask .hasTaskName('Linux A') .hasCurrentAttempt(1) - .hasStatus(fs.Task.statusSkipped), + .hasStatus(TaskStatus.skipped), isTask .hasTaskName('Linux B') .hasCurrentAttempt(1) - .hasStatus(fs.Task.statusSkipped), + .hasStatus(TaskStatus.skipped), isTask .hasTaskName('Linux A') .hasCurrentAttempt(2) - .hasStatus(fs.Task.statusNew), + .hasStatus(TaskStatus.waitingForBackfill), isTask .hasTaskName('Linux B') .hasCurrentAttempt(2) - .hasStatus(fs.Task.statusNew), + .hasStatus(TaskStatus.waitingForBackfill), ]), ); }); @@ -604,7 +605,7 @@ void main() { 1, name: 'Linux Old', attempts: 1, - status: fs.Task.statusSkipped, + status: TaskStatus.skipped, commitSha: '1', created: oldDate, ), @@ -627,12 +628,12 @@ void main() { isTask .hasTaskName('Linux Old') .hasCurrentAttempt(1) - .hasStatus(fs.Task.statusSkipped) + .hasStatus(TaskStatus.skipped) .hasCreateTimestamp(oldDate.millisecondsSinceEpoch), isTask .hasTaskName('Linux Old') .hasCurrentAttempt(2) - .hasStatus(fs.Task.statusNew) + .hasStatus(TaskStatus.waitingForBackfill) .hasCreateTimestamp(newDate.millisecondsSinceEpoch), ]), ); @@ -660,7 +661,7 @@ void main() { 1, name: 'Linux flutter_release_builder', attempts: 1, - status: fs.Task.statusInProgress, + status: TaskStatus.inProgress, commitSha: '1', ), ]); @@ -684,7 +685,7 @@ void main() { 1, name: 'Linux flutter_release_builder', attempts: 1, - status: fs.Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: '1', ), ]); @@ -708,7 +709,7 @@ void main() { 1, name: 'Linux flutter_release_builder', attempts: 1, - status: fs.Task.statusFailed, + status: TaskStatus.failed, commitSha: '1', buildNumber: 123, ), @@ -743,7 +744,7 @@ void main() { 1, name: 'Linux flutter_release_builder', attempts: 1, - status: fs.Task.statusFailed, + status: TaskStatus.failed, commitSha: '1', ), ]); @@ -763,7 +764,7 @@ void main() { isTask .hasTaskName('Linux flutter_release_builder') .hasCurrentAttempt(1) - .hasStatus(fs.Task.statusFailed), + .hasStatus(TaskStatus.failed), ]), ); }); @@ -776,7 +777,7 @@ void main() { 2, name: 'Windows C', commitSha: fsCommit.sha, - status: fs.Task.statusSucceeded, + status: TaskStatus.succeeded, ), ); @@ -843,7 +844,7 @@ void main() { 1, name: 'Linux A', commitSha: fsCommit.sha, - status: Task.statusFailed, + status: TaskStatus.failed, ); firestore.putDocument(fsCommit); firestore.putDocument(fsTask); diff --git a/app_dart/test/request_handlers/scheduler/backfill_grid_test.dart b/app_dart/test/request_handlers/scheduler/backfill_grid_test.dart index a6112a6ffa..133d18ce99 100644 --- a/app_dart/test/request_handlers/scheduler/backfill_grid_test.dart +++ b/app_dart/test/request_handlers/scheduler/backfill_grid_test.dart @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'package:cocoon_common/task_status.dart'; import 'package:cocoon_server_test/test_logging.dart'; import 'package:cocoon_service/protos.dart'; import 'package:cocoon_service/src/request_handlers/scheduler/backfill_grid.dart'; @@ -75,7 +76,7 @@ void main() { generateFirestoreTask( 1, commitSha: c1.sha, - status: 'In Progress', + status: TaskStatus.inProgress, ).toRef(); final t1c2 = generateFirestoreTask(1, commitSha: c2.sha).toRef(); final t2c1 = generateFirestoreTask(2, commitSha: c1.sha).toRef(); diff --git a/app_dart/test/request_handlers/scheduler/backfill_strategy_test.dart b/app_dart/test/request_handlers/scheduler/backfill_strategy_test.dart index 5ec8753a61..142fbe3d99 100644 --- a/app_dart/test/request_handlers/scheduler/backfill_strategy_test.dart +++ b/app_dart/test/request_handlers/scheduler/backfill_strategy_test.dart @@ -4,8 +4,8 @@ import 'dart:math'; +import 'package:cocoon_common/task_status.dart'; import 'package:cocoon_server_test/test_logging.dart'; -import 'package:cocoon_service/src/model/firestore/task.dart' as fs; import 'package:cocoon_service/src/model/task_ref.dart'; import 'package:cocoon_service/src/request_handlers/scheduler/backfill_grid.dart'; import 'package:cocoon_service/src/request_handlers/scheduler/backfill_strategy.dart'; @@ -35,7 +35,7 @@ void main() { return generateFirestoreTask( index, commitSha: commits[commit].sha, - status: fs.Task.statusSucceeded, + status: TaskStatus.succeeded, name: 'Linux TASK_$index', ).toRef(); } @@ -44,7 +44,7 @@ void main() { return generateFirestoreTask( index, commitSha: commits[commit].sha, - status: fs.Task.statusNew, + status: TaskStatus.waitingForBackfill, name: 'Linux TASK_$index', ).toRef(); } @@ -53,7 +53,7 @@ void main() { return generateFirestoreTask( index, commitSha: commits[commit].sha, - status: fs.Task.statusFailed, + status: TaskStatus.failed, name: 'Linux TASK_$index', ).toRef(); } @@ -62,7 +62,7 @@ void main() { return generateFirestoreTask( index, commitSha: commits[commit].sha, - status: fs.Task.statusInProgress, + status: TaskStatus.inProgress, name: 'Linux TASK_$index', ).toRef(); } diff --git a/app_dart/test/request_handlers/scheduler/batch_backfiller_test.dart b/app_dart/test/request_handlers/scheduler/batch_backfiller_test.dart index cd82890b61..930a337256 100644 --- a/app_dart/test/request_handlers/scheduler/batch_backfiller_test.dart +++ b/app_dart/test/request_handlers/scheduler/batch_backfiller_test.dart @@ -3,8 +3,8 @@ // found in the LICENSE file. import 'package:cocoon_common/rpc_model.dart' as rpc; +import 'package:cocoon_common/task_status.dart'; import 'package:cocoon_server_test/test_logging.dart'; -import 'package:cocoon_service/src/model/firestore/task.dart' as fs; import 'package:cocoon_service/src/request_handlers/scheduler/backfill_grid.dart'; import 'package:cocoon_service/src/request_handlers/scheduler/backfill_strategy.dart'; import 'package:cocoon_service/src/request_handlers/scheduler/batch_backfiller.dart'; @@ -88,11 +88,11 @@ void main() { tester = RequestHandlerTester(); }); - const $N = fs.Task.statusNew; - const $I = fs.Task.statusInProgress; - const $S = fs.Task.statusSucceeded; - const $F = fs.Task.statusFailed; - const $K = fs.Task.statusSkipped; + const $N = TaskStatus.waitingForBackfill; + const $I = TaskStatus.inProgress; + const $S = TaskStatus.succeeded; + const $F = TaskStatus.failed; + const $K = TaskStatus.skipped; Future> visualizeFirestoreGrid({ int? commits, @@ -117,7 +117,7 @@ void main() { } Future fillStorageAndSetCiYaml( - List> statuses, { + List> statuses, { String branch = 'master', List backfill = const [true, true, true, true], }) async { @@ -374,7 +374,9 @@ final class _NaiveBackfillStrategy extends BackfillStrategy { List determineBackfill(BackfillGrid grid) { return [ for (final (_, tasks) in grid.eligibleTasks) - if (tasks.firstWhereOrNull((t) => t.status == fs.Task.statusNew) + if (tasks.firstWhereOrNull( + (t) => t.status == TaskStatus.waitingForBackfill, + ) case final task?) grid.createBackfillTask( task, diff --git a/app_dart/test/request_handlers/scheduler/vacuum_stale_tasks_test.dart b/app_dart/test/request_handlers/scheduler/vacuum_stale_tasks_test.dart index 6ba32834b1..d475582753 100644 --- a/app_dart/test/request_handlers/scheduler/vacuum_stale_tasks_test.dart +++ b/app_dart/test/request_handlers/scheduler/vacuum_stale_tasks_test.dart @@ -4,10 +4,10 @@ import 'package:buildbucket/buildbucket_pb.dart' as bbv2; import 'package:cocoon_common/rpc_model.dart' as rpc; +import 'package:cocoon_common/task_status.dart'; import 'package:cocoon_server_test/test_logging.dart'; import 'package:cocoon_service/cocoon_service.dart'; import 'package:cocoon_service/src/model/firestore/task.dart' as fs; -import 'package:cocoon_service/src/model/firestore/task.dart'; import 'package:fixnum/fixnum.dart'; import 'package:mockito/mockito.dart'; import 'package:test/test.dart'; @@ -56,7 +56,7 @@ void main() { // Insert Task into Firestore: final fsTask = generateFirestoreTask( 1, - status: Task.statusInProgress, + status: TaskStatus.inProgress, name: 'Linux gosh_darnit', buildNumber: 123, commitSha: fsCommit.sha, @@ -85,7 +85,7 @@ void main() { expect( firestore, existsInStorage(fs.Task.metadata, [ - isTask.hasStatus(fs.Task.statusSucceeded).hasBuildNumber(123), + isTask.hasStatus(TaskStatus.succeeded).hasBuildNumber(123), ]), ); }); @@ -96,7 +96,7 @@ void main() { firestore.putDocument( generateFirestoreTask( 1, - status: Task.statusInProgress, + status: TaskStatus.inProgress, commitSha: fsCommit.sha, created: DateTime.now().subtract(const Duration(minutes: 5)), ), @@ -107,7 +107,7 @@ void main() { expect( firestore, existsInStorage(fs.Task.metadata, [ - isTask.hasStatus(fs.Task.statusInProgress), + isTask.hasStatus(TaskStatus.inProgress), ]), ); }, @@ -118,21 +118,21 @@ void main() { firestore.putDocument( generateFirestoreTask( 1, - status: Task.statusInProgress, + status: TaskStatus.inProgress, commitSha: fsCommit.sha, ), ); firestore.putDocument( generateFirestoreTask( 2, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: fsCommit.sha, ), ); firestore.putDocument( generateFirestoreTask( 3, - status: Task.statusInProgress, + status: TaskStatus.inProgress, created: DateTime.now().subtract(const Duration(hours: 4)), commitSha: fsCommit.sha, ), @@ -144,9 +144,9 @@ void main() { expect( firestore, existsInStorage(fs.Task.metadata, [ - isTask.hasStatus(fs.Task.statusNew), - isTask.hasStatus(fs.Task.statusSucceeded), - isTask.hasStatus(fs.Task.statusNew), + isTask.hasStatus(TaskStatus.waitingForBackfill), + isTask.hasStatus(TaskStatus.succeeded), + isTask.hasStatus(TaskStatus.waitingForBackfill), ]), ); }); @@ -166,7 +166,7 @@ void main() { rcCommit, generateFirestoreTask( 1, - status: Task.statusInProgress, + status: TaskStatus.inProgress, commitSha: 'abc123', created: DateTime.now().subtract(const Duration(hours: 4)), ), @@ -178,7 +178,7 @@ void main() { expect( firestore, existsInStorage(fs.Task.metadata, [ - isTask.hasStatus(fs.Task.statusNew), + isTask.hasStatus(TaskStatus.waitingForBackfill), ]), ); }); diff --git a/app_dart/test/request_handlers/update_discord_status_test.dart b/app_dart/test/request_handlers/update_discord_status_test.dart index 4c22707cc2..28f8dd0d32 100644 --- a/app_dart/test/request_handlers/update_discord_status_test.dart +++ b/app_dart/test/request_handlers/update_discord_status_test.dart @@ -4,9 +4,9 @@ import 'dart:convert'; +import 'package:cocoon_common/task_status.dart'; import 'package:cocoon_server_test/test_logging.dart'; import 'package:cocoon_service/src/model/firestore/build_status_snapshot.dart'; -import 'package:cocoon_service/src/model/firestore/task.dart'; import 'package:cocoon_service/src/request_handlers/update_discord_status.dart'; import 'package:cocoon_service/src/service/build_status_service.dart' hide BuildStatus; @@ -63,7 +63,7 @@ void main() { test('creates an initial doc when the first status is a failure', () async { firestore.putDocument(generateFirestoreCommit(1)); firestore.putDocument( - generateFirestoreTask(1, status: Task.statusFailed, commitSha: '1'), + generateFirestoreTask(1, status: TaskStatus.failed, commitSha: '1'), ); await decodeHandlerBody>(); @@ -84,7 +84,7 @@ void main() { test('does not post on unchanged value', () async { firestore.putDocument(generateFirestoreCommit(1)); firestore.putDocument( - generateFirestoreTask(1, status: Task.statusSucceeded, commitSha: '1'), + generateFirestoreTask(1, status: TaskStatus.succeeded, commitSha: '1'), ); await firestore.createDocument( @@ -113,7 +113,7 @@ void main() { firestore.putDocument( generateFirestoreTask( 1, - status: Task.statusFailed, + status: TaskStatus.failed, commitSha: '1', name: 'Linux foo', ), @@ -156,7 +156,7 @@ void main() { firestore.putDocument( generateFirestoreTask( 1, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: '1', name: 'Linux foo', created: alwaysTime, @@ -201,7 +201,7 @@ void main() { firestore.putDocument( generateFirestoreTask( 1, - status: Task.statusFailed, + status: TaskStatus.failed, commitSha: '1', name: 'Linux foo', ), @@ -209,7 +209,7 @@ void main() { firestore.putDocument( generateFirestoreTask( 1, - status: Task.statusFailed, + status: TaskStatus.failed, commitSha: '1', name: 'Mac bar', ), @@ -217,7 +217,7 @@ void main() { firestore.putDocument( generateFirestoreTask( 1, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: '1', name: 'Windows baz', ), @@ -266,7 +266,7 @@ void main() { generateFirestoreTask( 1, name: 'a' * 2000, - status: Task.statusFailed, + status: TaskStatus.failed, commitSha: '1', ), ); diff --git a/app_dart/test/service/build_status_service_test.dart b/app_dart/test/service/build_status_service_test.dart index 3dd928d93c..fedd279f22 100644 --- a/app_dart/test/service/build_status_service_test.dart +++ b/app_dart/test/service/build_status_service_test.dart @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'package:cocoon_common/task_status.dart'; import 'package:cocoon_server_test/test_logging.dart'; -import 'package:cocoon_service/src/model/firestore/task.dart'; import 'package:cocoon_service/src/service/build_status_service.dart'; import 'package:github/github.dart'; import 'package:test/test.dart'; @@ -46,12 +46,12 @@ void main() { newerCommit, generateFirestoreTask( 1, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: newerCommit.sha, ), generateFirestoreTask( 2, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: newerCommit.sha, ), ]); @@ -67,27 +67,27 @@ void main() { olderCommit, generateFirestoreTask( 1, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: newerCommit.sha, ), generateFirestoreTask( 2, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: newerCommit.sha, ), generateFirestoreTask( 1, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: olderCommit.sha, ), generateFirestoreTask( 2, - status: Task.statusFailed, + status: TaskStatus.failed, commitSha: olderCommit.sha, ), ]); firestore.putDocument( - generateFirestoreTask(1, status: Task.statusSucceeded), + generateFirestoreTask(1, status: TaskStatus.succeeded), ); final status = await buildStatusService.calculateCumulativeStatus(slug); expect(status, BuildStatus.success()); @@ -99,12 +99,12 @@ void main() { newerCommit, generateFirestoreTask( 1, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: newerCommit.sha, ), generateFirestoreTask( 2, - status: Task.statusFailed, + status: TaskStatus.failed, commitSha: newerCommit.sha, ), ]); @@ -120,22 +120,22 @@ void main() { olderCommit, generateFirestoreTask( 1, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: newerCommit.sha, ), generateFirestoreTask( 2, - status: Task.statusFailed, + status: TaskStatus.failed, commitSha: newerCommit.sha, ), generateFirestoreTask( 1, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: olderCommit.sha, ), generateFirestoreTask( 2, - status: Task.statusFailed, + status: TaskStatus.failed, commitSha: olderCommit.sha, ), ]); @@ -153,12 +153,12 @@ void main() { olderCommit, generateFirestoreTask( 1, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: olderCommit.sha, ), generateFirestoreTask( 2, - status: Task.statusFailed, + status: TaskStatus.failed, commitSha: newerCommit.sha, ), ]); @@ -174,12 +174,12 @@ void main() { olderCommit, generateFirestoreTask( 1, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: newerCommit.sha, ), generateFirestoreTask( 2, - status: Task.statusFailed, + status: TaskStatus.failed, commitSha: newerCommit.sha, bringup: true, ), @@ -197,22 +197,22 @@ void main() { olderCommit, generateFirestoreTask( 1, - status: Task.statusInProgress, + status: TaskStatus.inProgress, commitSha: newerCommit.sha, ), generateFirestoreTask( 2, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: newerCommit.sha, ), generateFirestoreTask( 1, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: olderCommit.sha, ), generateFirestoreTask( 2, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: olderCommit.sha, ), ]); @@ -230,22 +230,22 @@ void main() { olderCommit, generateFirestoreTask( 1, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: newerCommit.sha, ), generateFirestoreTask( 2, - status: Task.statusInProgress, + status: TaskStatus.inProgress, commitSha: newerCommit.sha, ), generateFirestoreTask( 1, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: olderCommit.sha, ), generateFirestoreTask( 2, - status: Task.statusFailed, + status: TaskStatus.failed, commitSha: olderCommit.sha, ), ]); @@ -261,23 +261,23 @@ void main() { olderCommit, generateFirestoreTask( 1, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: newerCommit.sha, ), generateFirestoreTask( 2, - status: Task.statusInProgress, + status: TaskStatus.inProgress, attempts: 2, commitSha: newerCommit.sha, ), generateFirestoreTask( 1, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: olderCommit.sha, ), generateFirestoreTask( 2, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: olderCommit.sha, ), ]); @@ -291,22 +291,22 @@ void main() { olderCommit, generateFirestoreTask( 1, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: newerCommit.sha, ), generateFirestoreTask( 2, - status: Task.statusInfraFailure, + status: TaskStatus.infraFailure, commitSha: newerCommit.sha, ), generateFirestoreTask( 1, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: olderCommit.sha, ), generateFirestoreTask( 2, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: olderCommit.sha, ), ]); @@ -320,23 +320,23 @@ void main() { olderCommit, generateFirestoreTask( 1, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: newerCommit.sha, ), generateFirestoreTask( 2, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: newerCommit.sha, attempts: 2, ), generateFirestoreTask( 1, - status: Task.statusSucceeded, + status: TaskStatus.succeeded, commitSha: olderCommit.sha, ), generateFirestoreTask( 2, - status: Task.statusFailed, + status: TaskStatus.failed, commitSha: olderCommit.sha, ), ]); @@ -347,7 +347,7 @@ void main() { test('supports a non-default branch', () async { firestore.putDocuments([ generateFirestoreCommit(1, branch: 'flutter-0.42-candidate.0'), - generateFirestoreTask(1, commitSha: '1', status: Task.statusSucceeded), + generateFirestoreTask(1, commitSha: '1', status: TaskStatus.succeeded), ]); final status = await buildStatusService.calculateCumulativeStatus( slug, diff --git a/app_dart/test/service/luci_build_service/check_rerun_builder_test.dart b/app_dart/test/service/luci_build_service/check_rerun_builder_test.dart index d7835fd676..c0b358288c 100644 --- a/app_dart/test/service/luci_build_service/check_rerun_builder_test.dart +++ b/app_dart/test/service/luci_build_service/check_rerun_builder_test.dart @@ -3,6 +3,7 @@ // found in the LICENSE file. import 'package:buildbucket/buildbucket_pb.dart' as bbv2; +import 'package:cocoon_common/task_status.dart'; import 'package:cocoon_server_test/test_logging.dart'; import 'package:cocoon_service/cocoon_service.dart'; import 'package:cocoon_service/src/model/firestore/task.dart' as fs; @@ -55,7 +56,7 @@ void main() { 1, name: 'Linux foo', commitSha: fsCommit.sha, - status: fs.Task.statusFailed, + status: TaskStatus.failed, ); firestore.putDocument(fsCommit); firestore.putDocument(fsTask); @@ -99,8 +100,8 @@ void main() { expect( firestore, existsInStorage(fs.Task.metadata, [ - isTask.hasCurrentAttempt(1).hasStatus(fs.Task.statusFailed), - isTask.hasCurrentAttempt(2).hasStatus(fs.Task.statusInProgress), + isTask.hasCurrentAttempt(1).hasStatus(TaskStatus.failed), + isTask.hasCurrentAttempt(2).hasStatus(TaskStatus.inProgress), ]), ); }); @@ -112,7 +113,7 @@ void main() { 1, name: 'Linux foo', commitSha: fsCommit.sha, - status: fs.Task.statusInfraFailure, + status: TaskStatus.infraFailure, ); firestore.putDocument(fsCommit); firestore.putDocument(fsTask); @@ -156,8 +157,8 @@ void main() { expect( firestore, existsInStorage(fs.Task.metadata, [ - isTask.hasCurrentAttempt(1).hasStatus(fs.Task.statusInfraFailure), - isTask.hasCurrentAttempt(2).hasStatus(fs.Task.statusInProgress), + isTask.hasCurrentAttempt(1).hasStatus(TaskStatus.infraFailure), + isTask.hasCurrentAttempt(2).hasStatus(TaskStatus.inProgress), ]), ); }); @@ -169,7 +170,7 @@ void main() { 1, name: 'Linux foo', commitSha: fsCommit.sha, - status: fs.Task.statusFailed, + status: TaskStatus.failed, ); firestore.putDocument(fsCommit); firestore.putDocument(fsTask); diff --git a/app_dart/test/service/luci_build_service/rerun_dart_internal_test.dart b/app_dart/test/service/luci_build_service/rerun_dart_internal_test.dart index fbff1ce567..de01eee869 100644 --- a/app_dart/test/service/luci_build_service/rerun_dart_internal_test.dart +++ b/app_dart/test/service/luci_build_service/rerun_dart_internal_test.dart @@ -3,6 +3,7 @@ // found in the LICENSE file. import 'package:buildbucket/buildbucket_pb.dart' as bbv2; +import 'package:cocoon_common/task_status.dart'; import 'package:cocoon_common_test/cocoon_common_test.dart'; import 'package:cocoon_server/logging.dart'; import 'package:cocoon_server_test/test_logging.dart'; @@ -43,7 +44,7 @@ void main() { task = generateFirestoreTask( 0, name: 'Linux flutter_release_builder', - status: fs.Task.statusFailed, + status: TaskStatus.failed, buildNumber: 123, ); firestore.putDocument(task); @@ -103,7 +104,7 @@ void main() { expect( firestore, existsInStorage(fs.Task.metadata, [ - isTask.hasStatus(fs.Task.statusFailed).hasCurrentAttempt(1), + isTask.hasStatus(TaskStatus.failed).hasCurrentAttempt(1), ]), ); }); @@ -152,7 +153,7 @@ void main() { expect( firestore, existsInStorage(fs.Task.metadata, [ - isTask.hasStatus(fs.Task.statusFailed).hasCurrentAttempt(1), + isTask.hasStatus(TaskStatus.failed).hasCurrentAttempt(1), ]), ); }); @@ -258,8 +259,8 @@ void main() { expect( firestore, existsInStorage(fs.Task.metadata, [ - isTask.hasStatus(fs.Task.statusFailed).hasCurrentAttempt(1), - isTask.hasStatus(fs.Task.statusInProgress).hasCurrentAttempt(2), + isTask.hasStatus(TaskStatus.failed).hasCurrentAttempt(1), + isTask.hasStatus(TaskStatus.inProgress).hasCurrentAttempt(2), ]), ); }); @@ -332,8 +333,8 @@ void main() { expect( firestore, existsInStorage(fs.Task.metadata, [ - isTask.hasStatus(fs.Task.statusFailed).hasCurrentAttempt(1), - isTask.hasStatus(fs.Task.statusInProgress).hasCurrentAttempt(2), + isTask.hasStatus(TaskStatus.failed).hasCurrentAttempt(1), + isTask.hasStatus(TaskStatus.inProgress).hasCurrentAttempt(2), ]), ); }); diff --git a/app_dart/test/service/scheduler/policy_test.dart b/app_dart/test/service/scheduler/policy_test.dart index b11d771019..7b705965df 100644 --- a/app_dart/test/service/scheduler/policy_test.dart +++ b/app_dart/test/service/scheduler/policy_test.dart @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'package:cocoon_common/task_status.dart'; import 'package:cocoon_server_test/test_logging.dart'; import 'package:cocoon_service/src/model/firestore/task.dart'; import 'package:cocoon_service/src/service/luci_build_service.dart'; @@ -28,20 +29,20 @@ void main() { generateFirestoreTask(4), generateFirestoreTask(3), generateFirestoreTask(2), - generateFirestoreTask(1, status: Task.statusSucceeded), + generateFirestoreTask(1, status: TaskStatus.succeeded), ]; final latestAllPendingOrSkipped = [ generateFirestoreTask(6), - generateFirestoreTask(5, status: Task.statusSkipped), - generateFirestoreTask(4, status: Task.statusSkipped), - generateFirestoreTask(3, status: Task.statusSkipped), - generateFirestoreTask(2, status: Task.statusSkipped), - generateFirestoreTask(1, status: Task.statusSucceeded), + generateFirestoreTask(5, status: TaskStatus.skipped), + generateFirestoreTask(4, status: TaskStatus.skipped), + generateFirestoreTask(3, status: TaskStatus.skipped), + generateFirestoreTask(2, status: TaskStatus.skipped), + generateFirestoreTask(1, status: TaskStatus.succeeded), ]; final latestFinishedButRestPending = [ - generateFirestoreTask(6, status: Task.statusSucceeded), + generateFirestoreTask(6, status: TaskStatus.succeeded), generateFirestoreTask(5), generateFirestoreTask(4), generateFirestoreTask(3), @@ -50,7 +51,7 @@ void main() { ]; final latestFailed = [ - generateFirestoreTask(6, status: Task.statusFailed), + generateFirestoreTask(6, status: TaskStatus.failed), generateFirestoreTask(5), generateFirestoreTask(4), generateFirestoreTask(3), @@ -63,16 +64,16 @@ void main() { generateFirestoreTask(5), generateFirestoreTask(4), generateFirestoreTask(3), - generateFirestoreTask(2, status: Task.statusSucceeded), - generateFirestoreTask(1, status: Task.statusSucceeded), + generateFirestoreTask(2, status: TaskStatus.succeeded), + generateFirestoreTask(1, status: TaskStatus.succeeded), ]; final failedWithRunning = [ generateFirestoreTask(6), generateFirestoreTask(5), generateFirestoreTask(4), - generateFirestoreTask(3, status: Task.statusFailed), - generateFirestoreTask(2, status: Task.statusInProgress), + generateFirestoreTask(3, status: TaskStatus.failed), + generateFirestoreTask(2, status: TaskStatus.inProgress), generateFirestoreTask(1), ]; @@ -169,7 +170,7 @@ void main() { final pending = [generateFirestoreTask(1)]; final latestFailed = [ - generateFirestoreTask(1, status: Task.statusFailed), + generateFirestoreTask(1, status: TaskStatus.failed), ]; test('triggers every task', () async { diff --git a/app_dart/test/service/scheduler_test.dart b/app_dart/test/service/scheduler_test.dart index d4a5972998..7df59b4953 100644 --- a/app_dart/test/service/scheduler_test.dart +++ b/app_dart/test/service/scheduler_test.dart @@ -6,6 +6,7 @@ import 'dart:convert'; import 'dart:io'; import 'package:buildbucket/buildbucket_pb.dart' as bbv2; +import 'package:cocoon_common/task_status.dart'; import 'package:cocoon_server_test/mocks.dart'; import 'package:cocoon_server_test/test_logging.dart'; import 'package:cocoon_service/cocoon_service.dart'; @@ -15,7 +16,6 @@ import 'package:cocoon_service/src/model/firestore/ci_staging.dart'; import 'package:cocoon_service/src/model/firestore/commit.dart' as fs; import 'package:cocoon_service/src/model/firestore/pr_check_runs.dart'; import 'package:cocoon_service/src/model/firestore/task.dart' as fs; -import 'package:cocoon_service/src/model/firestore/task.dart'; import 'package:cocoon_service/src/model/github/checks.dart' as cocoon_checks; import 'package:cocoon_service/src/service/big_query.dart'; import 'package:cocoon_service/src/service/luci_build_service/engine_artifacts.dart'; @@ -371,11 +371,11 @@ void main() { expect( firestore, existsInStorage(fs.Task.metadata, [ - isTask.hasTaskName('Linux A').hasStatus(Task.statusInProgress), - isTask.hasTaskName('Linux runIf').hasStatus(Task.statusInProgress), + isTask.hasTaskName('Linux A').hasStatus(TaskStatus.inProgress), + isTask.hasTaskName('Linux runIf').hasStatus(TaskStatus.inProgress), isTask .hasTaskName('Google Internal Roll') - .hasStatus(Task.statusNew), + .hasStatus(TaskStatus.waitingForBackfill), ]), ); }); @@ -468,9 +468,9 @@ void main() { expect( firestore, existsInStorage(fs.Task.metadata, [ - isTask.hasStatus(Task.statusInProgress), - isTask.hasStatus(Task.statusInProgress), - isTask.hasStatus(Task.statusNew), + isTask.hasStatus(TaskStatus.inProgress), + isTask.hasStatus(TaskStatus.inProgress), + isTask.hasStatus(TaskStatus.waitingForBackfill), ]), ); }); @@ -500,7 +500,10 @@ void main() { firestore, existsInStorage( fs.Task.metadata, - allOf(hasLength(6), everyElement(isTask.hasStatus(Task.statusNew))), + allOf( + hasLength(6), + everyElement(isTask.hasStatus(TaskStatus.waitingForBackfill)), + ), ), ); }); @@ -517,7 +520,7 @@ void main() { firestore, existsInStorage( fs.Task.metadata, - everyElement(isTask.hasStatus(Task.statusInProgress)), + everyElement(isTask.hasStatus(TaskStatus.inProgress)), ), ); }); @@ -534,7 +537,7 @@ void main() { firestore, existsInStorage( fs.Task.metadata, - everyElement(isTask.hasStatus(Task.statusSkipped)), + everyElement(isTask.hasStatus(TaskStatus.skipped)), ), ); }); diff --git a/app_dart/test/src/utilities/entity_generators.dart b/app_dart/test/src/utilities/entity_generators.dart index 3fa08f8fe5..989809adb9 100644 --- a/app_dart/test/src/utilities/entity_generators.dart +++ b/app_dart/test/src/utilities/entity_generators.dart @@ -3,6 +3,7 @@ // found in the LICENSE file. import 'package:buildbucket/buildbucket_pb.dart' as bbv2; +import 'package:cocoon_common/task_status.dart'; import 'package:cocoon_service/ci_yaml.dart'; import 'package:cocoon_service/src/model/firestore/commit.dart'; import 'package:cocoon_service/src/model/firestore/github_build_status.dart'; @@ -18,7 +19,7 @@ import '../service/fake_scheduler.dart'; Task generateFirestoreTask( int i, { String? name, - String status = Task.statusNew, + TaskStatus status = TaskStatus.waitingForBackfill, int attempts = 1, bool bringup = false, bool testFlaky = false, diff --git a/packages/cocoon_common/lib/task_status.dart b/packages/cocoon_common/lib/task_status.dart index 45bfa9a99c..aa205152b9 100644 --- a/packages/cocoon_common/lib/task_status.dart +++ b/packages/cocoon_common/lib/task_status.dart @@ -7,8 +7,8 @@ import 'package:collection/collection.dart'; /// Represents differerent states of a task, or an execution of a build target. /// /// TODO(matanlurey): Finish migrating (https://github.com/flutter/flutter/issues/167284): -/// - [ ] All usages of `Task.status` should be of type `TaskStatus` -/// - [ ] Stop implementing `String` and handle conversion elsewherer +/// - [x] All usages of `Task.status` should be of type `TaskStatus` +/// - [ ] Stop implementing `String` and handle conversion elsewhere /// - [ ] Replace extension type with an `enum` extension type const TaskStatus._(String _schemaValue) implements String { /// Returns the status represented by the provided [value]. @@ -29,7 +29,7 @@ extension type const TaskStatus._(String _schemaValue) implements String { static const cancelled = TaskStatus._('Cancelled'); /// The task is waiting to be queued. - static const queuedForBackfill = TaskStatus._('New'); + static const waitingForBackfill = TaskStatus._('New'); /// The task is either queued or running. static const inProgress = TaskStatus._('In Progress'); @@ -51,7 +51,7 @@ extension type const TaskStatus._(String _schemaValue) implements String { /// This list is unmodifiable. static const values = [ cancelled, - queuedForBackfill, + waitingForBackfill, inProgress, infraFailure, failed, diff --git a/packages/cocoon_common/test/task_status_test.dart b/packages/cocoon_common/test/task_status_test.dart index ac2230dfa3..473bcd10a4 100644 --- a/packages/cocoon_common/test/task_status_test.dart +++ b/packages/cocoon_common/test/task_status_test.dart @@ -34,7 +34,7 @@ void main() { for (final MapEntry(key: value, value: expectation) in { TaskStatus.cancelled: 'Cancelled', - TaskStatus.queuedForBackfill: 'New', + TaskStatus.waitingForBackfill: 'New', TaskStatus.infraFailure: 'Infra Failure', TaskStatus.failed: 'Failed', TaskStatus.succeeded: 'Succeeded',