diff --git a/ent/gen/ent/migrate/schema.go b/ent/gen/ent/migrate/schema.go index 683bb282..88af83ca 100644 --- a/ent/gen/ent/migrate/schema.go +++ b/ent/gen/ent/migrate/schema.go @@ -28,7 +28,7 @@ var ( Symbol: "action_cache_statistics_action_summaries_action_cache_statistics", Columns: []*schema.Column{ActionCacheStatisticsColumns[6]}, RefColumns: []*schema.Column{ActionSummariesColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -54,7 +54,7 @@ var ( Symbol: "action_data_action_summaries_action_data", Columns: []*schema.Column{ActionDataColumns[8]}, RefColumns: []*schema.Column{ActionSummariesColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -77,7 +77,7 @@ var ( Symbol: "action_summaries_metrics_action_summary", Columns: []*schema.Column{ActionSummariesColumns[5]}, RefColumns: []*schema.Column{MetricsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -99,25 +99,25 @@ var ( Symbol: "artifact_metrics_files_metrics_source_artifacts_read", Columns: []*schema.Column{ArtifactMetricsColumns[1]}, RefColumns: []*schema.Column{FilesMetricsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, { Symbol: "artifact_metrics_files_metrics_output_artifacts_seen", Columns: []*schema.Column{ArtifactMetricsColumns[2]}, RefColumns: []*schema.Column{FilesMetricsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, { Symbol: "artifact_metrics_files_metrics_output_artifacts_from_action_cache", Columns: []*schema.Column{ArtifactMetricsColumns[3]}, RefColumns: []*schema.Column{FilesMetricsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, { Symbol: "artifact_metrics_metrics_artifact_metrics", Columns: []*schema.Column{ArtifactMetricsColumns[4]}, RefColumns: []*schema.Column{MetricsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -156,7 +156,7 @@ var ( Symbol: "bazel_invocations_builds_invocations", Columns: []*schema.Column{BazelInvocationsColumns[20]}, RefColumns: []*schema.Column{BuildsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, { Symbol: "bazel_invocations_event_files_bazel_invocation", @@ -191,7 +191,7 @@ var ( Symbol: "bazel_invocation_problems_bazel_invocations_problems", Columns: []*schema.Column{BazelInvocationProblemsColumns[4]}, RefColumns: []*schema.Column{BazelInvocationsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -259,31 +259,31 @@ var ( Symbol: "build_graph_metrics_evaluation_stats_dirtied_values", Columns: []*schema.Column{BuildGraphMetricsColumns[10]}, RefColumns: []*schema.Column{EvaluationStatsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, { Symbol: "build_graph_metrics_evaluation_stats_changed_values", Columns: []*schema.Column{BuildGraphMetricsColumns[11]}, RefColumns: []*schema.Column{EvaluationStatsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, { Symbol: "build_graph_metrics_evaluation_stats_built_values", Columns: []*schema.Column{BuildGraphMetricsColumns[12]}, RefColumns: []*schema.Column{EvaluationStatsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, { Symbol: "build_graph_metrics_evaluation_stats_cleaned_values", Columns: []*schema.Column{BuildGraphMetricsColumns[13]}, RefColumns: []*schema.Column{EvaluationStatsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, { Symbol: "build_graph_metrics_metrics_build_graph_metrics", Columns: []*schema.Column{BuildGraphMetricsColumns[14]}, RefColumns: []*schema.Column{MetricsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -304,7 +304,7 @@ var ( Symbol: "cumulative_metrics_metrics_cumulative_metrics", Columns: []*schema.Column{CumulativeMetricsColumns[3]}, RefColumns: []*schema.Column{MetricsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -323,7 +323,7 @@ var ( Symbol: "dynamic_execution_metrics_metrics_dynamic_execution_metrics", Columns: []*schema.Column{DynamicExecutionMetricsColumns[1]}, RefColumns: []*schema.Column{MetricsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -344,7 +344,7 @@ var ( Symbol: "evaluation_stats_build_graph_metrics_evaluated_values", Columns: []*schema.Column{EvaluationStatsColumns[3]}, RefColumns: []*schema.Column{BuildGraphMetricsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -391,7 +391,7 @@ var ( Symbol: "exection_infos_test_result_be_ss_execution_info", Columns: []*schema.Column{ExectionInfosColumns[6]}, RefColumns: []*schema.Column{TestResultBeSsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -412,7 +412,7 @@ var ( Symbol: "files_metrics_artifact_metrics_top_level_artifacts", Columns: []*schema.Column{FilesMetricsColumns[3]}, RefColumns: []*schema.Column{ArtifactMetricsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -433,7 +433,7 @@ var ( Symbol: "garbage_metrics_memory_metrics_garbage_metrics", Columns: []*schema.Column{GarbageMetricsColumns[3]}, RefColumns: []*schema.Column{MemoryMetricsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -455,7 +455,7 @@ var ( Symbol: "memory_metrics_metrics_memory_metrics", Columns: []*schema.Column{MemoryMetricsColumns[4]}, RefColumns: []*schema.Column{MetricsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -474,7 +474,7 @@ var ( Symbol: "metrics_bazel_invocations_metrics", Columns: []*schema.Column{MetricsColumns[1]}, RefColumns: []*schema.Column{BazelInvocationsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -495,7 +495,7 @@ var ( Symbol: "miss_details_action_cache_statistics_miss_details", Columns: []*schema.Column{MissDetailsColumns[3]}, RefColumns: []*schema.Column{ActionCacheStatisticsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -515,13 +515,13 @@ var ( Symbol: "named_set_of_files_named_set_of_files_file_sets", Columns: []*schema.Column{NamedSetOfFilesColumns[1]}, RefColumns: []*schema.Column{NamedSetOfFilesColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, { Symbol: "named_set_of_files_output_groups_file_sets", Columns: []*schema.Column{NamedSetOfFilesColumns[2]}, RefColumns: []*schema.Column{OutputGroupsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -540,7 +540,7 @@ var ( Symbol: "network_metrics_metrics_network_metrics", Columns: []*schema.Column{NetworkMetricsColumns[1]}, RefColumns: []*schema.Column{MetricsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -561,7 +561,7 @@ var ( Symbol: "output_groups_target_completes_output_group", Columns: []*schema.Column{OutputGroupsColumns[3]}, RefColumns: []*schema.Column{TargetCompletesColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -586,7 +586,7 @@ var ( Symbol: "package_load_metrics_package_metrics_package_load_metrics", Columns: []*schema.Column{PackageLoadMetricsColumns[7]}, RefColumns: []*schema.Column{PackageMetricsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -606,7 +606,7 @@ var ( Symbol: "package_metrics_metrics_package_metrics", Columns: []*schema.Column{PackageMetricsColumns[2]}, RefColumns: []*schema.Column{MetricsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -630,7 +630,7 @@ var ( Symbol: "race_statistics_dynamic_execution_metrics_race_statistics", Columns: []*schema.Column{RaceStatisticsColumns[6]}, RefColumns: []*schema.Column{DynamicExecutionMetricsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -651,7 +651,7 @@ var ( Symbol: "resource_usages_exection_infos_resource_usage", Columns: []*schema.Column{ResourceUsagesColumns[3]}, RefColumns: []*schema.Column{ExectionInfosColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -673,7 +673,7 @@ var ( Symbol: "runner_counts_action_summaries_runner_count", Columns: []*schema.Column{RunnerCountsColumns[4]}, RefColumns: []*schema.Column{ActionSummariesColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -706,7 +706,7 @@ var ( Symbol: "source_controls_bazel_invocations_source_control", Columns: []*schema.Column{SourceControlsColumns[15]}, RefColumns: []*schema.Column{BazelInvocationsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -733,7 +733,7 @@ var ( Symbol: "system_network_stats_network_metrics_system_network_stats", Columns: []*schema.Column{SystemNetworkStatsColumns[9]}, RefColumns: []*schema.Column{NetworkMetricsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -759,7 +759,7 @@ var ( Symbol: "target_completes_target_pairs_completion", Columns: []*schema.Column{TargetCompletesColumns[8]}, RefColumns: []*schema.Column{TargetPairsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -782,7 +782,7 @@ var ( Symbol: "target_configureds_target_pairs_configuration", Columns: []*schema.Column{TargetConfiguredsColumns[5]}, RefColumns: []*schema.Column{TargetPairsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -804,7 +804,7 @@ var ( Symbol: "target_metrics_metrics_target_metrics", Columns: []*schema.Column{TargetMetricsColumns[4]}, RefColumns: []*schema.Column{MetricsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -829,7 +829,14 @@ var ( Symbol: "target_pairs_bazel_invocations_targets", Columns: []*schema.Column{TargetPairsColumns[7]}, RefColumns: []*schema.Column{BazelInvocationsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, + }, + }, + Indexes: []*schema.Index{ + { + Name: "targetpair_label", + Unique: false, + Columns: []*schema.Column{TargetPairsColumns[1]}, }, }, } @@ -855,7 +862,14 @@ var ( Symbol: "test_collections_bazel_invocations_test_collection", Columns: []*schema.Column{TestCollectionsColumns[8]}, RefColumns: []*schema.Column{BazelInvocationsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, + }, + }, + Indexes: []*schema.Index{ + { + Name: "testcollection_label", + Unique: false, + Columns: []*schema.Column{TestCollectionsColumns[1]}, }, }, } @@ -885,43 +899,43 @@ var ( Symbol: "test_files_named_set_of_files_files", Columns: []*schema.Column{TestFilesColumns[6]}, RefColumns: []*schema.Column{NamedSetOfFilesColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, { Symbol: "test_files_output_groups_inline_files", Columns: []*schema.Column{TestFilesColumns[7]}, RefColumns: []*schema.Column{OutputGroupsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, { Symbol: "test_files_target_completes_important_output", Columns: []*schema.Column{TestFilesColumns[8]}, RefColumns: []*schema.Column{TargetCompletesColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, { Symbol: "test_files_target_completes_directory_output", Columns: []*schema.Column{TestFilesColumns[9]}, RefColumns: []*schema.Column{TargetCompletesColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, { Symbol: "test_files_test_result_be_ss_test_action_output", Columns: []*schema.Column{TestFilesColumns[10]}, RefColumns: []*schema.Column{TestResultBeSsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, { Symbol: "test_files_test_summaries_passed", Columns: []*schema.Column{TestFilesColumns[11]}, RefColumns: []*schema.Column{TestSummariesColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, { Symbol: "test_files_test_summaries_failed", Columns: []*schema.Column{TestFilesColumns[12]}, RefColumns: []*schema.Column{TestSummariesColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -949,7 +963,7 @@ var ( Symbol: "test_result_be_ss_test_collections_test_results", Columns: []*schema.Column{TestResultBeSsColumns[10]}, RefColumns: []*schema.Column{TestCollectionsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -978,7 +992,7 @@ var ( Symbol: "test_summaries_test_collections_test_summary", Columns: []*schema.Column{TestSummariesColumns[11]}, RefColumns: []*schema.Column{TestCollectionsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -999,7 +1013,7 @@ var ( Symbol: "timing_breakdowns_exection_infos_timing_breakdown", Columns: []*schema.Column{TimingBreakdownsColumns[3]}, RefColumns: []*schema.Column{ExectionInfosColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -1020,7 +1034,7 @@ var ( Symbol: "timing_childs_timing_breakdowns_child", Columns: []*schema.Column{TimingChildsColumns[3]}, RefColumns: []*schema.Column{TimingBreakdownsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } @@ -1044,7 +1058,7 @@ var ( Symbol: "timing_metrics_metrics_timing_metrics", Columns: []*schema.Column{TimingMetricsColumns[6]}, RefColumns: []*schema.Column{MetricsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, }, } diff --git a/ent/schema/BUILD.bazel b/ent/schema/BUILD.bazel index 28bd3af2..34de5a99 100644 --- a/ent/schema/BUILD.bazel +++ b/ent/schema/BUILD.bazel @@ -51,6 +51,7 @@ go_library( "@com_github_google_uuid//:uuid", "@io_entgo_contrib//entgql", "@io_entgo_ent//:ent", + "@io_entgo_ent//dialect/entsql", "@io_entgo_ent//schema", "@io_entgo_ent//schema/edge", "@io_entgo_ent//schema/field", diff --git a/ent/schema/actioncachestatistics.go b/ent/schema/actioncachestatistics.go index f0949b74..a05c9304 100644 --- a/ent/schema/actioncachestatistics.go +++ b/ent/schema/actioncachestatistics.go @@ -2,6 +2,7 @@ package schema import ( "entgo.io/ent" + "entgo.io/ent/dialect/entsql" "entgo.io/ent/schema/edge" "entgo.io/ent/schema/field" ) @@ -42,6 +43,9 @@ func (ActionCacheStatistics) Edges() []ent.Edge { Unique(), // Breakdown of the cache misses based on the reasons behind them. - edge.To("miss_details", MissDetail.Type), + edge.To("miss_details", MissDetail.Type). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), } } diff --git a/ent/schema/actionsummary.go b/ent/schema/actionsummary.go index 7a39fd6e..6036bae8 100644 --- a/ent/schema/actionsummary.go +++ b/ent/schema/actionsummary.go @@ -2,6 +2,7 @@ package schema import ( "entgo.io/ent" + "entgo.io/ent/dialect/entsql" "entgo.io/ent/schema/edge" "entgo.io/ent/schema/field" ) @@ -46,13 +47,22 @@ func (ActionSummary) Edges() []ent.Edge { Unique(), // Contains the top N actions by number of actions executed. - edge.To("action_data", ActionData.Type), + edge.To("action_data", ActionData.Type). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // Count of which Runner types were executed which actions. - edge.To("runner_count", RunnerCount.Type), + edge.To("runner_count", RunnerCount.Type). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // Information about the action cache behavior during a single invocation. edge.To("action_cache_statistics", ActionCacheStatistics.Type). - Unique(), + Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), } } diff --git a/ent/schema/artifactmetrics.go b/ent/schema/artifactmetrics.go index e031e690..27dbc6f5 100644 --- a/ent/schema/artifactmetrics.go +++ b/ent/schema/artifactmetrics.go @@ -2,6 +2,7 @@ package schema import ( "entgo.io/ent" + "entgo.io/ent/dialect/entsql" "entgo.io/ent/schema/edge" ) @@ -26,25 +27,37 @@ func (ArtifactMetrics) Edges() []ent.Edge { // Measures all source files newly read this build. Does not include // unchanged sources on incremental builds. edge.To("source_artifacts_read", FilesMetric.Type). - Unique(), + Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // Measures all output artifacts from executed actions. This includes // actions that were cached locally (via the action cache) or remotely (via // a remote cache or executor), but does *not* include outputs of actions // that were cached internally in Skyframe. edge.To("output_artifacts_seen", FilesMetric.Type). - Unique(), + Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // Measures all output artifacts from actions that were cached locally // via the action cache. These artifacts were already present on disk at the // start of the build. Does not include Skyframe-cached actions' outputs. edge.To("output_artifacts_from_action_cache", FilesMetric.Type). - Unique(), + Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // Measures all artifacts that belong to a top-level output group. Does not // deduplicate, so if there are two top-level targets in this build that // share an artifact, it will be counted twice. edge.To("top_level_artifacts", FilesMetric.Type). - Unique(), + Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), } } diff --git a/ent/schema/bazelinvocation.go b/ent/schema/bazelinvocation.go index 96f28948..ad327b5e 100644 --- a/ent/schema/bazelinvocation.go +++ b/ent/schema/bazelinvocation.go @@ -3,6 +3,7 @@ package schema import ( "entgo.io/contrib/entgql" "entgo.io/ent" + "entgo.io/ent/dialect/entsql" "entgo.io/ent/schema" "entgo.io/ent/schema/edge" "entgo.io/ent/schema/field" @@ -99,21 +100,36 @@ func (BazelInvocation) Edges() []ent.Edge { // Edge to any probles detected. // NOTE: Uses custom resolver / types. edge.To("problems", BazelInvocationProblem.Type). - Annotations(entgql.Skip(entgql.SkipType)), + Annotations( + entgql.Skip(entgql.SkipType), + entsql.OnDelete(entsql.Cascade), + ), // Build Metrics for the Completed Invocation edge.To("metrics", Metrics.Type). + Annotations( + entsql.OnDelete(entsql.Cascade), + ). Unique(), // Test Data for the completed Invocation - edge.To("test_collection", TestCollection.Type), + edge.To("test_collection", TestCollection.Type). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // Target Data for the completed Invocation - edge.To("targets", TargetPair.Type), + edge.To("targets", TargetPair.Type). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // Edge to source control information edge.To("source_control", SourceControl.Type). - Unique(), + Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), } } diff --git a/ent/schema/build.go b/ent/schema/build.go index e17d5fcc..5580e28a 100644 --- a/ent/schema/build.go +++ b/ent/schema/build.go @@ -3,6 +3,7 @@ package schema import ( "entgo.io/contrib/entgql" "entgo.io/ent" + "entgo.io/ent/dialect/entsql" "entgo.io/ent/schema" "entgo.io/ent/schema/edge" "entgo.io/ent/schema/field" @@ -28,7 +29,10 @@ func (Build) Fields() []ent.Field { // Edges of the Build. func (Build) Edges() []ent.Edge { return []ent.Edge{ - edge.To("invocations", BazelInvocation.Type), + edge.To("invocations", BazelInvocation.Type). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), } } diff --git a/ent/schema/buildgraphmetrics.go b/ent/schema/buildgraphmetrics.go index 1695e23f..428d1005 100644 --- a/ent/schema/buildgraphmetrics.go +++ b/ent/schema/buildgraphmetrics.go @@ -2,6 +2,7 @@ package schema import ( "entgo.io/ent" + "entgo.io/ent/dialect/entsql" "entgo.io/ent/schema/edge" "entgo.io/ent/schema/field" ) @@ -84,25 +85,37 @@ func (BuildGraphMetrics) Edges() []ent.Edge { // those that transitively depend on a node that changed by itself (e.g. one // representing a file in the file system) edge.To("dirtied_values", EvaluationStat.Type). - Unique(), + Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // Changed Values. // Number of SkyValues that changed by themselves. For example, when a file // on the file system changes, the SkyValue representing it will change. edge.To("changed_values", EvaluationStat.Type). - Unique(), + Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // Built Values. // Number of SkyValues that were built. This means that they were evaluated // and were found to have changed from their previous version. edge.To("built_values", EvaluationStat.Type). - Unique(), + Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // Cleaned Values. // Number of SkyValues that were evaluated and found clean, i.e. equal to // their previous version. edge.To("cleaned_values", EvaluationStat.Type). - Unique(), + Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // Evaluated Values. // Number of evaluations to build SkyValues. This includes restarted @@ -110,6 +123,9 @@ func (BuildGraphMetrics) Edges() []ent.Edge { // SkyValue. Subtract built_values from this number to get the number of // restarted evaluations. edge.To("evaluated_values", EvaluationStat.Type). - Unique(), + Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), } } diff --git a/ent/schema/dynamicexecutionmetrics.go b/ent/schema/dynamicexecutionmetrics.go index cc39433e..180c1435 100644 --- a/ent/schema/dynamicexecutionmetrics.go +++ b/ent/schema/dynamicexecutionmetrics.go @@ -2,6 +2,7 @@ package schema import ( "entgo.io/ent" + "entgo.io/ent/dialect/entsql" "entgo.io/ent/schema/edge" ) @@ -24,6 +25,9 @@ func (DynamicExecutionMetrics) Edges() []ent.Edge { Unique(), // Race statistics grouped by mnemonic, local_name, remote_name. - edge.To("race_statistics", RaceStatistics.Type), + edge.To("race_statistics", RaceStatistics.Type). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), } } diff --git a/ent/schema/executioninfo.go b/ent/schema/executioninfo.go index ab68e677..adc83ca6 100644 --- a/ent/schema/executioninfo.go +++ b/ent/schema/executioninfo.go @@ -2,6 +2,7 @@ package schema import ( "entgo.io/ent" + "entgo.io/ent/dialect/entsql" "entgo.io/ent/schema/edge" "entgo.io/ent/schema/field" ) @@ -44,9 +45,15 @@ func (ExectionInfo) Edges() []ent.Edge { // Represents a hierarchical timing breakdown of an activity. // The top level time should be the total time of the activity. // Invariant: `time` >= sum of `time`s of all direct children. - edge.To("timing_breakdown", TimingBreakdown.Type).Unique(), + edge.To("timing_breakdown", TimingBreakdown.Type).Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // resource usage info - edge.To("resource_usage", ResourceUsage.Type), + edge.To("resource_usage", ResourceUsage.Type). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), } } diff --git a/ent/schema/memorymetrics.go b/ent/schema/memorymetrics.go index 6c26b4f1..24a77ea0 100644 --- a/ent/schema/memorymetrics.go +++ b/ent/schema/memorymetrics.go @@ -2,6 +2,7 @@ package schema import ( "entgo.io/ent" + "entgo.io/ent/dialect/entsql" "entgo.io/ent/schema/edge" "entgo.io/ent/schema/field" ) @@ -37,6 +38,9 @@ func (MemoryMetrics) Edges() []ent.Edge { Unique(), // Metrics about garbage collection - edge.To("garbage_metrics", GarbageMetrics.Type), + edge.To("garbage_metrics", GarbageMetrics.Type). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), } } diff --git a/ent/schema/metrics.go b/ent/schema/metrics.go index 88c4ae58..f10e2077 100644 --- a/ent/schema/metrics.go +++ b/ent/schema/metrics.go @@ -3,6 +3,7 @@ package schema import ( "entgo.io/contrib/entgql" "entgo.io/ent" + "entgo.io/ent/dialect/entsql" "entgo.io/ent/schema" "entgo.io/ent/schema/edge" ) @@ -27,43 +28,73 @@ func (Metrics) Edges() []ent.Edge { // The action summmary with details about actions executed. edge.To("action_summary", ActionSummary.Type). - Unique(), + Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // Details about memory usage and garbage collections. edge.To("memory_metrics", MemoryMetrics.Type). - Unique(), + Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // Target metrics. edge.To("target_metrics", TargetMetrics.Type). - Unique(), + Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // Package metrics. edge.To("package_metrics", PackageMetrics.Type). - Unique(), + Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // Timing metrics. edge.To("timing_metrics", TimingMetrics.Type). - Unique(), + Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // Cumulative metrics. edge.To("cumulative_metrics", CumulativeMetrics.Type). - Unique(), + Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // Artifact metrics. edge.To("artifact_metrics", ArtifactMetrics.Type). - Unique(), + Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // Network metrics if available. edge.To("network_metrics", NetworkMetrics.Type). - Unique(), + Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // Dynamic execution metrics if available. edge.To("dynamic_execution_metrics", DynamicExecutionMetrics.Type). - Unique(), + Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // Build graph metrics. edge.To("build_graph_metrics", BuildGraphMetrics.Type). - Unique(), + Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), } } diff --git a/ent/schema/namedsetoffiles.go b/ent/schema/namedsetoffiles.go index ed56933a..46880f0c 100644 --- a/ent/schema/namedsetoffiles.go +++ b/ent/schema/namedsetoffiles.go @@ -2,6 +2,7 @@ package schema import ( "entgo.io/ent" + "entgo.io/ent/dialect/entsql" "entgo.io/ent/schema/edge" ) @@ -24,10 +25,16 @@ func (NamedSetOfFiles) Edges() []ent.Edge { Unique(), // Files that belong to this named set of files. - edge.To("files", TestFile.Type), + edge.To("files", TestFile.Type). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // Other named sets whose members also belong to this set. - edge.To("file_sets", NamedSetOfFiles.Type).Unique(), + edge.To("file_sets", NamedSetOfFiles.Type).Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), } } diff --git a/ent/schema/networkmetrics.go b/ent/schema/networkmetrics.go index 16efaa08..052aecc4 100644 --- a/ent/schema/networkmetrics.go +++ b/ent/schema/networkmetrics.go @@ -2,6 +2,7 @@ package schema import ( "entgo.io/ent" + "entgo.io/ent/dialect/entsql" "entgo.io/ent/schema/edge" ) @@ -25,6 +26,9 @@ func (NetworkMetrics) Edges() []ent.Edge { // Information about host network. edge.To("system_network_stats", SystemNetworkStats.Type). - Unique(), + Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), } } diff --git a/ent/schema/outputgroup.go b/ent/schema/outputgroup.go index 626eab8d..b8e1b3f7 100644 --- a/ent/schema/outputgroup.go +++ b/ent/schema/outputgroup.go @@ -2,6 +2,7 @@ package schema import ( "entgo.io/ent" + "entgo.io/ent/dialect/entsql" "entgo.io/ent/schema/edge" "entgo.io/ent/schema/field" ) @@ -35,9 +36,15 @@ func (OutputGroup) Edges() []ent.Edge { // Inline Files. // Inlined files that belong to this output group, requested via // --build_event_inline_output_groups. - edge.To("inline_files", TestFile.Type), + edge.To("inline_files", TestFile.Type). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // List of file sets that belong to this output group as well. - edge.To("file_sets", NamedSetOfFiles.Type).Unique(), + edge.To("file_sets", NamedSetOfFiles.Type).Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), } } diff --git a/ent/schema/packagemetrics.go b/ent/schema/packagemetrics.go index 6b2488b7..a0750c91 100644 --- a/ent/schema/packagemetrics.go +++ b/ent/schema/packagemetrics.go @@ -2,6 +2,7 @@ package schema import ( "entgo.io/ent" + "entgo.io/ent/dialect/entsql" "entgo.io/ent/schema/edge" "entgo.io/ent/schema/field" ) @@ -41,6 +42,9 @@ func (PackageMetrics) Edges() []ent.Edge { Unique(), // Loading time metrics per package. - edge.To("package_load_metrics", PackageLoadMetrics.Type), + edge.To("package_load_metrics", PackageLoadMetrics.Type). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), } } diff --git a/ent/schema/targetcomplete.go b/ent/schema/targetcomplete.go index 45e65da4..b1b2b41e 100644 --- a/ent/schema/targetcomplete.go +++ b/ent/schema/targetcomplete.go @@ -2,6 +2,7 @@ package schema import ( "entgo.io/ent" + "entgo.io/ent/dialect/entsql" "entgo.io/ent/schema/edge" "entgo.io/ent/schema/field" ) @@ -61,16 +62,25 @@ func (TargetComplete) Edges() []ent.Edge { // Temporarily, also report the important outputs directly. // This is only to allow existing clients help transition to the deduplicated representation; // new clients should not use it. - edge.To("important_output", TestFile.Type), + edge.To("important_output", TestFile.Type). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // Report output artifacts (referenced transitively via output_group) which // emit directories instead of singleton files. These directory_output entries // will never include a uri. - edge.To("directory_output", TestFile.Type), + edge.To("directory_output", TestFile.Type). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // The output files are arranged by their output group. If an output file // is part of multiple output groups, it appears once in each output // group. - edge.To("output_group", OutputGroup.Type).Unique(), + edge.To("output_group", OutputGroup.Type).Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), } } diff --git a/ent/schema/targetpair.go b/ent/schema/targetpair.go index 730620a1..1f607c61 100644 --- a/ent/schema/targetpair.go +++ b/ent/schema/targetpair.go @@ -3,6 +3,7 @@ package schema import ( "entgo.io/contrib/entgql" "entgo.io/ent" + "entgo.io/ent/dialect/entsql" "entgo.io/ent/schema" "entgo.io/ent/schema/edge" "entgo.io/ent/schema/field" @@ -74,11 +75,17 @@ func (TargetPair) Edges() []ent.Edge { // Edge to the target configuration object. edge.To("configuration", TargetConfigured.Type). - Unique(), + Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // Edge to the target completed object. edge.To("completion", TargetComplete.Type). - Unique(), + Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), } } diff --git a/ent/schema/testcollection.go b/ent/schema/testcollection.go index 29d6f451..c6e988df 100644 --- a/ent/schema/testcollection.go +++ b/ent/schema/testcollection.go @@ -3,6 +3,7 @@ package schema import ( "entgo.io/contrib/entgql" "entgo.io/ent" + "entgo.io/ent/dialect/entsql" "entgo.io/ent/schema" "entgo.io/ent/schema/edge" "entgo.io/ent/schema/field" @@ -67,10 +68,16 @@ func (TestCollection) Edges() []ent.Edge { Ref("test_collection").Unique(), // The test summary aossicated with the test. - edge.To("test_summary", TestSummary.Type).Unique(), + edge.To("test_summary", TestSummary.Type).Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // A collection of test results associated with this collection - edge.To("test_results", TestResultBES.Type), + edge.To("test_results", TestResultBES.Type). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), } } diff --git a/ent/schema/testresult.go b/ent/schema/testresult.go index 9c1f0fba..0e06c8bc 100644 --- a/ent/schema/testresult.go +++ b/ent/schema/testresult.go @@ -2,6 +2,7 @@ package schema import ( "entgo.io/ent" + "entgo.io/ent/dialect/entsql" "entgo.io/ent/schema/edge" "entgo.io/ent/schema/field" ) @@ -76,11 +77,17 @@ func (TestResultBES) Edges() []ent.Edge { Unique(), // Files (logs, test.xml, undeclared outputs, etc) generated by that test action. - edge.To("test_action_output", TestFile.Type), + edge.To("test_action_output", TestFile.Type). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // Message providing optional meta data on the execution of the test action, // if available. edge.To("execution_info", ExectionInfo.Type). - Unique(), + Unique(). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), } } diff --git a/ent/schema/testsummary.go b/ent/schema/testsummary.go index c7d6040d..fedc1c14 100644 --- a/ent/schema/testsummary.go +++ b/ent/schema/testsummary.go @@ -2,6 +2,7 @@ package schema import ( "entgo.io/ent" + "entgo.io/ent/dialect/entsql" "entgo.io/ent/schema/edge" "entgo.io/ent/schema/field" ) @@ -70,9 +71,15 @@ func (TestSummary) Edges() []ent.Edge { Unique(), // Path to logs of passed runs. - edge.To("passed", TestFile.Type), + edge.To("passed", TestFile.Type). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), // Path to logs of failed runs; - edge.To("failed", TestFile.Type), + edge.To("failed", TestFile.Type). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), } } diff --git a/ent/schema/timingbreakdown.go b/ent/schema/timingbreakdown.go index 7f602fcf..4a79e170 100644 --- a/ent/schema/timingbreakdown.go +++ b/ent/schema/timingbreakdown.go @@ -2,6 +2,7 @@ package schema import ( "entgo.io/ent" + "entgo.io/ent/dialect/entsql" "entgo.io/ent/schema/edge" "entgo.io/ent/schema/field" ) @@ -34,6 +35,9 @@ func (TimingBreakdown) Edges() []ent.Edge { // Timing children (this could probably be better reempleted as a node to itself. // except the relationship to the executio info object. maybe we don't care about that? // for now, an intermediate 'parent' object is used) - edge.To("child", TimingChild.Type), + edge.To("child", TimingChild.Type). + Annotations( + entsql.OnDelete(entsql.Cascade), + ), } } diff --git a/frontend/src/graphql/__generated__/graphql.ts b/frontend/src/graphql/__generated__/graphql.ts index f5a7a751..1f8d3390 100644 --- a/frontend/src/graphql/__generated__/graphql.ts +++ b/frontend/src/graphql/__generated__/graphql.ts @@ -1198,6 +1198,13 @@ export type CumulativeMetricsWhereInput = { or?: InputMaybe>; }; +export type DeleteResult = { + __typename?: 'DeleteResult'; + deleted: Scalars['Int']['output']; + found: Scalars['Int']['output']; + successful: Scalars['Boolean']['output']; +}; + export type DynamicExecutionMetrics = Node & { __typename?: 'DynamicExecutionMetrics'; id: Scalars['ID']['output']; @@ -1840,6 +1847,34 @@ export type MissDetailWhereInput = { reasonNotNil?: InputMaybe; }; +export type Mutation = { + __typename?: 'Mutation'; + deleteBuild: Scalars['Boolean']['output']; + deleteBuildsBefore: DeleteResult; + deleteInvocation: Scalars['Boolean']['output']; + deleteInvocationsBefore: DeleteResult; +}; + + +export type MutationDeleteBuildArgs = { + buildUUID: Scalars['UUID']['input']; +}; + + +export type MutationDeleteBuildsBeforeArgs = { + time: Scalars['Time']['input']; +}; + + +export type MutationDeleteInvocationArgs = { + invocationId: Scalars['UUID']['input']; +}; + + +export type MutationDeleteInvocationsBeforeArgs = { + time: Scalars['Time']['input']; +}; + export type NamedFile = { __typename?: 'NamedFile'; name: Scalars['String']['output']; diff --git a/internal/graphql/custom.resolvers.go b/internal/graphql/custom.resolvers.go index b2dc64c5..e232c315 100644 --- a/internal/graphql/custom.resolvers.go +++ b/internal/graphql/custom.resolvers.go @@ -12,6 +12,7 @@ import ( "slices" "strconv" "strings" + "time" "github.com/buildbarn/bb-portal/ent/gen/ent" "github.com/buildbarn/bb-portal/ent/gen/ent/bazelinvocation" @@ -206,6 +207,80 @@ func (r *buildResolver) Env(ctx context.Context, obj *ent.Build) ([]*model.EnvVa return envVars, nil } +// DeleteInvocation is the resolver for the deleteInvocation field. +func (r *mutationResolver) DeleteInvocation(ctx context.Context, invocationID uuid.UUID) (bool, error) { + invocation, err := r.client.BazelInvocation.Query().Where(bazelinvocation.InvocationID(invocationID)).First(ctx) + if err != nil { + return false, fmt.Errorf("could not find invocation: %w", err) + } + + // Delete the invocation + err = r.client.BazelInvocation.DeleteOne(invocation).Exec(ctx) + if err != nil { + return false, fmt.Errorf("could not delete invocation with: %w", err) + } + return true, nil +} + +// DeleteBuild is the resolver for the deleteBuild field. +func (r *mutationResolver) DeleteBuild(ctx context.Context, buildUUID uuid.UUID) (bool, error) { + build, err := r.client.Build.Query().Where(build.BuildUUID(buildUUID)).First(ctx) + if err != nil { + return false, fmt.Errorf("could not find build: %w", err) + } + for _, invocations := range build.Edges.Invocations { + err = r.client.BazelInvocation.DeleteOne(invocations).Exec(ctx) + if err != nil { + return false, fmt.Errorf("could not delete build: %w", err) + } + } + err = r.client.Build.DeleteOne(build).Exec(ctx) + if err != nil { + return false, fmt.Errorf("could not delete build with: %w", err) + } + return true, nil +} + +// DeleteInvocationsBefore is the resolver for the deleteInvocationsBefore field. +func (r *mutationResolver) DeleteInvocationsBefore(ctx context.Context, time time.Time) (*model.DeleteResult, error) { + // find invocaations before time + result := &model.DeleteResult{Deleted: 0, Successful: false} + invocations, err := r.client.BazelInvocation.Query().Where(bazelinvocation.EndedAtLT(time)).All(ctx) + if err != nil { + return result, fmt.Errorf("could not find invocations: %w", err) + } + result.Found = len(invocations) + for _, invocation := range invocations { + err = r.client.BazelInvocation.DeleteOne(invocation).Exec(ctx) + if err != nil { + return result, fmt.Errorf("could not delete invocations: %w", err) + } + result.Deleted++ + } + result.Successful = true + return result, nil +} + +// DeleteBuildsBefore is the resolver for the deleteBuildsBefore field. +func (r *mutationResolver) DeleteBuildsBefore(ctx context.Context, time time.Time) (*model.DeleteResult, error) { + // find builds before time + result := &model.DeleteResult{Deleted: 0, Successful: false} + builds, err := r.client.Build.Query().Where(build.TimestampLT(time)).All(ctx) + if err != nil { + return result, fmt.Errorf("could not find builds: %w", err) + } + result.Found = len(builds) + for _, build := range builds { + err = r.client.Build.DeleteOne(build).Exec(ctx) + if err != nil { + return result, fmt.Errorf("could not delete build with: %w", err) + } + result.Deleted++ + } + result.Successful = true + return result, nil +} + // BazelInvocation is the resolver for the bazelInvocation field. func (r *queryResolver) BazelInvocation(ctx context.Context, invocationID string) (*ent.BazelInvocation, error) { invocationUUID, err := uuid.Parse(invocationID) @@ -433,11 +508,15 @@ func (r *Resolver) ActionProblem() ActionProblemResolver { return &actionProblem // BlobReference returns BlobReferenceResolver implementation. func (r *Resolver) BlobReference() BlobReferenceResolver { return &blobReferenceResolver{r} } +// Mutation returns MutationResolver implementation. +func (r *Resolver) Mutation() MutationResolver { return &mutationResolver{r} } + // TestResult returns TestResultResolver implementation. func (r *Resolver) TestResult() TestResultResolver { return &testResultResolver{r} } type ( actionProblemResolver struct{ *Resolver } blobReferenceResolver struct{ *Resolver } + mutationResolver struct{ *Resolver } testResultResolver struct{ *Resolver } ) diff --git a/internal/graphql/model/models_gen.go b/internal/graphql/model/models_gen.go index 2ecce3df..0b26b82f 100644 --- a/internal/graphql/model/models_gen.go +++ b/internal/graphql/model/models_gen.go @@ -74,6 +74,12 @@ type BlobReference struct { Blob *ent.Blob `json:"-"` } +type DeleteResult struct { + Deleted int `json:"deleted"` + Found int `json:"found"` + Successful bool `json:"successful"` +} + type EnvVar struct { Key string `json:"key"` Value string `json:"value"` diff --git a/internal/graphql/schema/custom.graphql b/internal/graphql/schema/custom.graphql index 8ba4e9a3..5e56de5a 100644 --- a/internal/graphql/schema/custom.graphql +++ b/internal/graphql/schema/custom.graphql @@ -24,6 +24,19 @@ extend type Query { getAveragePassPercentageForLabel(label: String!): Float } +extend type Mutation { + deleteInvocation(invocationId: UUID!): Boolean! + deleteBuild(buildUUID: UUID!): Boolean! + deleteInvocationsBefore(time: Time!): DeleteResult! + deleteBuildsBefore(time: Time!): DeleteResult! +} + +type DeleteResult { + deleted: Int! + found: Int! + successful: Boolean! +} + type TargetAggregate { label: String count: Int diff --git a/internal/graphql/server_gen.go b/internal/graphql/server_gen.go index a1a54520..b9be1db2 100644 --- a/internal/graphql/server_gen.go +++ b/internal/graphql/server_gen.go @@ -73,6 +73,7 @@ type ResolverRoot interface { MemoryMetrics() MemoryMetricsResolver Metrics() MetricsResolver MissDetail() MissDetailResolver + Mutation() MutationResolver NamedSetOfFiles() NamedSetOfFilesResolver NetworkMetrics() NetworkMetricsResolver OutputGroup() OutputGroupResolver @@ -326,6 +327,12 @@ type ComplexityRoot struct { NumBuilds func(childComplexity int) int } + DeleteResult struct { + Deleted func(childComplexity int) int + Found func(childComplexity int) int + Successful func(childComplexity int) int + } + DynamicExecutionMetrics struct { ID func(childComplexity int) int Metrics func(childComplexity int) int @@ -429,6 +436,13 @@ type ComplexityRoot struct { Reason func(childComplexity int) int } + Mutation struct { + DeleteBuild func(childComplexity int, buildUUID uuid.UUID) int + DeleteBuildsBefore func(childComplexity int, time time.Time) int + DeleteInvocation func(childComplexity int, invocationID uuid.UUID) int + DeleteInvocationsBefore func(childComplexity int, time time.Time) int + } + NamedFile struct { Name func(childComplexity int) int URL func(childComplexity int) int @@ -891,6 +905,12 @@ type MetricsResolver interface { type MissDetailResolver interface { ID(ctx context.Context, obj *ent.MissDetail) (string, error) } +type MutationResolver interface { + DeleteInvocation(ctx context.Context, invocationID uuid.UUID) (bool, error) + DeleteBuild(ctx context.Context, buildUUID uuid.UUID) (bool, error) + DeleteInvocationsBefore(ctx context.Context, time time.Time) (*model.DeleteResult, error) + DeleteBuildsBefore(ctx context.Context, time time.Time) (*model.DeleteResult, error) +} type NamedSetOfFilesResolver interface { ID(ctx context.Context, obj *ent.NamedSetOfFiles) (string, error) } @@ -2310,6 +2330,27 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return e.complexity.CumulativeMetrics.NumBuilds(childComplexity), true + case "DeleteResult.deleted": + if e.complexity.DeleteResult.Deleted == nil { + break + } + + return e.complexity.DeleteResult.Deleted(childComplexity), true + + case "DeleteResult.found": + if e.complexity.DeleteResult.Found == nil { + break + } + + return e.complexity.DeleteResult.Found(childComplexity), true + + case "DeleteResult.successful": + if e.complexity.DeleteResult.Successful == nil { + break + } + + return e.complexity.DeleteResult.Successful(childComplexity), true + case "DynamicExecutionMetrics.id": if e.complexity.DynamicExecutionMetrics.ID == nil { break @@ -2758,6 +2799,54 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return e.complexity.MissDetail.Reason(childComplexity), true + case "Mutation.deleteBuild": + if e.complexity.Mutation.DeleteBuild == nil { + break + } + + args, err := ec.field_Mutation_deleteBuild_args(context.TODO(), rawArgs) + if err != nil { + return 0, false + } + + return e.complexity.Mutation.DeleteBuild(childComplexity, args["buildUUID"].(uuid.UUID)), true + + case "Mutation.deleteBuildsBefore": + if e.complexity.Mutation.DeleteBuildsBefore == nil { + break + } + + args, err := ec.field_Mutation_deleteBuildsBefore_args(context.TODO(), rawArgs) + if err != nil { + return 0, false + } + + return e.complexity.Mutation.DeleteBuildsBefore(childComplexity, args["time"].(time.Time)), true + + case "Mutation.deleteInvocation": + if e.complexity.Mutation.DeleteInvocation == nil { + break + } + + args, err := ec.field_Mutation_deleteInvocation_args(context.TODO(), rawArgs) + if err != nil { + return 0, false + } + + return e.complexity.Mutation.DeleteInvocation(childComplexity, args["invocationId"].(uuid.UUID)), true + + case "Mutation.deleteInvocationsBefore": + if e.complexity.Mutation.DeleteInvocationsBefore == nil { + break + } + + args, err := ec.field_Mutation_deleteInvocationsBefore_args(context.TODO(), rawArgs) + if err != nil { + return 0, false + } + + return e.complexity.Mutation.DeleteInvocationsBefore(childComplexity, args["time"].(time.Time)), true + case "NamedFile.name": if e.complexity.NamedFile.Name == nil { break @@ -4730,6 +4819,21 @@ func (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler { return &response } + case ast.Mutation: + return func(ctx context.Context) *graphql.Response { + if !first { + return nil + } + first = false + ctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap) + data := ec._Mutation(ctx, rc.Operation.SelectionSet) + var buf bytes.Buffer + data.MarshalGQL(&buf) + + return &graphql.Response{ + Data: buf.Bytes(), + } + } default: return graphql.OneShot(graphql.ErrorResponse(ctx, "unsupported GraphQL operation")) @@ -4799,6 +4903,134 @@ var parsedSchema = gqlparser.MustLoadSchema(sources...) // region ***************************** args.gotpl ***************************** +func (ec *executionContext) field_Mutation_deleteBuild_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { + var err error + args := map[string]interface{}{} + arg0, err := ec.field_Mutation_deleteBuild_argsBuildUUID(ctx, rawArgs) + if err != nil { + return nil, err + } + args["buildUUID"] = arg0 + return args, nil +} +func (ec *executionContext) field_Mutation_deleteBuild_argsBuildUUID( + ctx context.Context, + rawArgs map[string]interface{}, +) (uuid.UUID, error) { + // We won't call the directive if the argument is null. + // Set call_argument_directives_with_null to true to call directives + // even if the argument is null. + _, ok := rawArgs["buildUUID"] + if !ok { + var zeroVal uuid.UUID + return zeroVal, nil + } + + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("buildUUID")) + if tmp, ok := rawArgs["buildUUID"]; ok { + return ec.unmarshalNUUID2githubᚗcomᚋgoogleᚋuuidᚐUUID(ctx, tmp) + } + + var zeroVal uuid.UUID + return zeroVal, nil +} + +func (ec *executionContext) field_Mutation_deleteBuildsBefore_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { + var err error + args := map[string]interface{}{} + arg0, err := ec.field_Mutation_deleteBuildsBefore_argsTime(ctx, rawArgs) + if err != nil { + return nil, err + } + args["time"] = arg0 + return args, nil +} +func (ec *executionContext) field_Mutation_deleteBuildsBefore_argsTime( + ctx context.Context, + rawArgs map[string]interface{}, +) (time.Time, error) { + // We won't call the directive if the argument is null. + // Set call_argument_directives_with_null to true to call directives + // even if the argument is null. + _, ok := rawArgs["time"] + if !ok { + var zeroVal time.Time + return zeroVal, nil + } + + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("time")) + if tmp, ok := rawArgs["time"]; ok { + return ec.unmarshalNTime2timeᚐTime(ctx, tmp) + } + + var zeroVal time.Time + return zeroVal, nil +} + +func (ec *executionContext) field_Mutation_deleteInvocation_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { + var err error + args := map[string]interface{}{} + arg0, err := ec.field_Mutation_deleteInvocation_argsInvocationID(ctx, rawArgs) + if err != nil { + return nil, err + } + args["invocationId"] = arg0 + return args, nil +} +func (ec *executionContext) field_Mutation_deleteInvocation_argsInvocationID( + ctx context.Context, + rawArgs map[string]interface{}, +) (uuid.UUID, error) { + // We won't call the directive if the argument is null. + // Set call_argument_directives_with_null to true to call directives + // even if the argument is null. + _, ok := rawArgs["invocationId"] + if !ok { + var zeroVal uuid.UUID + return zeroVal, nil + } + + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("invocationId")) + if tmp, ok := rawArgs["invocationId"]; ok { + return ec.unmarshalNUUID2githubᚗcomᚋgoogleᚋuuidᚐUUID(ctx, tmp) + } + + var zeroVal uuid.UUID + return zeroVal, nil +} + +func (ec *executionContext) field_Mutation_deleteInvocationsBefore_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { + var err error + args := map[string]interface{}{} + arg0, err := ec.field_Mutation_deleteInvocationsBefore_argsTime(ctx, rawArgs) + if err != nil { + return nil, err + } + args["time"] = arg0 + return args, nil +} +func (ec *executionContext) field_Mutation_deleteInvocationsBefore_argsTime( + ctx context.Context, + rawArgs map[string]interface{}, +) (time.Time, error) { + // We won't call the directive if the argument is null. + // Set call_argument_directives_with_null to true to call directives + // even if the argument is null. + _, ok := rawArgs["time"] + if !ok { + var zeroVal time.Time + return zeroVal, nil + } + + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("time")) + if tmp, ok := rawArgs["time"]; ok { + return ec.unmarshalNTime2timeᚐTime(ctx, tmp) + } + + var zeroVal time.Time + return zeroVal, nil +} + func (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { var err error args := map[string]interface{}{} @@ -12704,6 +12936,138 @@ func (ec *executionContext) fieldContext_CumulativeMetrics_metrics(_ context.Con return fc, nil } +func (ec *executionContext) _DeleteResult_deleted(ctx context.Context, field graphql.CollectedField, obj *model.DeleteResult) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_DeleteResult_deleted(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return obj.Deleted, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(int) + fc.Result = res + return ec.marshalNInt2int(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_DeleteResult_deleted(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "DeleteResult", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type Int does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _DeleteResult_found(ctx context.Context, field graphql.CollectedField, obj *model.DeleteResult) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_DeleteResult_found(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return obj.Found, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(int) + fc.Result = res + return ec.marshalNInt2int(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_DeleteResult_found(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "DeleteResult", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type Int does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _DeleteResult_successful(ctx context.Context, field graphql.CollectedField, obj *model.DeleteResult) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_DeleteResult_successful(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return obj.Successful, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(bool) + fc.Result = res + return ec.marshalNBoolean2bool(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_DeleteResult_successful(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "DeleteResult", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type Boolean does not have child fields") + }, + } + return fc, nil +} + func (ec *executionContext) _DynamicExecutionMetrics_id(ctx context.Context, field graphql.CollectedField, obj *ent.DynamicExecutionMetrics) (ret graphql.Marshaler) { fc, err := ec.fieldContext_DynamicExecutionMetrics_id(ctx, field) if err != nil { @@ -15910,6 +16274,242 @@ func (ec *executionContext) fieldContext_MissDetail_actionCacheStatistics(_ cont return fc, nil } +func (ec *executionContext) _Mutation_deleteInvocation(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Mutation_deleteInvocation(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return ec.resolvers.Mutation().DeleteInvocation(rctx, fc.Args["invocationId"].(uuid.UUID)) + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(bool) + fc.Result = res + return ec.marshalNBoolean2bool(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Mutation_deleteInvocation(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Mutation", + Field: field, + IsMethod: true, + IsResolver: true, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type Boolean does not have child fields") + }, + } + defer func() { + if r := recover(); r != nil { + err = ec.Recover(ctx, r) + ec.Error(ctx, err) + } + }() + ctx = graphql.WithFieldContext(ctx, fc) + if fc.Args, err = ec.field_Mutation_deleteInvocation_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + ec.Error(ctx, err) + return fc, err + } + return fc, nil +} + +func (ec *executionContext) _Mutation_deleteBuild(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Mutation_deleteBuild(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return ec.resolvers.Mutation().DeleteBuild(rctx, fc.Args["buildUUID"].(uuid.UUID)) + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(bool) + fc.Result = res + return ec.marshalNBoolean2bool(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Mutation_deleteBuild(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Mutation", + Field: field, + IsMethod: true, + IsResolver: true, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type Boolean does not have child fields") + }, + } + defer func() { + if r := recover(); r != nil { + err = ec.Recover(ctx, r) + ec.Error(ctx, err) + } + }() + ctx = graphql.WithFieldContext(ctx, fc) + if fc.Args, err = ec.field_Mutation_deleteBuild_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + ec.Error(ctx, err) + return fc, err + } + return fc, nil +} + +func (ec *executionContext) _Mutation_deleteInvocationsBefore(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Mutation_deleteInvocationsBefore(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return ec.resolvers.Mutation().DeleteInvocationsBefore(rctx, fc.Args["time"].(time.Time)) + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(*model.DeleteResult) + fc.Result = res + return ec.marshalNDeleteResult2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋinternalᚋgraphqlᚋmodelᚐDeleteResult(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Mutation_deleteInvocationsBefore(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Mutation", + Field: field, + IsMethod: true, + IsResolver: true, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "deleted": + return ec.fieldContext_DeleteResult_deleted(ctx, field) + case "found": + return ec.fieldContext_DeleteResult_found(ctx, field) + case "successful": + return ec.fieldContext_DeleteResult_successful(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type DeleteResult", field.Name) + }, + } + defer func() { + if r := recover(); r != nil { + err = ec.Recover(ctx, r) + ec.Error(ctx, err) + } + }() + ctx = graphql.WithFieldContext(ctx, fc) + if fc.Args, err = ec.field_Mutation_deleteInvocationsBefore_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + ec.Error(ctx, err) + return fc, err + } + return fc, nil +} + +func (ec *executionContext) _Mutation_deleteBuildsBefore(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Mutation_deleteBuildsBefore(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return ec.resolvers.Mutation().DeleteBuildsBefore(rctx, fc.Args["time"].(time.Time)) + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(*model.DeleteResult) + fc.Result = res + return ec.marshalNDeleteResult2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋinternalᚋgraphqlᚋmodelᚐDeleteResult(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Mutation_deleteBuildsBefore(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Mutation", + Field: field, + IsMethod: true, + IsResolver: true, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "deleted": + return ec.fieldContext_DeleteResult_deleted(ctx, field) + case "found": + return ec.fieldContext_DeleteResult_found(ctx, field) + case "successful": + return ec.fieldContext_DeleteResult_successful(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type DeleteResult", field.Name) + }, + } + defer func() { + if r := recover(); r != nil { + err = ec.Recover(ctx, r) + ec.Error(ctx, err) + } + }() + ctx = graphql.WithFieldContext(ctx, fc) + if fc.Args, err = ec.field_Mutation_deleteBuildsBefore_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + ec.Error(ctx, err) + return fc, err + } + return fc, nil +} + func (ec *executionContext) _NamedFile_name(ctx context.Context, field graphql.CollectedField, obj *model.NamedFile) (ret graphql.Marshaler) { fc, err := ec.fieldContext_NamedFile_name(ctx, field) if err != nil { @@ -52290,6 +52890,55 @@ func (ec *executionContext) _CumulativeMetrics(ctx context.Context, sel ast.Sele return out } +var deleteResultImplementors = []string{"DeleteResult"} + +func (ec *executionContext) _DeleteResult(ctx context.Context, sel ast.SelectionSet, obj *model.DeleteResult) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, deleteResultImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("DeleteResult") + case "deleted": + out.Values[i] = ec._DeleteResult_deleted(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "found": + out.Values[i] = ec._DeleteResult_found(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "successful": + out.Values[i] = ec._DeleteResult_successful(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + var dynamicExecutionMetricsImplementors = []string{"DynamicExecutionMetrics", "Node"} func (ec *executionContext) _DynamicExecutionMetrics(ctx context.Context, sel ast.SelectionSet, obj *ent.DynamicExecutionMetrics) graphql.Marshaler { @@ -53918,6 +54567,76 @@ func (ec *executionContext) _MissDetail(ctx context.Context, sel ast.SelectionSe return out } +var mutationImplementors = []string{"Mutation"} + +func (ec *executionContext) _Mutation(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, mutationImplementors) + ctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{ + Object: "Mutation", + }) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + innerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{ + Object: field.Name, + Field: field, + }) + + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("Mutation") + case "deleteInvocation": + out.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) { + return ec._Mutation_deleteInvocation(ctx, field) + }) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "deleteBuild": + out.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) { + return ec._Mutation_deleteBuild(ctx, field) + }) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "deleteInvocationsBefore": + out.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) { + return ec._Mutation_deleteInvocationsBefore(ctx, field) + }) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "deleteBuildsBefore": + out.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) { + return ec._Mutation_deleteBuildsBefore(ctx, field) + }) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + var namedFileImplementors = []string{"NamedFile"} func (ec *executionContext) _NamedFile(ctx context.Context, sel ast.SelectionSet, obj *model.NamedFile) graphql.Marshaler { @@ -58876,6 +59595,20 @@ func (ec *executionContext) marshalNCursor2entgoᚗioᚋcontribᚋentgqlᚐCurso return v } +func (ec *executionContext) marshalNDeleteResult2githubᚗcomᚋbuildbarnᚋbbᚑportalᚋinternalᚋgraphqlᚋmodelᚐDeleteResult(ctx context.Context, sel ast.SelectionSet, v model.DeleteResult) graphql.Marshaler { + return ec._DeleteResult(ctx, sel, &v) +} + +func (ec *executionContext) marshalNDeleteResult2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋinternalᚋgraphqlᚋmodelᚐDeleteResult(ctx context.Context, sel ast.SelectionSet, v *model.DeleteResult) graphql.Marshaler { + if v == nil { + if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { + ec.Errorf(ctx, "the requested element is null which the schema does not allow") + } + return graphql.Null + } + return ec._DeleteResult(ctx, sel, v) +} + func (ec *executionContext) unmarshalNDynamicExecutionMetricsWhereInput2ᚖgithubᚗcomᚋbuildbarnᚋbbᚑportalᚋentᚋgenᚋentᚐDynamicExecutionMetricsWhereInput(ctx context.Context, v interface{}) (*ent.DynamicExecutionMetricsWhereInput, error) { res, err := ec.unmarshalInputDynamicExecutionMetricsWhereInput(ctx, v) return &res, graphql.ErrorOnPath(ctx, err) diff --git a/internal/graphql/testdata/snapshot.db b/internal/graphql/testdata/snapshot.db index 855f98e8..5d6b542e 100644 Binary files a/internal/graphql/testdata/snapshot.db and b/internal/graphql/testdata/snapshot.db differ diff --git a/internal/graphql/testdata/snapshots/LoadFullBazelInvocationDetails/get-single-bazel-invocation-analysis-failed-target.golden.json b/internal/graphql/testdata/snapshots/LoadFullBazelInvocationDetails/get-single-bazel-invocation-analysis-failed-target.golden.json index cbd661b6..9a48b18a 100644 --- a/internal/graphql/testdata/snapshots/LoadFullBazelInvocationDetails/get-single-bazel-invocation-analysis-failed-target.golden.json +++ b/internal/graphql/testdata/snapshots/LoadFullBazelInvocationDetails/get-single-bazel-invocation-analysis-failed-target.golden.json @@ -251,18 +251,18 @@ "targets": [ { "abortReason": "", - "durationInMs": 0, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMTU=", - "label": "//next.js/pages/api:api", + "label": "//next.js:next_start", "success": true, - "targetKind": "ts_project rule", + "targetKind": "_js_run_devserver rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMTY=", - "label": "//next.js/pages:_jest_test_bazel_snapshot_reporter", + "label": "//next.js/pages:_jest_test_bazel_snapshot_resolver", "success": true, "targetKind": "_copy_file rule", "testSize": "UNKNOWN" @@ -271,163 +271,163 @@ "abortReason": "", "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMTc=", - "label": "//next.js/pages:pages", + "label": "//next.js:build_test", "success": true, - "targetKind": "ts_project rule", - "testSize": "UNKNOWN" + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoyMTg=", - "label": "//next.js:next_js_binary", + "label": "//next.js:jest_config", "success": true, - "targetKind": "js_binary rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMTk=", - "label": "//next.js:tsconfig", + "label": "//next.js:next", "success": true, - "targetKind": "ts_config rule", + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMjA=", - "label": "//next.js:next_start", + "label": "//next.js:next_js_binary", "success": true, - "targetKind": "_js_run_devserver rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMjE=", - "label": "//next.js/pages:_jest_test_bazel_sequencer", + "label": "//next.js/pages:_jest_test_jest_entrypoint", "success": true, - "targetKind": "_copy_file rule", + "targetKind": "directory_path rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjI=", - "label": "//next.js/pages:_jest_test_bazel_snapshot_resolver", + "label": "//next.js/pages:pages", "success": true, - "targetKind": "_copy_file rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMjM=", - "label": "//next.js/styles:styles", + "label": "//next.js/pages:specs", "success": true, - "targetKind": "js_library rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjQ=", - "label": "//next.js/public:public", + "label": "//next.js:tsconfig", "success": true, - "targetKind": "js_library rule", + "targetKind": "ts_config rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjU=", - "label": "//next.js:build_test", + "label": "//next.js/pages:jest_test", "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "targetKind": "jest_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 3, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjY=", - "label": "//next.js:eslintrc", + "label": "//next.js/pages:_jest_test_bazel_sequencer", "success": true, - "targetKind": "js_library rule", + "targetKind": "_copy_file rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoyMjc=", - "label": "//next.js:next", + "label": "//next.js/pages/api:api", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjg=", - "label": "//next.js:package_json", + "label": "//next.js/styles:styles", "success": true, "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 3, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjk=", - "label": "//next.js/pages:_jest_test_jest_entrypoint", + "label": "//next.js/public:public", "success": true, - "targetKind": "directory_path rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMzA=", - "label": "//next.js:next_dev", + "label": "//next.js:build_smoke_test", "success": true, - "targetKind": "_js_run_devserver rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 3, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMzE=", - "label": "//next.js/pages:specs", + "label": "//next.js/pages:_jest_test_bazel_snapshot_reporter", "success": true, - "targetKind": "ts_project rule", + "targetKind": "_copy_file rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 3, "id": "VGFyZ2V0UGFpcjoyMzI=", - "label": "//next.js:build_smoke_test", + "label": "//next.js:eslintrc", "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "js_library rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMzM=", - "label": "//next.js:jest_config", + "label": "//next.js:next_dev", "success": true, - "targetKind": "js_library rule", + "targetKind": "_js_run_devserver rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMzQ=", - "label": "//next.js/pages:jest_test", + "label": "//next.js:package_json", "success": true, - "targetKind": "jest_test rule", - "testSize": "MEDIUM" + "targetKind": "js_library rule", + "testSize": "UNKNOWN" } ], "testCollection": [ diff --git a/internal/graphql/testdata/snapshots/LoadFullBazelInvocationDetails/get-single-bazel-invocation-ignoring-target-and-error-progress-if-action-has-output.golden.json b/internal/graphql/testdata/snapshots/LoadFullBazelInvocationDetails/get-single-bazel-invocation-ignoring-target-and-error-progress-if-action-has-output.golden.json index 14264bce..d19bcb39 100644 --- a/internal/graphql/testdata/snapshots/LoadFullBazelInvocationDetails/get-single-bazel-invocation-ignoring-target-and-error-progress-if-action-has-output.golden.json +++ b/internal/graphql/testdata/snapshots/LoadFullBazelInvocationDetails/get-single-bazel-invocation-ignoring-target-and-error-progress-if-action-has-output.golden.json @@ -231,115 +231,115 @@ "targets": [ { "abortReason": "INCOMPLETE", - "durationInMs": 1, + "durationInMs": 4, "id": "VGFyZ2V0UGFpcjoxMjc=", - "label": "//next.js/pages:_jest_test_jest_entrypoint", + "label": "//next.js/pages/api:api", "success": false, - "targetKind": "directory_path rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { - "abortReason": "INCOMPLETE", - "durationInMs": 1, + "abortReason": "", + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoxMjg=", - "label": "//next.js/pages:specs", - "success": false, - "targetKind": "ts_project rule", + "label": "//next.js/pages:_jest_test_bazel_sequencer", + "success": true, + "targetKind": "_copy_file rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoxMjk=", - "label": "//next.js/styles:styles", + "label": "//next.js/pages:_jest_test_bazel_snapshot_reporter", "success": true, - "targetKind": "js_library rule", + "targetKind": "_copy_file rule", "testSize": "UNKNOWN" }, { - "abortReason": "INCOMPLETE", - "durationInMs": 2, + "abortReason": "", + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMzA=", - "label": "//next.js:jest_config", - "success": false, + "label": "//next.js/public:public", + "success": true, "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { - "abortReason": "INCOMPLETE", + "abortReason": "", "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxMzE=", - "label": "//next.js:tsconfig", - "success": false, - "targetKind": "ts_config rule", + "label": "//react/src:src", + "success": true, + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMzI=", - "label": "//next.js/pages:_jest_test_bazel_sequencer", + "label": "//react/src:src_transpile", "success": true, - "targetKind": "_copy_file rule", + "targetKind": "swc_compile rule", "testSize": "UNKNOWN" }, { - "abortReason": "", - "durationInMs": 0, + "abortReason": "INCOMPLETE", + "durationInMs": 4, "id": "VGFyZ2V0UGFpcjoxMzM=", - "label": "//next.js/public:public", - "success": true, - "targetKind": "js_library rule", + "label": "//next.js:tsconfig", + "success": false, + "targetKind": "ts_config rule", "testSize": "UNKNOWN" }, { - "abortReason": "INCOMPLETE", - "durationInMs": 1, + "abortReason": "", + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoxMzQ=", - "label": "//next.js:eslintrc", - "success": false, - "targetKind": "js_library rule", + "label": "//next.js/pages:_jest_test_bazel_snapshot_resolver", + "success": true, + "targetKind": "_copy_file rule", "testSize": "UNKNOWN" }, { "abortReason": "INCOMPLETE", "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoxMzU=", - "label": "//packages/one:one", + "label": "//next.js:eslintrc", "success": false, - "targetKind": "_npm_package rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { - "abortReason": "INCOMPLETE", - "durationInMs": 2, + "abortReason": "", + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMzY=", - "label": "//packages/one:one_ts", - "success": false, - "targetKind": "ts_project rule", + "label": "//next.js/styles:styles", + "success": true, + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "INCOMPLETE", "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoxMzc=", - "label": "//next.js:package_json", + "label": "//next.js:jest_config", "success": false, "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { - "abortReason": "", - "durationInMs": 0, + "abortReason": "INCOMPLETE", + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoxMzg=", - "label": "//react/public:public", - "success": true, - "targetKind": "js_library rule", + "label": "//packages/one:one", + "success": false, + "targetKind": "_npm_package rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMzk=", "label": "//react/src:assets", "success": true, @@ -348,44 +348,35 @@ }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxNDA=", - "label": "//next.js/pages:_jest_test_bazel_snapshot_resolver", + "label": "//react/src:test", "success": true, - "targetKind": "_copy_file rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { - "abortReason": "", - "durationInMs": 0, + "abortReason": "INCOMPLETE", + "durationInMs": 4, "id": "VGFyZ2V0UGFpcjoxNDE=", - "label": "//react/src:src_typecheck_test", - "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" - }, - { - "abortReason": "", - "durationInMs": 1, - "id": "VGFyZ2V0UGFpcjoxNDI=", - "label": "//react/src:src", - "success": true, - "targetKind": "js_library rule", + "label": "//next.js/pages:_jest_test_jest_entrypoint", + "success": false, + "targetKind": "directory_path rule", "testSize": "UNKNOWN" }, { "abortReason": "INCOMPLETE", - "durationInMs": 1, - "id": "VGFyZ2V0UGFpcjoxNDM=", - "label": "//next.js/pages:pages", + "durationInMs": 2, + "id": "VGFyZ2V0UGFpcjoxNDI=", + "label": "//next.js/pages:specs", "success": false, "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "INCOMPLETE", - "durationInMs": 1, - "id": "VGFyZ2V0UGFpcjoxNDQ=", + "durationInMs": 2, + "id": "VGFyZ2V0UGFpcjoxNDM=", "label": "//next.js:next_js_binary", "success": false, "targetKind": "js_binary rule", @@ -393,66 +384,75 @@ }, { "abortReason": "INCOMPLETE", - "durationInMs": 2, - "id": "VGFyZ2V0UGFpcjoxNDU=", - "label": "//react/src:lint", + "durationInMs": 5, + "id": "VGFyZ2V0UGFpcjoxNDQ=", + "label": "//next.js:package_json", "success": false, - "targetKind": "eslint_test rule", - "testSize": "MEDIUM" + "targetKind": "js_library rule", + "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, - "id": "VGFyZ2V0UGFpcjoxNDY=", - "label": "//react/src:src_transpile", + "id": "VGFyZ2V0UGFpcjoxNDU=", + "label": "//react/src:src_typings", "success": true, - "targetKind": "swc_compile rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "INCOMPLETE", - "durationInMs": 1, + "durationInMs": 3, + "id": "VGFyZ2V0UGFpcjoxNDY=", + "label": "//next.js/pages:pages", + "success": false, + "targetKind": "ts_project rule", + "testSize": "UNKNOWN" + }, + { + "abortReason": "INCOMPLETE", + "durationInMs": 5, "id": "VGFyZ2V0UGFpcjoxNDc=", - "label": "//next.js/pages/api:api", + "label": "//packages/one:one_ts", "success": false, "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxNDg=", - "label": "//react/src:src_typecheck", + "label": "//react/public:public", "success": true, - "targetKind": "filegroup rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { - "abortReason": "", - "durationInMs": 0, + "abortReason": "INCOMPLETE", + "durationInMs": 4, "id": "VGFyZ2V0UGFpcjoxNDk=", - "label": "//react/src:src_typings", - "success": true, - "targetKind": "ts_project rule", - "testSize": "UNKNOWN" + "label": "//react/src:lint", + "success": false, + "targetKind": "eslint_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNTA=", - "label": "//react/src:test", + "label": "//react/src:src_typecheck", "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "filegroup rule", + "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNTE=", - "label": "//next.js/pages:_jest_test_bazel_snapshot_reporter", + "label": "//react/src:src_typecheck_test", "success": true, - "targetKind": "_copy_file rule", - "testSize": "UNKNOWN" + "targetKind": "_empty_test rule", + "testSize": "SMALL" } ], "testCollection": [], diff --git a/internal/graphql/testdata/snapshots/LoadFullBazelInvocationDetails/get-single-failed-bazel-invocation.golden.json b/internal/graphql/testdata/snapshots/LoadFullBazelInvocationDetails/get-single-failed-bazel-invocation.golden.json index b5e6b09c..226e1f11 100644 --- a/internal/graphql/testdata/snapshots/LoadFullBazelInvocationDetails/get-single-failed-bazel-invocation.golden.json +++ b/internal/graphql/testdata/snapshots/LoadFullBazelInvocationDetails/get-single-failed-bazel-invocation.golden.json @@ -256,496 +256,496 @@ "stepLabel": "", "targets": [ { - "abortReason": "UNKNOWN", - "durationInMs": 10, + "abortReason": "", + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo2NA==", - "label": "//next.js:next_start", - "success": false, - "targetKind": "_js_run_devserver rule", + "label": "//react/src:test_lib_typings", + "success": true, + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjo2NQ==", - "label": "//:eslint", + "label": "//react:build", "success": true, - "targetKind": "js_binary rule", + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo2Ng==", - "label": "//next.js:package_json", + "label": "//react:vite", "success": true, - "targetKind": "js_library rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo2Nw==", - "label": "//packages/one:one", + "label": "//react-webpack/src:transpile", "success": true, - "targetKind": "_npm_package rule", + "targetKind": "swc_compile rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 6, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo2OA==", - "label": "//react/src:test", + "label": "//vue/src:src", "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "_copy_to_bin rule", + "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo2OQ==", - "label": "//react:tsconfig", + "label": "//next.js/styles:styles", "success": true, - "targetKind": "ts_config rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo3MA==", - "label": "//react-webpack/src:transpile", + "label": "//react/src:src_transpile", "success": true, "targetKind": "swc_compile rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo3MQ==", - "label": "//react-webpack:_dev_server_webpack_binary_entrypoint", + "label": "//packages/one:one_ts", "success": true, - "targetKind": "directory_path rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 3, "id": "VGFyZ2V0UGFpcjo3Mg==", - "label": "//vue:build", + "label": "//react/src:test_lib_typecheck_test", "success": true, - "targetKind": "_run_binary rule", - "testSize": "UNKNOWN" + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjo3Mw==", - "label": "//vue:build_test", + "label": "//react-webpack:_dev_server_webpack_binary", "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "targetKind": "js_binary rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo3NA==", - "label": "//next.js/public:public", + "label": "//next.js/pages:_jest_test_bazel_sequencer", "success": true, - "targetKind": "js_library rule", + "targetKind": "_copy_file rule", "testSize": "UNKNOWN" }, { - "abortReason": "", - "durationInMs": 2, + "abortReason": "UNKNOWN", + "durationInMs": 6, "id": "VGFyZ2V0UGFpcjo3NQ==", - "label": "//vue:type-check", - "success": true, + "label": "//next.js:build_smoke_test", + "success": false, "targetKind": "js_test rule", "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo3Ng==", - "label": "//next.js:tsconfig", + "label": "//react/public:public", "success": true, - "targetKind": "ts_config rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo3Nw==", - "label": "//react/src:src", + "label": "//next.js:jest_config", "success": true, "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { - "abortReason": "", - "durationInMs": 1, + "abortReason": "UNKNOWN", + "durationInMs": 6, "id": "VGFyZ2V0UGFpcjo3OA==", - "label": "//react/src:src_transpile", - "success": true, - "targetKind": "swc_compile rule", + "label": "//next.js:next", + "success": false, + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 3, "id": "VGFyZ2V0UGFpcjo3OQ==", - "label": "//react/src:test_lib_transpile", + "label": "//react:build_smoke_test", "success": true, - "targetKind": "swc_compile rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo4MA==", - "label": "//react:vite", + "label": "//react:preview", "success": true, "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjo4MQ==", - "label": "//react-webpack:_dev_server_webpack_binary", + "label": "//react-webpack:dev_server", "success": true, - "targetKind": "js_binary rule", + "targetKind": "_js_run_devserver rule", "testSize": "UNKNOWN" }, { - "abortReason": "", - "durationInMs": 1, + "abortReason": "UNKNOWN", + "durationInMs": 6, "id": "VGFyZ2V0UGFpcjo4Mg==", - "label": "//vue/libraries/simple:simple", - "success": true, - "targetKind": "_npm_package rule", - "testSize": "UNKNOWN" + "label": "//next.js/pages:jest_test", + "success": false, + "targetKind": "jest_test rule", + "testSize": "MEDIUM" }, { - "abortReason": "", - "durationInMs": 0, + "abortReason": "UNKNOWN", + "durationInMs": 6, "id": "VGFyZ2V0UGFpcjo4Mw==", - "label": "//vue/libraries/simple:types", - "success": true, - "targetKind": "_run_binary rule", + "label": "//next.js/pages:pages", + "success": false, + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo4NA==", - "label": "//vue/libraries/simple:vite.config", + "label": "//react/src:src", "success": true, "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 4, "id": "VGFyZ2V0UGFpcjo4NQ==", - "label": "//vue/src:src", + "label": "//react:start", "success": true, - "targetKind": "_copy_to_bin rule", + "targetKind": "_js_run_devserver rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 7, + "durationInMs": 4, "id": "VGFyZ2V0UGFpcjo4Ng==", - "label": "//next.js:eslintrc", + "label": "//react/src:test", "success": true, - "targetKind": "js_library rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo4Nw==", - "label": "//next.js:next_js_binary", + "label": "//react/src:test_lib_transpile", "success": true, - "targetKind": "js_binary rule", + "targetKind": "swc_compile rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo4OA==", - "label": "//next.js/styles:styles", + "label": "//vue:vite", "success": true, - "targetKind": "js_library rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo4OQ==", - "label": "//react/src:assets", + "label": "//react/src:src_typecheck", "success": true, - "targetKind": "js_library rule", + "targetKind": "filegroup rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo5MA==", - "label": "//react/src:test_lib_typecheck", + "label": "//vue/libraries/simple:simple", "success": true, - "targetKind": "filegroup rule", + "targetKind": "_npm_package rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 3, "id": "VGFyZ2V0UGFpcjo5MQ==", - "label": "//react-webpack:_bundle_webpack_binary", + "label": "//react/src:test_lib", "success": true, - "targetKind": "js_binary rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { - "abortReason": "UNKNOWN", - "durationInMs": 9, + "abortReason": "", + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo5Mg==", - "label": "//next.js:next", - "success": false, - "targetKind": "_run_binary rule", + "label": "//:eslint", + "success": true, + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { - "abortReason": "", - "durationInMs": 0, + "abortReason": "UNKNOWN", + "durationInMs": 6, "id": "VGFyZ2V0UGFpcjo5Mw==", - "label": "//react/src:src_typecheck", - "success": true, - "targetKind": "filegroup rule", + "label": "//next.js/pages:specs", + "success": false, + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo5NA==", - "label": "//react-webpack:_bundle_webpack_binary_entrypoint", + "label": "//next.js:next_js_binary", "success": true, - "targetKind": "directory_path rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo5NQ==", - "label": "//next.js/pages/api:api", + "label": "//next.js/pages:_jest_test_bazel_snapshot_resolver", "success": true, - "targetKind": "ts_project rule", + "targetKind": "_copy_file rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 5, "id": "VGFyZ2V0UGFpcjo5Ng==", - "label": "//react/src:test_lib_typings", + "label": "//next.js:eslintrc", "success": true, - "targetKind": "ts_project rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo5Nw==", - "label": "//react:vite.config", + "label": "//react/src:assets", "success": true, "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 3, "id": "VGFyZ2V0UGFpcjo5OA==", - "label": "//react:write_swcrc", + "label": "//react/src:src_typecheck_test", "success": true, - "targetKind": "_run_binary rule", - "testSize": "UNKNOWN" + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo5OQ==", - "label": "//next.js/pages:_jest_test_bazel_sequencer", + "label": "//react:vite.config", "success": true, - "targetKind": "_copy_file rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMDA=", - "label": "//next.js/pages:_jest_test_bazel_snapshot_reporter", + "label": "//react-webpack:_dev_server_webpack_binary_entrypoint", "success": true, - "targetKind": "_copy_file rule", + "targetKind": "directory_path rule", "testSize": "UNKNOWN" }, { - "abortReason": "UNKNOWN", - "durationInMs": 10, + "abortReason": "", + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoxMDE=", - "label": "//next.js:build_test", - "success": false, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "label": "//next.js/pages/api:api", + "success": true, + "targetKind": "ts_project rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 6, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMDI=", - "label": "//react/src:lint", + "label": "//next.js/pages:_jest_test_bazel_snapshot_reporter", "success": true, - "targetKind": "eslint_test rule", - "testSize": "MEDIUM" + "targetKind": "_copy_file rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxMDM=", - "label": "//react:preview", + "label": "//vue:type-check", "success": true, - "targetKind": "js_binary rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoxMDQ=", - "label": "//react-webpack:bundle", + "label": "//react-webpack:build_smoke_test", "success": true, - "targetKind": "_webpack_bundle rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMDU=", - "label": "//react-webpack:dev_server", + "label": "//vue/libraries/simple:vite.config", "success": true, - "targetKind": "_js_run_devserver rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 5, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMDY=", - "label": "//react-webpack:build_smoke_test", + "label": "//vue:build_test", "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 5, "id": "VGFyZ2V0UGFpcjoxMDc=", - "label": "//next.js/pages:_jest_test_bazel_snapshot_resolver", + "label": "//next.js/pages:_jest_test_jest_entrypoint", "success": true, - "targetKind": "_copy_file rule", + "targetKind": "directory_path rule", "testSize": "UNKNOWN" }, { - "abortReason": "UNKNOWN", - "durationInMs": 11, + "abortReason": "", + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoxMDg=", - "label": "//next.js/pages:jest_test", - "success": false, - "targetKind": "jest_test rule", - "testSize": "MEDIUM" + "label": "//react/src:test_lib_typecheck", + "success": true, + "targetKind": "filegroup rule", + "testSize": "UNKNOWN" }, { - "abortReason": "UNKNOWN", - "durationInMs": 11, + "abortReason": "", + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxMDk=", - "label": "//next.js/pages:pages", - "success": false, - "targetKind": "ts_project rule", + "label": "//packages/one:one", + "success": true, + "targetKind": "_npm_package rule", "testSize": "UNKNOWN" }, { - "abortReason": "UNKNOWN", - "durationInMs": 10, + "abortReason": "", + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxMTA=", - "label": "//next.js/pages:specs", - "success": false, - "targetKind": "ts_project rule", + "label": "//next.js:tsconfig", + "success": true, + "targetKind": "ts_config rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMTE=", - "label": "//react/src:src_typecheck_test", + "label": "//react:tsconfig", "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "targetKind": "ts_config rule", + "testSize": "UNKNOWN" }, { - "abortReason": "", - "durationInMs": 0, + "abortReason": "UNKNOWN", + "durationInMs": 6, "id": "VGFyZ2V0UGFpcjoxMTI=", - "label": "//react/src:src_typings", - "success": true, - "targetKind": "ts_project rule", + "label": "//next.js:next_start", + "success": false, + "targetKind": "_js_run_devserver rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMTM=", - "label": "//vue:vite", + "label": "//next.js:package_json", "success": true, - "targetKind": "js_binary rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoxMTQ=", - "label": "//react/public:public", + "label": "//react-webpack:_bundle_webpack_binary", "success": true, - "targetKind": "js_library rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 4, "id": "VGFyZ2V0UGFpcjoxMTU=", - "label": "//react/src:test_lib", + "label": "//react/src:lint", "success": true, - "targetKind": "js_library rule", - "testSize": "UNKNOWN" + "targetKind": "eslint_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxMTY=", - "label": "//react/src:test_lib_typecheck_test", + "label": "//react:write_swcrc", "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "targetKind": "_run_binary rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 6, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMTc=", - "label": "//react:package_json", + "label": "//next.js/public:public", "success": true, "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 4, "id": "VGFyZ2V0UGFpcjoxMTg=", - "label": "//next.js:jest_config", + "label": "//react:package_json", "success": true, "targetKind": "js_library rule", "testSize": "UNKNOWN" @@ -754,33 +754,42 @@ "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMTk=", - "label": "//packages/one:one_ts", + "label": "//react/src:src_typings", "success": true, "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMjA=", - "label": "//react:build_smoke_test", + "label": "//vue/libraries/simple:types", "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "_run_binary rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMjE=", - "label": "//react:start", + "label": "//vue:build", "success": true, - "targetKind": "_js_run_devserver rule", + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMjI=", + "label": "//react-webpack:bundle", + "success": true, + "targetKind": "_webpack_bundle rule", + "testSize": "UNKNOWN" + }, + { + "abortReason": "", + "durationInMs": 0, + "id": "VGFyZ2V0UGFpcjoxMjM=", "label": "//vue/libraries/simple:build", "success": true, "targetKind": "_run_binary rule", @@ -788,111 +797,102 @@ }, { "abortReason": "", - "durationInMs": 9, - "id": "VGFyZ2V0UGFpcjoxMjM=", - "label": "//next.js/pages:_jest_test_jest_entrypoint", + "durationInMs": 0, + "id": "VGFyZ2V0UGFpcjoxMjQ=", + "label": "//react-webpack:_bundle_webpack_binary_entrypoint", "success": true, "targetKind": "directory_path rule", "testSize": "UNKNOWN" }, { "abortReason": "UNKNOWN", - "durationInMs": 11, - "id": "VGFyZ2V0UGFpcjoxMjQ=", - "label": "//next.js:build_smoke_test", + "durationInMs": 6, + "id": "VGFyZ2V0UGFpcjoxMjU=", + "label": "//next.js:build_test", "success": false, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "UNKNOWN", - "durationInMs": 10, - "id": "VGFyZ2V0UGFpcjoxMjU=", + "durationInMs": 6, + "id": "VGFyZ2V0UGFpcjoxMjY=", "label": "//next.js:next_dev", "success": false, "targetKind": "_js_run_devserver rule", "testSize": "UNKNOWN" - }, - { - "abortReason": "", - "durationInMs": 2, - "id": "VGFyZ2V0UGFpcjoxMjY=", - "label": "//react:build", - "success": true, - "targetKind": "_run_binary rule", - "testSize": "UNKNOWN" } ], "testCollection": [ { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 68000, + "durationMs": 112000, "id": "VGVzdENvbGxlY3Rpb246MTI=", - "label": "//vue:build_test", + "label": "//react/src:lint", "overallStatus": "PASSED", "strategy": "" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 1180000, + "durationMs": 1715000, "id": "VGVzdENvbGxlY3Rpb246MTM=", - "label": "//vue:type-check", + "label": "//react/src:test", "overallStatus": "PASSED", "strategy": "" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 112000, + "durationMs": 170000, "id": "VGVzdENvbGxlY3Rpb246MTQ=", - "label": "//react/src:lint", + "label": "//react-webpack:build_smoke_test", "overallStatus": "PASSED", "strategy": "" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 1715000, + "durationMs": 85000, "id": "VGVzdENvbGxlY3Rpb246MTU=", - "label": "//react/src:test", + "label": "//react/src:src_typecheck_test", "overallStatus": "PASSED", "strategy": "" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 170000, + "durationMs": 95000, "id": "VGVzdENvbGxlY3Rpb246MTY=", - "label": "//react-webpack:build_smoke_test", + "label": "//react/src:test_lib_typecheck_test", "overallStatus": "PASSED", "strategy": "" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 85000, + "durationMs": 191000, "id": "VGVzdENvbGxlY3Rpb246MTc=", - "label": "//react/src:src_typecheck_test", + "label": "//react:build_smoke_test", "overallStatus": "PASSED", "strategy": "" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 95000, + "durationMs": 68000, "id": "VGVzdENvbGxlY3Rpb246MTg=", - "label": "//react/src:test_lib_typecheck_test", + "label": "//vue:build_test", "overallStatus": "PASSED", "strategy": "" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 191000, + "durationMs": 1180000, "id": "VGVzdENvbGxlY3Rpb246MTk=", - "label": "//react:build_smoke_test", + "label": "//vue:type-check", "overallStatus": "PASSED", "strategy": "" } diff --git a/internal/graphql/testdata/snapshots/LoadFullBazelInvocationDetails/get-successful-bazel-build.golden.json b/internal/graphql/testdata/snapshots/LoadFullBazelInvocationDetails/get-successful-bazel-build.golden.json index cfa2c460..6a506acd 100644 --- a/internal/graphql/testdata/snapshots/LoadFullBazelInvocationDetails/get-successful-bazel-build.golden.json +++ b/internal/graphql/testdata/snapshots/LoadFullBazelInvocationDetails/get-successful-bazel-build.golden.json @@ -263,133 +263,133 @@ "targets": [ { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjox", - "label": "//next.js/styles:styles", + "label": "//next.js/pages:_jest_test_bazel_snapshot_resolver", "success": true, - "targetKind": "js_library rule", + "targetKind": "_copy_file rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoy", - "label": "//react/src:test_lib_typecheck_test", + "label": "//next.js/styles:styles", "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "targetKind": "js_library rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 13, "id": "VGFyZ2V0UGFpcjoz", - "label": "//react:preview", + "label": "//react/src:test", "success": true, - "targetKind": "js_binary rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 12, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo0", - "label": "//next.js/pages:jest_test", + "label": "//next.js:tsconfig", "success": true, - "targetKind": "jest_test rule", - "testSize": "MEDIUM" + "targetKind": "ts_config rule", + "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo1", - "label": "//react-webpack/src:transpile", + "label": "//react/public:public", "success": true, - "targetKind": "swc_compile rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo2", - "label": "//vue/libraries/simple:simple", + "label": "//react:vite.config", "success": true, - "targetKind": "_npm_package rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 9, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo3", - "label": "//next.js/pages:pages", + "label": "//react-webpack:_bundle_webpack_binary_entrypoint", "success": true, - "targetKind": "ts_project rule", + "targetKind": "directory_path rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 8, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo4", - "label": "//next.js:next_dev", + "label": "//react-webpack:_dev_server_webpack_binary_entrypoint", "success": true, - "targetKind": "_js_run_devserver rule", + "targetKind": "directory_path rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 11, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo5", - "label": "//next.js:next_start", + "label": "//vue:type-check", "success": true, - "targetKind": "_js_run_devserver rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 15, "id": "VGFyZ2V0UGFpcjoxMA==", - "label": "//react:vite.config", + "label": "//next.js/pages:specs", "success": true, - "targetKind": "js_library rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 10, + "durationInMs": 13, "id": "VGFyZ2V0UGFpcjoxMQ==", - "label": "//next.js:next", + "label": "//react/src:lint", "success": true, - "targetKind": "_run_binary rule", - "testSize": "UNKNOWN" + "targetKind": "eslint_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMg==", - "label": "//react:tsconfig", + "label": "//react/src:test_lib_typings", "success": true, - "targetKind": "ts_config rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 5, + "durationInMs": 11, "id": "VGFyZ2V0UGFpcjoxMw==", - "label": "//react-webpack:_bundle_webpack_binary", + "label": "//vue/libraries/simple:simple", "success": true, - "targetKind": "js_binary rule", + "targetKind": "_npm_package rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 5, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNA==", - "label": "//react/src:src_typecheck_test", + "label": "//vue:build", "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "targetKind": "_run_binary rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNQ==", "label": "//react/src:src", "success": true, @@ -398,453 +398,453 @@ }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 26, "id": "VGFyZ2V0UGFpcjoxNg==", - "label": "//next.js/pages:_jest_test_bazel_snapshot_resolver", + "label": "//next.js/pages:jest_test", "success": true, - "targetKind": "_copy_file rule", - "testSize": "UNKNOWN" + "targetKind": "jest_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 6, + "durationInMs": 15, "id": "VGFyZ2V0UGFpcjoxNw==", - "label": "//react/src:lint", + "label": "//next.js:eslintrc", "success": true, - "targetKind": "eslint_test rule", - "testSize": "MEDIUM" + "targetKind": "js_library rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxOA==", - "label": "//react/public:public", + "label": "//react/src:src_transpile", "success": true, - "targetKind": "js_library rule", + "targetKind": "swc_compile rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 5, + "durationInMs": 13, "id": "VGFyZ2V0UGFpcjoxOQ==", - "label": "//react-webpack:build_smoke_test", + "label": "//react:start", "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "_js_run_devserver rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 25, "id": "VGFyZ2V0UGFpcjoyMA==", - "label": "//react-webpack:bundle", + "label": "//next.js:build_smoke_test", "success": true, - "targetKind": "_webpack_bundle rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoyMQ==", - "label": "//vue:build", + "label": "//react/src:src_typings", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 12, "id": "VGFyZ2V0UGFpcjoyMg==", - "label": "//next.js/pages:_jest_test_bazel_snapshot_reporter", + "label": "//react/src:test_lib", "success": true, - "targetKind": "_copy_file rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 13, "id": "VGFyZ2V0UGFpcjoyMw==", - "label": "//packages/one:one_ts", + "label": "//react:build_smoke_test", "success": true, - "targetKind": "ts_project rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 13, "id": "VGFyZ2V0UGFpcjoyNA==", - "label": "//react/src:test_lib", + "label": "//react-webpack:build_smoke_test", "success": true, - "targetKind": "js_library rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 6, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyNQ==", - "label": "//react:package_json", + "label": "//next.js/pages/api:api", "success": true, - "targetKind": "js_library rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoyNg==", - "label": "//react:vite", + "label": "//next.js:jest_config", "success": true, - "targetKind": "js_binary rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyNw==", - "label": "//vue/src:src", + "label": "//packages/one:one_ts", "success": true, - "targetKind": "_copy_to_bin rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 8, + "durationInMs": 12, "id": "VGFyZ2V0UGFpcjoyOA==", - "label": "//next.js:eslintrc", + "label": "//react/src:src_typecheck_test", "success": true, - "targetKind": "js_library rule", - "testSize": "UNKNOWN" + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "", - "durationInMs": 3, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoyOQ==", - "label": "//react/src:src_typecheck", + "label": "//react-webpack/src:transpile", "success": true, - "targetKind": "filegroup rule", + "targetKind": "swc_compile rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjozMA==", - "label": "//react/src:src_typings", + "label": "//vue/src:src", "success": true, - "targetKind": "ts_project rule", + "targetKind": "_copy_to_bin rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjozMQ==", - "label": "//react-webpack:_dev_server_webpack_binary_entrypoint", + "label": "//vue:vite", "success": true, - "targetKind": "directory_path rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjozMg==", - "label": "//vue/libraries/simple:vite.config", + "label": "//:eslint", "success": true, - "targetKind": "js_library rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 26, "id": "VGFyZ2V0UGFpcjozMw==", - "label": "//react/src:src_transpile", + "label": "//next.js:next_start", "success": true, - "targetKind": "swc_compile rule", + "targetKind": "_js_run_devserver rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjozNA==", - "label": "//react/src:test_lib_typings", + "label": "//react:preview", "success": true, - "targetKind": "ts_project rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 5, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjozNQ==", - "label": "//react-webpack:_dev_server_webpack_binary", + "label": "//react/src:assets", "success": true, - "targetKind": "js_binary rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjozNg==", - "label": "//vue/libraries/simple:types", + "label": "//react/src:test_lib_transpile", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "swc_compile rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjozNw==", - "label": "//packages/one:one", + "label": "//vue/libraries/simple:types", "success": true, - "targetKind": "_npm_package rule", + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 25, "id": "VGFyZ2V0UGFpcjozOA==", - "label": "//next.js:tsconfig", + "label": "//next.js:next", "success": true, - "targetKind": "ts_config rule", + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 6, + "durationInMs": 14, "id": "VGFyZ2V0UGFpcjozOQ==", - "label": "//react/src:test", + "label": "//react:package_json", "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "js_library rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo0MA==", - "label": "//react:build", + "label": "//react-webpack:bundle", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "_webpack_bundle rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 5, + "durationInMs": 10, "id": "VGFyZ2V0UGFpcjo0MQ==", - "label": "//react:build_smoke_test", + "label": "//vue/libraries/simple:build", "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "_run_binary rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 15, "id": "VGFyZ2V0UGFpcjo0Mg==", - "label": "//vue:build_test", + "label": "//next.js:next_dev", "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "targetKind": "_js_run_devserver rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 12, "id": "VGFyZ2V0UGFpcjo0Mw==", - "label": "//vue:type-check", + "label": "//react-webpack:_bundle_webpack_binary", "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "js_binary rule", + "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo0NA==", - "label": "//next.js:package_json", + "label": "//vue/libraries/simple:vite.config", "success": true, "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 10, + "durationInMs": 15, "id": "VGFyZ2V0UGFpcjo0NQ==", - "label": "//next.js:build_test", + "label": "//next.js/pages:_jest_test_jest_entrypoint", "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "targetKind": "directory_path rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 25, "id": "VGFyZ2V0UGFpcjo0Ng==", - "label": "//next.js/public:public", + "label": "//next.js:build_test", "success": true, - "targetKind": "js_library rule", - "testSize": "UNKNOWN" + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo0Nw==", - "label": "//next.js:jest_config", + "label": "//react/src:test_lib_typecheck", "success": true, - "targetKind": "js_library rule", + "targetKind": "filegroup rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo0OA==", - "label": "//react/src:assets", + "label": "//next.js/pages:_jest_test_bazel_sequencer", "success": true, - "targetKind": "js_library rule", + "targetKind": "_copy_file rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo0OQ==", - "label": "//react:write_swcrc", + "label": "//next.js:next_js_binary", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo1MA==", - "label": "//react-webpack:_bundle_webpack_binary_entrypoint", + "label": "//react:build", "success": true, - "targetKind": "directory_path rule", + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 15, "id": "VGFyZ2V0UGFpcjo1MQ==", - "label": "//vue/libraries/simple:build", + "label": "//next.js/pages:pages", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo1Mg==", - "label": "//next.js/pages:_jest_test_bazel_sequencer", + "label": "//next.js/public:public", "success": true, - "targetKind": "_copy_file rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo1Mw==", - "label": "//react/src:test_lib_transpile", + "label": "//next.js:package_json", "success": true, - "targetKind": "swc_compile rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 9, + "durationInMs": 13, "id": "VGFyZ2V0UGFpcjo1NA==", - "label": "//next.js/pages:_jest_test_jest_entrypoint", + "label": "//react/src:test_lib_typecheck_test", "success": true, - "targetKind": "directory_path rule", - "testSize": "UNKNOWN" + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "", - "durationInMs": 10, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo1NQ==", - "label": "//next.js/pages:specs", + "label": "//react:vite", "success": true, - "targetKind": "ts_project rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 11, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo1Ng==", - "label": "//next.js:build_smoke_test", + "label": "//next.js/pages:_jest_test_bazel_snapshot_reporter", "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "_copy_file rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 12, "id": "VGFyZ2V0UGFpcjo1Nw==", - "label": "//next.js:next_js_binary", + "label": "//react-webpack:_dev_server_webpack_binary", "success": true, "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo1OA==", - "label": "//react/src:test_lib_typecheck", + "label": "//packages/one:one", "success": true, - "targetKind": "filegroup rule", + "targetKind": "_npm_package rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 5, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo1OQ==", - "label": "//react:start", + "label": "//react/src:src_typecheck", "success": true, - "targetKind": "_js_run_devserver rule", + "targetKind": "filegroup rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 5, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo2MA==", - "label": "//react-webpack:dev_server", + "label": "//react:tsconfig", "success": true, - "targetKind": "_js_run_devserver rule", + "targetKind": "ts_config rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo2MQ==", - "label": "//vue:vite", + "label": "//react:write_swcrc", "success": true, - "targetKind": "js_binary rule", + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 13, "id": "VGFyZ2V0UGFpcjo2Mg==", - "label": "//next.js/pages/api:api", + "label": "//react-webpack:dev_server", "success": true, - "targetKind": "ts_project rule", + "targetKind": "_js_run_devserver rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo2Mw==", - "label": "//:eslint", + "label": "//vue:build_test", "success": true, - "targetKind": "js_binary rule", - "testSize": "UNKNOWN" + "targetKind": "_empty_test rule", + "testSize": "SMALL" } ], "testCollection": [ { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 85000, + "durationMs": 191000, "id": "VGVzdENvbGxlY3Rpb246MQ==", - "label": "//react/src:src_typecheck_test", + "label": "//react:build_smoke_test", "overallStatus": "PASSED", "strategy": "" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 191000, + "durationMs": 68000, "id": "VGVzdENvbGxlY3Rpb246Mg==", - "label": "//react:build_smoke_test", + "label": "//vue:build_test", "overallStatus": "PASSED", "strategy": "" }, @@ -860,36 +860,36 @@ { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 170000, + "durationMs": 1715000, "id": "VGVzdENvbGxlY3Rpb246NA==", - "label": "//react-webpack:build_smoke_test", + "label": "//react/src:test", "overallStatus": "PASSED", "strategy": "" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 354000, + "durationMs": 1134000, "id": "VGVzdENvbGxlY3Rpb246NQ==", - "label": "//next.js:build_smoke_test", + "label": "//next.js/pages:jest_test", "overallStatus": "PASSED", "strategy": "" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 95000, + "durationMs": 85000, "id": "VGVzdENvbGxlY3Rpb246Ng==", - "label": "//react/src:test_lib_typecheck_test", + "label": "//react/src:src_typecheck_test", "overallStatus": "PASSED", "strategy": "" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 68000, + "durationMs": 95000, "id": "VGVzdENvbGxlY3Rpb246Nw==", - "label": "//vue:build_test", + "label": "//react/src:test_lib_typecheck_test", "overallStatus": "PASSED", "strategy": "" }, @@ -905,9 +905,9 @@ { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 1715000, + "durationMs": 170000, "id": "VGVzdENvbGxlY3Rpb246OQ==", - "label": "//react/src:test", + "label": "//react-webpack:build_smoke_test", "overallStatus": "PASSED", "strategy": "" }, @@ -923,9 +923,9 @@ { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 1134000, + "durationMs": 354000, "id": "VGVzdENvbGxlY3Rpb246MTE=", - "label": "//next.js/pages:jest_test", + "label": "//next.js:build_smoke_test", "overallStatus": "PASSED", "strategy": "" } diff --git a/internal/graphql/testdata/snapshots/LoadFullBazelInvocationDetails/get-successful-bazel-test.golden.json b/internal/graphql/testdata/snapshots/LoadFullBazelInvocationDetails/get-successful-bazel-test.golden.json index 73200173..659f1ab8 100644 --- a/internal/graphql/testdata/snapshots/LoadFullBazelInvocationDetails/get-successful-bazel-test.golden.json +++ b/internal/graphql/testdata/snapshots/LoadFullBazelInvocationDetails/get-successful-bazel-test.golden.json @@ -273,128 +273,128 @@ "targets": [ { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxNTI=", - "label": "//react/public:public", + "label": "//next.js:next_start", "success": true, - "targetKind": "js_library rule", + "targetKind": "_js_run_devserver rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNTM=", - "label": "//react/src:assets", + "label": "//next.js:tsconfig", "success": true, - "targetKind": "js_library rule", + "targetKind": "ts_config rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 3, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNTQ=", - "label": "//react:start", + "label": "//react/public:public", "success": true, - "targetKind": "_js_run_devserver rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxNTU=", - "label": "//vue/libraries/simple:types", + "label": "//packages/one:one_ts", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxNTY=", - "label": "//next.js/pages/api:api", + "label": "//react/src:src_transpile", "success": true, - "targetKind": "ts_project rule", + "targetKind": "swc_compile rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 3, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNTc=", - "label": "//react/src:src_typecheck_test", + "label": "//vue:vite", "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "targetKind": "js_binary rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 3, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxNTg=", - "label": "//react:package_json", + "label": "//next.js/pages:pages", "success": true, - "targetKind": "js_library rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxNTk=", - "label": "//react:write_swcrc", + "label": "//react/src:src", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxNjA=", - "label": "//vue/libraries/simple:vite.config", + "label": "//react/src:test_lib_typecheck", "success": true, - "targetKind": "js_library rule", + "targetKind": "filegroup rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNjE=", - "label": "//next.js/pages:specs", + "label": "//react:preview", "success": true, - "targetKind": "ts_project rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNjI=", - "label": "//next.js:next", + "label": "//react:write_swcrc", "success": true, "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxNjM=", - "label": "//next.js:tsconfig", + "label": "//vue/libraries/simple:simple", "success": true, - "targetKind": "ts_config rule", + "targetKind": "_npm_package rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNjQ=", - "label": "//react/src:src_typecheck", + "label": "//react/src:assets", "success": true, - "targetKind": "filegroup rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNjU=", - "label": "//react-webpack:_bundle_webpack_binary", + "label": "//react:tsconfig", "success": true, - "targetKind": "js_binary rule", + "targetKind": "ts_config rule", "testSize": "UNKNOWN" }, { @@ -408,81 +408,81 @@ }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 3, "id": "VGFyZ2V0UGFpcjoxNjc=", - "label": "//packages/one:one", + "label": "//react-webpack:bundle", "success": true, - "targetKind": "_npm_package rule", + "targetKind": "_webpack_bundle rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxNjg=", - "label": "//next.js:eslintrc", + "label": "//vue:build_test", "success": true, - "targetKind": "js_library rule", - "testSize": "UNKNOWN" + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 5, "id": "VGFyZ2V0UGFpcjoxNjk=", - "label": "//react/src:lint", + "label": "//next.js/pages:jest_test", "success": true, - "targetKind": "eslint_test rule", + "targetKind": "jest_test rule", "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxNzA=", - "label": "//react-webpack/src:transpile", + "label": "//next.js:next_dev", "success": true, - "targetKind": "swc_compile rule", + "targetKind": "_js_run_devserver rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoxNzE=", - "label": "//vue:build_test", + "label": "//react/src:test_lib", "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "targetKind": "js_library rule", + "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNzI=", - "label": "//next.js/pages:_jest_test_bazel_sequencer", + "label": "//react/src:test_lib_typings", "success": true, - "targetKind": "_copy_file rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 5, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxNzM=", - "label": "//next.js/pages:jest_test", + "label": "//react:build", "success": true, - "targetKind": "jest_test rule", - "testSize": "MEDIUM" + "targetKind": "_run_binary rule", + "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNzQ=", - "label": "//next.js/styles:styles", + "label": "//react:vite.config", "success": true, "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoxNzU=", - "label": "//react:preview", + "label": "//react-webpack:_bundle_webpack_binary", "success": true, "targetKind": "js_binary rule", "testSize": "UNKNOWN" @@ -491,7 +491,7 @@ "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNzY=", - "label": "//react:vite.config", + "label": "//next.js/styles:styles", "success": true, "targetKind": "js_library rule", "testSize": "UNKNOWN" @@ -500,187 +500,187 @@ "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNzc=", - "label": "//react-webpack:_bundle_webpack_binary_entrypoint", + "label": "//next.js:next_js_binary", "success": true, - "targetKind": "directory_path rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNzg=", - "label": "//react/src:src_typings", + "label": "//next.js:package_json", "success": true, - "targetKind": "ts_project rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 3, "id": "VGFyZ2V0UGFpcjoxNzk=", - "label": "//react:tsconfig", + "label": "//react:start", "success": true, - "targetKind": "ts_config rule", + "targetKind": "_js_run_devserver rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxODA=", - "label": "//react:vite", + "label": "//vue/libraries/simple:types", "success": true, - "targetKind": "js_binary rule", + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 5, "id": "VGFyZ2V0UGFpcjoxODE=", - "label": "//vue:type-check", + "label": "//next.js/pages:_jest_test_jest_entrypoint", "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "directory_path rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 4, "id": "VGFyZ2V0UGFpcjoxODI=", - "label": "//vue:vite", + "label": "//react/src:lint", "success": true, - "targetKind": "js_binary rule", - "testSize": "UNKNOWN" + "targetKind": "eslint_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoxODM=", - "label": "//next.js/pages:_jest_test_bazel_snapshot_resolver", + "label": "//react/src:src_typecheck_test", "success": true, - "targetKind": "_copy_file rule", - "testSize": "UNKNOWN" + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 4, "id": "VGFyZ2V0UGFpcjoxODQ=", - "label": "//next.js/public:public", + "label": "//react:package_json", "success": true, "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoxODU=", - "label": "//react/src:src_transpile", + "label": "//react-webpack:dev_server", "success": true, - "targetKind": "swc_compile rule", + "targetKind": "_js_run_devserver rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxODY=", - "label": "//react:build", + "label": "//next.js/pages:_jest_test_bazel_sequencer", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "_copy_file rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 3, "id": "VGFyZ2V0UGFpcjoxODc=", - "label": "//:eslint", + "label": "//next.js:build_smoke_test", "success": true, - "targetKind": "js_binary rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 4, "id": "VGFyZ2V0UGFpcjoxODg=", - "label": "//next.js/pages:_jest_test_bazel_snapshot_reporter", + "label": "//next.js:build_test", "success": true, - "targetKind": "_copy_file rule", - "testSize": "UNKNOWN" + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoxODk=", - "label": "//next.js:jest_config", + "label": "//next.js/pages/api:api", "success": true, - "targetKind": "js_library rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxOTA=", - "label": "//react/src:src", + "label": "//packages/one:one", "success": true, - "targetKind": "js_library rule", + "targetKind": "_npm_package rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxOTE=", - "label": "//react/src:test_lib_typecheck_test", + "label": "//vue/libraries/simple:vite.config", "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "targetKind": "js_library rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 3, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxOTI=", - "label": "//react:build_smoke_test", + "label": "//vue:build", "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "_run_binary rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 5, "id": "VGFyZ2V0UGFpcjoxOTM=", - "label": "//vue/libraries/simple:simple", + "label": "//next.js/pages:specs", "success": true, - "targetKind": "_npm_package rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxOTQ=", - "label": "//vue/src:src", + "label": "//react-webpack:_bundle_webpack_binary_entrypoint", "success": true, - "targetKind": "_copy_to_bin rule", + "targetKind": "directory_path rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoxOTU=", - "label": "//next.js/pages:pages", + "label": "//next.js:next", "success": true, - "targetKind": "ts_project rule", + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 3, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxOTY=", - "label": "//next.js:build_smoke_test", + "label": "//react-webpack/src:transpile", "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "swc_compile rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoxOTc=", - "label": "//next.js:next_js_binary", + "label": "//react-webpack:_dev_server_webpack_binary", "success": true, "targetKind": "js_binary rule", "testSize": "UNKNOWN" @@ -689,16 +689,16 @@ "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxOTg=", - "label": "//packages/one:one_ts", + "label": "//react/src:src_typings", "success": true, "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 3, "id": "VGFyZ2V0UGFpcjoxOTk=", - "label": "//react-webpack:build_smoke_test", + "label": "//react:build_smoke_test", "success": true, "targetKind": "js_test rule", "testSize": "MEDIUM" @@ -707,52 +707,52 @@ "abortReason": "", "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMDA=", - "label": "//react-webpack:bundle", + "label": "//react-webpack:build_smoke_test", "success": true, - "targetKind": "_webpack_bundle rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoyMDE=", - "label": "//vue/libraries/simple:build", + "label": "//vue/src:src", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "_copy_to_bin rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 5, "id": "VGFyZ2V0UGFpcjoyMDI=", - "label": "//next.js/pages:_jest_test_jest_entrypoint", + "label": "//next.js:eslintrc", "success": true, - "targetKind": "directory_path rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 3, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMDM=", - "label": "//next.js:build_test", + "label": "//react/src:src_typecheck", "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "targetKind": "filegroup rule", + "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoyMDQ=", - "label": "//next.js:next_dev", + "label": "//next.js/pages:_jest_test_bazel_snapshot_resolver", "success": true, - "targetKind": "_js_run_devserver rule", + "targetKind": "_copy_file rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoyMDU=", - "label": "//react/src:test_lib", + "label": "//next.js/public:public", "success": true, "targetKind": "js_library rule", "testSize": "UNKNOWN" @@ -761,50 +761,50 @@ "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoyMDY=", - "label": "//react/src:test_lib_typings", + "label": "//react/src:test_lib_transpile", "success": true, - "targetKind": "ts_project rule", + "targetKind": "swc_compile rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoyMDc=", - "label": "//react-webpack:_dev_server_webpack_binary", + "label": "//vue/libraries/simple:build", "success": true, - "targetKind": "js_binary rule", + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoyMDg=", - "label": "//next.js:next_start", + "label": "//next.js/pages:_jest_test_bazel_snapshot_reporter", "success": true, - "targetKind": "_js_run_devserver rule", + "targetKind": "_copy_file rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoyMDk=", - "label": "//react/src:test_lib_typecheck", + "label": "//next.js:jest_config", "success": true, - "targetKind": "filegroup rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 3, "id": "VGFyZ2V0UGFpcjoyMTA=", - "label": "//next.js:package_json", + "label": "//react/src:test_lib_typecheck_test", "success": true, - "targetKind": "js_library rule", - "testSize": "UNKNOWN" + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 3, "id": "VGFyZ2V0UGFpcjoyMTE=", "label": "//react/src:test", "success": true, @@ -815,27 +815,27 @@ "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoyMTI=", - "label": "//react/src:test_lib_transpile", + "label": "//react:vite", "success": true, - "targetKind": "swc_compile rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMTM=", - "label": "//react-webpack:dev_server", + "label": "//vue:type-check", "success": true, - "targetKind": "_js_run_devserver rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMTQ=", - "label": "//vue:build", + "label": "//:eslint", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" } ], @@ -843,99 +843,99 @@ { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 85000, + "durationMs": 112000, "id": "VGVzdENvbGxlY3Rpb246MjA=", - "label": "//react/src:src_typecheck_test", + "label": "//react/src:lint", "overallStatus": "PASSED", "strategy": "" }, { - "cachedLocally": true, + "cachedLocally": false, "cachedRemotely": false, - "durationMs": 170000, + "durationMs": 1134000, "id": "VGVzdENvbGxlY3Rpb246MjE=", - "label": "//react-webpack:build_smoke_test", + "label": "//next.js/pages:jest_test", "overallStatus": "PASSED", - "strategy": "" + "strategy": "darwin-sandbox" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 191000, + "durationMs": 89000, "id": "VGVzdENvbGxlY3Rpb246MjI=", - "label": "//react:build_smoke_test", + "label": "//next.js:build_test", "overallStatus": "PASSED", "strategy": "" }, { - "cachedLocally": false, + "cachedLocally": true, "cachedRemotely": false, - "durationMs": 1134000, + "durationMs": 170000, "id": "VGVzdENvbGxlY3Rpb246MjM=", - "label": "//next.js/pages:jest_test", + "label": "//react-webpack:build_smoke_test", "overallStatus": "PASSED", - "strategy": "darwin-sandbox" + "strategy": "" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 354000, + "durationMs": 1180000, "id": "VGVzdENvbGxlY3Rpb246MjQ=", - "label": "//next.js:build_smoke_test", + "label": "//vue:type-check", "overallStatus": "PASSED", "strategy": "" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 95000, + "durationMs": 1715000, "id": "VGVzdENvbGxlY3Rpb246MjU=", - "label": "//react/src:test_lib_typecheck_test", + "label": "//react/src:test", "overallStatus": "PASSED", "strategy": "" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 89000, + "durationMs": 68000, "id": "VGVzdENvbGxlY3Rpb246MjY=", - "label": "//next.js:build_test", + "label": "//vue:build_test", "overallStatus": "PASSED", "strategy": "" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 68000, + "durationMs": 354000, "id": "VGVzdENvbGxlY3Rpb246Mjc=", - "label": "//vue:build_test", + "label": "//next.js:build_smoke_test", "overallStatus": "PASSED", "strategy": "" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 1180000, + "durationMs": 85000, "id": "VGVzdENvbGxlY3Rpb246Mjg=", - "label": "//vue:type-check", + "label": "//react/src:src_typecheck_test", "overallStatus": "PASSED", "strategy": "" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 1715000, + "durationMs": 95000, "id": "VGVzdENvbGxlY3Rpb246Mjk=", - "label": "//react/src:test", + "label": "//react/src:test_lib_typecheck_test", "overallStatus": "PASSED", "strategy": "" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 112000, + "durationMs": 191000, "id": "VGVzdENvbGxlY3Rpb246MzA=", - "label": "//react/src:lint", + "label": "//react:build_smoke_test", "overallStatus": "PASSED", "strategy": "" } diff --git a/pkg/summary/testdata/snapshots/nextjs_build.bep.ndjson.golden.json b/pkg/summary/testdata/snapshots/nextjs_build.bep.ndjson.golden.json index acbd0a63..46ab5895 100644 --- a/pkg/summary/testdata/snapshots/nextjs_build.bep.ndjson.golden.json +++ b/pkg/summary/testdata/snapshots/nextjs_build.bep.ndjson.golden.json @@ -277,7 +277,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.666417799Z" + "FirstSeen": "2025-02-10T16:30:30.085560802Z" }, "//next.js:build_smoke_test": { "TestSummary": { @@ -338,7 +338,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.666118297Z" + "FirstSeen": "2025-02-10T16:30:30.085352223Z" }, "//next.js:build_test": { "TestSummary": { @@ -399,7 +399,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.666084325Z" + "FirstSeen": "2025-02-10T16:30:30.085331392Z" }, "//react-webpack:build_smoke_test": { "TestSummary": { @@ -460,7 +460,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.664186635Z" + "FirstSeen": "2025-02-10T16:30:30.084217773Z" }, "//react/src:lint": { "TestSummary": { @@ -521,7 +521,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.663719986Z" + "FirstSeen": "2025-02-10T16:30:30.083845977Z" }, "//react/src:src_typecheck_test": { "TestSummary": { @@ -582,7 +582,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.662486463Z" + "FirstSeen": "2025-02-10T16:30:30.082974499Z" }, "//react/src:test": { "TestSummary": { @@ -643,7 +643,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.663941255Z" + "FirstSeen": "2025-02-10T16:30:30.083998064Z" }, "//react/src:test_lib_typecheck_test": { "TestSummary": { @@ -704,7 +704,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.662865609Z" + "FirstSeen": "2025-02-10T16:30:30.08320239Z" }, "//react:build_smoke_test": { "TestSummary": { @@ -765,7 +765,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.663184792Z" + "FirstSeen": "2025-02-10T16:30:30.083358827Z" }, "//vue:build_test": { "TestSummary": { @@ -826,7 +826,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.663290427Z" + "FirstSeen": "2025-02-10T16:30:30.08343841Z" }, "//vue:type-check": { "TestSummary": { @@ -887,7 +887,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.663566659Z" + "FirstSeen": "2025-02-10T16:30:30.083722202Z" } }, "Targets": { diff --git a/pkg/summary/testdata/snapshots/nextjs_build_fail.bep.ndjson.golden.json b/pkg/summary/testdata/snapshots/nextjs_build_fail.bep.ndjson.golden.json index a82bcdce..5862d694 100644 --- a/pkg/summary/testdata/snapshots/nextjs_build_fail.bep.ndjson.golden.json +++ b/pkg/summary/testdata/snapshots/nextjs_build_fail.bep.ndjson.golden.json @@ -324,7 +324,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.740054018Z" + "FirstSeen": "2025-02-10T16:30:30.152596808Z" }, "//react/src:lint": { "TestSummary": { @@ -385,7 +385,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.739214132Z" + "FirstSeen": "2025-02-10T16:30:30.152227972Z" }, "//react/src:src_typecheck_test": { "TestSummary": { @@ -446,7 +446,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.738000061Z" + "FirstSeen": "2025-02-10T16:30:30.151599675Z" }, "//react/src:test": { "TestSummary": { @@ -507,7 +507,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.739439901Z" + "FirstSeen": "2025-02-10T16:30:30.152317426Z" }, "//react/src:test_lib_typecheck_test": { "TestSummary": { @@ -568,7 +568,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.738237191Z" + "FirstSeen": "2025-02-10T16:30:30.151731361Z" }, "//react:build_smoke_test": { "TestSummary": { @@ -629,7 +629,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.738417418Z" + "FirstSeen": "2025-02-10T16:30:30.151830075Z" }, "//vue:build_test": { "TestSummary": { @@ -690,7 +690,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.738772663Z" + "FirstSeen": "2025-02-10T16:30:30.152006802Z" }, "//vue:type-check": { "TestSummary": { @@ -751,7 +751,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.739015473Z" + "FirstSeen": "2025-02-10T16:30:30.152121817Z" } }, "Targets": { diff --git a/pkg/summary/testdata/snapshots/nextjs_test.bep.ndjson.golden.json b/pkg/summary/testdata/snapshots/nextjs_test.bep.ndjson.golden.json index 014c16cb..62937895 100644 --- a/pkg/summary/testdata/snapshots/nextjs_test.bep.ndjson.golden.json +++ b/pkg/summary/testdata/snapshots/nextjs_test.bep.ndjson.golden.json @@ -318,7 +318,7 @@ "CachedLocally": false, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.87136537Z" + "FirstSeen": "2025-02-10T16:30:30.285524441Z" }, "//next.js:build_smoke_test": { "TestSummary": { @@ -379,7 +379,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.869602165Z" + "FirstSeen": "2025-02-10T16:30:30.283700742Z" }, "//next.js:build_test": { "TestSummary": { @@ -440,7 +440,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.870042965Z" + "FirstSeen": "2025-02-10T16:30:30.284112619Z" }, "//react-webpack:build_smoke_test": { "TestSummary": { @@ -501,7 +501,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.87017588Z" + "FirstSeen": "2025-02-10T16:30:30.284225384Z" }, "//react/src:lint": { "TestSummary": { @@ -562,7 +562,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.8708864Z" + "FirstSeen": "2025-02-10T16:30:30.284777028Z" }, "//react/src:src_typecheck_test": { "TestSummary": { @@ -623,7 +623,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.869739722Z" + "FirstSeen": "2025-02-10T16:30:30.283833697Z" }, "//react/src:test": { "TestSummary": { @@ -684,7 +684,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.870783856Z" + "FirstSeen": "2025-02-10T16:30:30.284683244Z" }, "//react/src:test_lib_typecheck_test": { "TestSummary": { @@ -745,7 +745,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.869945481Z" + "FirstSeen": "2025-02-10T16:30:30.284029576Z" }, "//react:build_smoke_test": { "TestSummary": { @@ -806,7 +806,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.870310956Z" + "FirstSeen": "2025-02-10T16:30:30.284336929Z" }, "//vue:build_test": { "TestSummary": { @@ -867,7 +867,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.87040741Z" + "FirstSeen": "2025-02-10T16:30:30.284405912Z" }, "//vue:type-check": { "TestSummary": { @@ -928,7 +928,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.870518435Z" + "FirstSeen": "2025-02-10T16:30:30.284477675Z" } }, "Targets": { diff --git a/pkg/summary/testdata/snapshots/nextjs_test_fail.bep.ndjson.golden.json b/pkg/summary/testdata/snapshots/nextjs_test_fail.bep.ndjson.golden.json index 109c847f..da19d2f3 100644 --- a/pkg/summary/testdata/snapshots/nextjs_test_fail.bep.ndjson.golden.json +++ b/pkg/summary/testdata/snapshots/nextjs_test_fail.bep.ndjson.golden.json @@ -409,7 +409,7 @@ "CachedLocally": false, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.949111962Z" + "FirstSeen": "2025-02-10T16:30:30.361020683Z" }, "//next.js:build_smoke_test": { "TestSummary": { @@ -470,7 +470,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.948571249Z" + "FirstSeen": "2025-02-10T16:30:30.360766352Z" }, "//next.js:build_test": { "TestSummary": { @@ -531,7 +531,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2025-01-24T19:45:42.948519407Z" + "FirstSeen": "2025-02-10T16:30:30.360738661Z" } }, "Targets": {