diff --git a/Makefile b/Makefile index 4d5079e..5253c1a 100644 --- a/Makefile +++ b/Makefile @@ -28,7 +28,13 @@ npxgen: .PHONY: test test: - go test ./... + bazel test //... + +.PHONY: update-schema +update-schema: + go generate ./... + bazel run //:gazelle + git restore pkg/proto/configuration/bb_portal/BUILD.bazel .PHONY: update-tests update-tests: diff --git a/ent/gen/ent/build.go b/ent/gen/ent/build.go index ad2eb7f..7c2fb13 100644 --- a/ent/gen/ent/build.go +++ b/ent/gen/ent/build.go @@ -6,6 +6,7 @@ import ( "encoding/json" "fmt" "strings" + "time" "entgo.io/ent" "entgo.io/ent/dialect/sql" @@ -24,6 +25,8 @@ type Build struct { BuildUUID uuid.UUID `json:"build_uuid,omitempty"` // Env holds the value of the "env" field. Env map[string]string `json:"env,omitempty"` + // Timestamp holds the value of the "timestamp" field. + Timestamp time.Time `json:"timestamp,omitempty"` // Edges holds the relations/edges for other nodes in the graph. // The values are being populated by the BuildQuery when eager-loading is set. Edges BuildEdges `json:"edges"` @@ -63,6 +66,8 @@ func (*Build) scanValues(columns []string) ([]any, error) { values[i] = new(sql.NullInt64) case build.FieldBuildURL: values[i] = new(sql.NullString) + case build.FieldTimestamp: + values[i] = new(sql.NullTime) case build.FieldBuildUUID: values[i] = new(uuid.UUID) default: @@ -106,6 +111,12 @@ func (b *Build) assignValues(columns []string, values []any) error { return fmt.Errorf("unmarshal field env: %w", err) } } + case build.FieldTimestamp: + if value, ok := values[i].(*sql.NullTime); !ok { + return fmt.Errorf("unexpected type %T for field timestamp", values[i]) + } else if value.Valid { + b.Timestamp = value.Time + } default: b.selectValues.Set(columns[i], values[i]) } @@ -155,6 +166,9 @@ func (b *Build) String() string { builder.WriteString(", ") builder.WriteString("env=") builder.WriteString(fmt.Sprintf("%v", b.Env)) + builder.WriteString(", ") + builder.WriteString("timestamp=") + builder.WriteString(b.Timestamp.Format(time.ANSIC)) builder.WriteByte(')') return builder.String() } diff --git a/ent/gen/ent/build/build.go b/ent/gen/ent/build/build.go index a281324..bf37c35 100644 --- a/ent/gen/ent/build/build.go +++ b/ent/gen/ent/build/build.go @@ -18,6 +18,8 @@ const ( FieldBuildUUID = "build_uuid" // FieldEnv holds the string denoting the env field in the database. FieldEnv = "env" + // FieldTimestamp holds the string denoting the timestamp field in the database. + FieldTimestamp = "timestamp" // EdgeInvocations holds the string denoting the invocations edge name in mutations. EdgeInvocations = "invocations" // Table holds the table name of the build in the database. @@ -37,6 +39,7 @@ var Columns = []string{ FieldBuildURL, FieldBuildUUID, FieldEnv, + FieldTimestamp, } // ValidColumn reports if the column name is valid (part of the table columns). @@ -67,6 +70,11 @@ func ByBuildUUID(opts ...sql.OrderTermOption) OrderOption { return sql.OrderByField(FieldBuildUUID, opts...).ToFunc() } +// ByTimestamp orders the results by the timestamp field. +func ByTimestamp(opts ...sql.OrderTermOption) OrderOption { + return sql.OrderByField(FieldTimestamp, opts...).ToFunc() +} + // ByInvocationsCount orders the results by invocations count. func ByInvocationsCount(opts ...sql.OrderTermOption) OrderOption { return func(s *sql.Selector) { diff --git a/ent/gen/ent/build/where.go b/ent/gen/ent/build/where.go index 9572a95..b292895 100644 --- a/ent/gen/ent/build/where.go +++ b/ent/gen/ent/build/where.go @@ -3,6 +3,8 @@ package build import ( + "time" + "entgo.io/ent/dialect/sql" "entgo.io/ent/dialect/sql/sqlgraph" "github.com/buildbarn/bb-portal/ent/gen/ent/predicate" @@ -64,6 +66,11 @@ func BuildUUID(v uuid.UUID) predicate.Build { return predicate.Build(sql.FieldEQ(FieldBuildUUID, v)) } +// Timestamp applies equality check predicate on the "timestamp" field. It's identical to TimestampEQ. +func Timestamp(v time.Time) predicate.Build { + return predicate.Build(sql.FieldEQ(FieldTimestamp, v)) +} + // BuildURLEQ applies the EQ predicate on the "build_url" field. func BuildURLEQ(v string) predicate.Build { return predicate.Build(sql.FieldEQ(FieldBuildURL, v)) @@ -169,6 +176,56 @@ func BuildUUIDLTE(v uuid.UUID) predicate.Build { return predicate.Build(sql.FieldLTE(FieldBuildUUID, v)) } +// TimestampEQ applies the EQ predicate on the "timestamp" field. +func TimestampEQ(v time.Time) predicate.Build { + return predicate.Build(sql.FieldEQ(FieldTimestamp, v)) +} + +// TimestampNEQ applies the NEQ predicate on the "timestamp" field. +func TimestampNEQ(v time.Time) predicate.Build { + return predicate.Build(sql.FieldNEQ(FieldTimestamp, v)) +} + +// TimestampIn applies the In predicate on the "timestamp" field. +func TimestampIn(vs ...time.Time) predicate.Build { + return predicate.Build(sql.FieldIn(FieldTimestamp, vs...)) +} + +// TimestampNotIn applies the NotIn predicate on the "timestamp" field. +func TimestampNotIn(vs ...time.Time) predicate.Build { + return predicate.Build(sql.FieldNotIn(FieldTimestamp, vs...)) +} + +// TimestampGT applies the GT predicate on the "timestamp" field. +func TimestampGT(v time.Time) predicate.Build { + return predicate.Build(sql.FieldGT(FieldTimestamp, v)) +} + +// TimestampGTE applies the GTE predicate on the "timestamp" field. +func TimestampGTE(v time.Time) predicate.Build { + return predicate.Build(sql.FieldGTE(FieldTimestamp, v)) +} + +// TimestampLT applies the LT predicate on the "timestamp" field. +func TimestampLT(v time.Time) predicate.Build { + return predicate.Build(sql.FieldLT(FieldTimestamp, v)) +} + +// TimestampLTE applies the LTE predicate on the "timestamp" field. +func TimestampLTE(v time.Time) predicate.Build { + return predicate.Build(sql.FieldLTE(FieldTimestamp, v)) +} + +// TimestampIsNil applies the IsNil predicate on the "timestamp" field. +func TimestampIsNil() predicate.Build { + return predicate.Build(sql.FieldIsNull(FieldTimestamp)) +} + +// TimestampNotNil applies the NotNil predicate on the "timestamp" field. +func TimestampNotNil() predicate.Build { + return predicate.Build(sql.FieldNotNull(FieldTimestamp)) +} + // HasInvocations applies the HasEdge predicate on the "invocations" edge. func HasInvocations() predicate.Build { return predicate.Build(func(s *sql.Selector) { diff --git a/ent/gen/ent/build_create.go b/ent/gen/ent/build_create.go index 152adb6..30c011e 100644 --- a/ent/gen/ent/build_create.go +++ b/ent/gen/ent/build_create.go @@ -6,6 +6,7 @@ import ( "context" "errors" "fmt" + "time" "entgo.io/ent/dialect/sql/sqlgraph" "entgo.io/ent/schema/field" @@ -39,6 +40,20 @@ func (bc *BuildCreate) SetEnv(m map[string]string) *BuildCreate { return bc } +// SetTimestamp sets the "timestamp" field. +func (bc *BuildCreate) SetTimestamp(t time.Time) *BuildCreate { + bc.mutation.SetTimestamp(t) + return bc +} + +// SetNillableTimestamp sets the "timestamp" field if the given value is not nil. +func (bc *BuildCreate) SetNillableTimestamp(t *time.Time) *BuildCreate { + if t != nil { + bc.SetTimestamp(*t) + } + return bc +} + // AddInvocationIDs adds the "invocations" edge to the BazelInvocation entity by IDs. func (bc *BuildCreate) AddInvocationIDs(ids ...int) *BuildCreate { bc.mutation.AddInvocationIDs(ids...) @@ -135,6 +150,10 @@ func (bc *BuildCreate) createSpec() (*Build, *sqlgraph.CreateSpec) { _spec.SetField(build.FieldEnv, field.TypeJSON, value) _node.Env = value } + if value, ok := bc.mutation.Timestamp(); ok { + _spec.SetField(build.FieldTimestamp, field.TypeTime, value) + _node.Timestamp = value + } if nodes := bc.mutation.InvocationsIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, diff --git a/ent/gen/ent/build_update.go b/ent/gen/ent/build_update.go index 2440686..289e803 100644 --- a/ent/gen/ent/build_update.go +++ b/ent/gen/ent/build_update.go @@ -6,6 +6,7 @@ import ( "context" "errors" "fmt" + "time" "entgo.io/ent/dialect/sql" "entgo.io/ent/dialect/sql/sqlgraph" @@ -34,6 +35,26 @@ func (bu *BuildUpdate) SetEnv(m map[string]string) *BuildUpdate { return bu } +// SetTimestamp sets the "timestamp" field. +func (bu *BuildUpdate) SetTimestamp(t time.Time) *BuildUpdate { + bu.mutation.SetTimestamp(t) + return bu +} + +// SetNillableTimestamp sets the "timestamp" field if the given value is not nil. +func (bu *BuildUpdate) SetNillableTimestamp(t *time.Time) *BuildUpdate { + if t != nil { + bu.SetTimestamp(*t) + } + return bu +} + +// ClearTimestamp clears the value of the "timestamp" field. +func (bu *BuildUpdate) ClearTimestamp() *BuildUpdate { + bu.mutation.ClearTimestamp() + return bu +} + // AddInvocationIDs adds the "invocations" edge to the BazelInvocation entity by IDs. func (bu *BuildUpdate) AddInvocationIDs(ids ...int) *BuildUpdate { bu.mutation.AddInvocationIDs(ids...) @@ -114,6 +135,12 @@ func (bu *BuildUpdate) sqlSave(ctx context.Context) (n int, err error) { if value, ok := bu.mutation.Env(); ok { _spec.SetField(build.FieldEnv, field.TypeJSON, value) } + if value, ok := bu.mutation.Timestamp(); ok { + _spec.SetField(build.FieldTimestamp, field.TypeTime, value) + } + if bu.mutation.TimestampCleared() { + _spec.ClearField(build.FieldTimestamp, field.TypeTime) + } if bu.mutation.InvocationsCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, @@ -185,6 +212,26 @@ func (buo *BuildUpdateOne) SetEnv(m map[string]string) *BuildUpdateOne { return buo } +// SetTimestamp sets the "timestamp" field. +func (buo *BuildUpdateOne) SetTimestamp(t time.Time) *BuildUpdateOne { + buo.mutation.SetTimestamp(t) + return buo +} + +// SetNillableTimestamp sets the "timestamp" field if the given value is not nil. +func (buo *BuildUpdateOne) SetNillableTimestamp(t *time.Time) *BuildUpdateOne { + if t != nil { + buo.SetTimestamp(*t) + } + return buo +} + +// ClearTimestamp clears the value of the "timestamp" field. +func (buo *BuildUpdateOne) ClearTimestamp() *BuildUpdateOne { + buo.mutation.ClearTimestamp() + return buo +} + // AddInvocationIDs adds the "invocations" edge to the BazelInvocation entity by IDs. func (buo *BuildUpdateOne) AddInvocationIDs(ids ...int) *BuildUpdateOne { buo.mutation.AddInvocationIDs(ids...) @@ -295,6 +342,12 @@ func (buo *BuildUpdateOne) sqlSave(ctx context.Context) (_node *Build, err error if value, ok := buo.mutation.Env(); ok { _spec.SetField(build.FieldEnv, field.TypeJSON, value) } + if value, ok := buo.mutation.Timestamp(); ok { + _spec.SetField(build.FieldTimestamp, field.TypeTime, value) + } + if buo.mutation.TimestampCleared() { + _spec.ClearField(build.FieldTimestamp, field.TypeTime) + } if buo.mutation.InvocationsCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, diff --git a/ent/gen/ent/gql_collection.go b/ent/gen/ent/gql_collection.go index a8c8fda..dc49e7b 100644 --- a/ent/gen/ent/gql_collection.go +++ b/ent/gen/ent/gql_collection.go @@ -946,6 +946,11 @@ func (b *BuildQuery) collectField(ctx context.Context, oneNode bool, opCtx *grap selectedFields = append(selectedFields, build.FieldBuildUUID) fieldSeen[build.FieldBuildUUID] = struct{}{} } + case "timestamp": + if _, ok := fieldSeen[build.FieldTimestamp]; !ok { + selectedFields = append(selectedFields, build.FieldTimestamp) + fieldSeen[build.FieldTimestamp] = struct{}{} + } case "id": case "__typename": default: diff --git a/ent/gen/ent/gql_where_input.go b/ent/gen/ent/gql_where_input.go index 0e2cb5a..4f110c7 100644 --- a/ent/gen/ent/gql_where_input.go +++ b/ent/gen/ent/gql_where_input.go @@ -3253,6 +3253,18 @@ type BuildWhereInput struct { BuildUUIDLT *uuid.UUID `json:"buildUUIDLT,omitempty"` BuildUUIDLTE *uuid.UUID `json:"buildUUIDLTE,omitempty"` + // "timestamp" field predicates. + Timestamp *time.Time `json:"timestamp,omitempty"` + TimestampNEQ *time.Time `json:"timestampNEQ,omitempty"` + TimestampIn []time.Time `json:"timestampIn,omitempty"` + TimestampNotIn []time.Time `json:"timestampNotIn,omitempty"` + TimestampGT *time.Time `json:"timestampGT,omitempty"` + TimestampGTE *time.Time `json:"timestampGTE,omitempty"` + TimestampLT *time.Time `json:"timestampLT,omitempty"` + TimestampLTE *time.Time `json:"timestampLTE,omitempty"` + TimestampIsNil bool `json:"timestampIsNil,omitempty"` + TimestampNotNil bool `json:"timestampNotNil,omitempty"` + // "invocations" edge predicates. HasInvocations *bool `json:"hasInvocations,omitempty"` HasInvocationsWith []*BazelInvocationWhereInput `json:"hasInvocationsWith,omitempty"` @@ -3416,6 +3428,36 @@ func (i *BuildWhereInput) P() (predicate.Build, error) { if i.BuildUUIDLTE != nil { predicates = append(predicates, build.BuildUUIDLTE(*i.BuildUUIDLTE)) } + if i.Timestamp != nil { + predicates = append(predicates, build.TimestampEQ(*i.Timestamp)) + } + if i.TimestampNEQ != nil { + predicates = append(predicates, build.TimestampNEQ(*i.TimestampNEQ)) + } + if len(i.TimestampIn) > 0 { + predicates = append(predicates, build.TimestampIn(i.TimestampIn...)) + } + if len(i.TimestampNotIn) > 0 { + predicates = append(predicates, build.TimestampNotIn(i.TimestampNotIn...)) + } + if i.TimestampGT != nil { + predicates = append(predicates, build.TimestampGT(*i.TimestampGT)) + } + if i.TimestampGTE != nil { + predicates = append(predicates, build.TimestampGTE(*i.TimestampGTE)) + } + if i.TimestampLT != nil { + predicates = append(predicates, build.TimestampLT(*i.TimestampLT)) + } + if i.TimestampLTE != nil { + predicates = append(predicates, build.TimestampLTE(*i.TimestampLTE)) + } + if i.TimestampIsNil { + predicates = append(predicates, build.TimestampIsNil()) + } + if i.TimestampNotNil { + predicates = append(predicates, build.TimestampNotNil()) + } if i.HasInvocations != nil { p := build.HasInvocations() diff --git a/ent/gen/ent/migrate/schema.go b/ent/gen/ent/migrate/schema.go index e5f51ed..683bb28 100644 --- a/ent/gen/ent/migrate/schema.go +++ b/ent/gen/ent/migrate/schema.go @@ -216,6 +216,7 @@ var ( {Name: "build_url", Type: field.TypeString, Unique: true}, {Name: "build_uuid", Type: field.TypeUUID, Unique: true}, {Name: "env", Type: field.TypeJSON}, + {Name: "timestamp", Type: field.TypeTime, Nullable: true}, } // BuildsTable holds the schema information for the "builds" table. BuildsTable = &schema.Table{ diff --git a/ent/gen/ent/mutation.go b/ent/gen/ent/mutation.go index 4987b8f..1c4eefe 100644 --- a/ent/gen/ent/mutation.go +++ b/ent/gen/ent/mutation.go @@ -7013,6 +7013,7 @@ type BuildMutation struct { build_url *string build_uuid *uuid.UUID env *map[string]string + timestamp *time.Time clearedFields map[string]struct{} invocations map[int]struct{} removedinvocations map[int]struct{} @@ -7228,6 +7229,55 @@ func (m *BuildMutation) ResetEnv() { m.env = nil } +// SetTimestamp sets the "timestamp" field. +func (m *BuildMutation) SetTimestamp(t time.Time) { + m.timestamp = &t +} + +// Timestamp returns the value of the "timestamp" field in the mutation. +func (m *BuildMutation) Timestamp() (r time.Time, exists bool) { + v := m.timestamp + if v == nil { + return + } + return *v, true +} + +// OldTimestamp returns the old "timestamp" field's value of the Build entity. +// If the Build object wasn't provided to the builder, the object is fetched from the database. +// An error is returned if the mutation operation is not UpdateOne, or the database query fails. +func (m *BuildMutation) OldTimestamp(ctx context.Context) (v time.Time, err error) { + if !m.op.Is(OpUpdateOne) { + return v, errors.New("OldTimestamp is only allowed on UpdateOne operations") + } + if m.id == nil || m.oldValue == nil { + return v, errors.New("OldTimestamp requires an ID field in the mutation") + } + oldValue, err := m.oldValue(ctx) + if err != nil { + return v, fmt.Errorf("querying old value for OldTimestamp: %w", err) + } + return oldValue.Timestamp, nil +} + +// ClearTimestamp clears the value of the "timestamp" field. +func (m *BuildMutation) ClearTimestamp() { + m.timestamp = nil + m.clearedFields[build.FieldTimestamp] = struct{}{} +} + +// TimestampCleared returns if the "timestamp" field was cleared in this mutation. +func (m *BuildMutation) TimestampCleared() bool { + _, ok := m.clearedFields[build.FieldTimestamp] + return ok +} + +// ResetTimestamp resets all changes to the "timestamp" field. +func (m *BuildMutation) ResetTimestamp() { + m.timestamp = nil + delete(m.clearedFields, build.FieldTimestamp) +} + // AddInvocationIDs adds the "invocations" edge to the BazelInvocation entity by ids. func (m *BuildMutation) AddInvocationIDs(ids ...int) { if m.invocations == nil { @@ -7316,7 +7366,7 @@ func (m *BuildMutation) Type() string { // order to get all numeric fields that were incremented/decremented, call // AddedFields(). func (m *BuildMutation) Fields() []string { - fields := make([]string, 0, 3) + fields := make([]string, 0, 4) if m.build_url != nil { fields = append(fields, build.FieldBuildURL) } @@ -7326,6 +7376,9 @@ func (m *BuildMutation) Fields() []string { if m.env != nil { fields = append(fields, build.FieldEnv) } + if m.timestamp != nil { + fields = append(fields, build.FieldTimestamp) + } return fields } @@ -7340,6 +7393,8 @@ func (m *BuildMutation) Field(name string) (ent.Value, bool) { return m.BuildUUID() case build.FieldEnv: return m.Env() + case build.FieldTimestamp: + return m.Timestamp() } return nil, false } @@ -7355,6 +7410,8 @@ func (m *BuildMutation) OldField(ctx context.Context, name string) (ent.Value, e return m.OldBuildUUID(ctx) case build.FieldEnv: return m.OldEnv(ctx) + case build.FieldTimestamp: + return m.OldTimestamp(ctx) } return nil, fmt.Errorf("unknown Build field %s", name) } @@ -7385,6 +7442,13 @@ func (m *BuildMutation) SetField(name string, value ent.Value) error { } m.SetEnv(v) return nil + case build.FieldTimestamp: + v, ok := value.(time.Time) + if !ok { + return fmt.Errorf("unexpected type %T for field %s", value, name) + } + m.SetTimestamp(v) + return nil } return fmt.Errorf("unknown Build field %s", name) } @@ -7414,7 +7478,11 @@ func (m *BuildMutation) AddField(name string, value ent.Value) error { // ClearedFields returns all nullable fields that were cleared during this // mutation. func (m *BuildMutation) ClearedFields() []string { - return nil + var fields []string + if m.FieldCleared(build.FieldTimestamp) { + fields = append(fields, build.FieldTimestamp) + } + return fields } // FieldCleared returns a boolean indicating if a field with the given name was @@ -7427,6 +7495,11 @@ func (m *BuildMutation) FieldCleared(name string) bool { // ClearField clears the value of the field with the given name. It returns an // error if the field is not defined in the schema. func (m *BuildMutation) ClearField(name string) error { + switch name { + case build.FieldTimestamp: + m.ClearTimestamp() + return nil + } return fmt.Errorf("unknown Build nullable field %s", name) } @@ -7443,6 +7516,9 @@ func (m *BuildMutation) ResetField(name string) error { case build.FieldEnv: m.ResetEnv() return nil + case build.FieldTimestamp: + m.ResetTimestamp() + return nil } return fmt.Errorf("unknown Build field %s", name) } diff --git a/ent/gen/ent/schema-viz.html b/ent/gen/ent/schema-viz.html index ab0864e..1821636 100644 --- a/ent/gen/ent/schema-viz.html +++ b/ent/gen/ent/schema-viz.html @@ -70,7 +70,7 @@ } - const entGraph = JSON.parse("{\"nodes\":[{\"id\":\"ActionCacheStatistics\",\"fields\":[{\"name\":\"size_in_bytes\",\"type\":\"uint64\"},{\"name\":\"save_time_in_ms\",\"type\":\"uint64\"},{\"name\":\"load_time_in_ms\",\"type\":\"int64\"},{\"name\":\"hits\",\"type\":\"int32\"},{\"name\":\"misses\",\"type\":\"int32\"}]},{\"id\":\"ActionData\",\"fields\":[{\"name\":\"mnemonic\",\"type\":\"string\"},{\"name\":\"actions_executed\",\"type\":\"int64\"},{\"name\":\"actions_created\",\"type\":\"int64\"},{\"name\":\"first_started_ms\",\"type\":\"int64\"},{\"name\":\"last_ended_ms\",\"type\":\"int64\"},{\"name\":\"system_time\",\"type\":\"int64\"},{\"name\":\"user_time\",\"type\":\"int64\"}]},{\"id\":\"ActionSummary\",\"fields\":[{\"name\":\"actions_created\",\"type\":\"int64\"},{\"name\":\"actions_created_not_including_aspects\",\"type\":\"int64\"},{\"name\":\"actions_executed\",\"type\":\"int64\"},{\"name\":\"remote_cache_hits\",\"type\":\"int64\"}]},{\"id\":\"ArtifactMetrics\",\"fields\":null},{\"id\":\"BazelInvocation\",\"fields\":[{\"name\":\"invocation_id\",\"type\":\"uuid.UUID\"},{\"name\":\"started_at\",\"type\":\"time.Time\"},{\"name\":\"ended_at\",\"type\":\"time.Time\"},{\"name\":\"change_number\",\"type\":\"int\"},{\"name\":\"patchset_number\",\"type\":\"int\"},{\"name\":\"summary\",\"type\":\"summary.InvocationSummary\"},{\"name\":\"bep_completed\",\"type\":\"bool\"},{\"name\":\"step_label\",\"type\":\"string\"},{\"name\":\"related_files\",\"type\":\"map[string]string\"},{\"name\":\"user_email\",\"type\":\"string\"},{\"name\":\"user_ldap\",\"type\":\"string\"},{\"name\":\"build_logs\",\"type\":\"string\"},{\"name\":\"cpu\",\"type\":\"string\"},{\"name\":\"platform_name\",\"type\":\"string\"},{\"name\":\"hostname\",\"type\":\"string\"},{\"name\":\"is_ci_worker\",\"type\":\"bool\"},{\"name\":\"configuration_mnemonic\",\"type\":\"string\"},{\"name\":\"num_fetches\",\"type\":\"int64\"},{\"name\":\"profile_name\",\"type\":\"string\"}]},{\"id\":\"BazelInvocationProblem\",\"fields\":[{\"name\":\"problem_type\",\"type\":\"string\"},{\"name\":\"label\",\"type\":\"string\"},{\"name\":\"bep_events\",\"type\":\"json.RawMessage\"}]},{\"id\":\"Blob\",\"fields\":[{\"name\":\"uri\",\"type\":\"string\"},{\"name\":\"size_bytes\",\"type\":\"int64\"},{\"name\":\"archiving_status\",\"type\":\"blob.ArchivingStatus\"},{\"name\":\"reason\",\"type\":\"string\"},{\"name\":\"archive_url\",\"type\":\"string\"}]},{\"id\":\"Build\",\"fields\":[{\"name\":\"build_url\",\"type\":\"string\"},{\"name\":\"build_uuid\",\"type\":\"uuid.UUID\"},{\"name\":\"env\",\"type\":\"map[string]string\"}]},{\"id\":\"BuildGraphMetrics\",\"fields\":[{\"name\":\"action_lookup_value_count\",\"type\":\"int32\"},{\"name\":\"action_lookup_value_count_not_including_aspects\",\"type\":\"int32\"},{\"name\":\"action_count\",\"type\":\"int32\"},{\"name\":\"action_count_not_including_aspects\",\"type\":\"int32\"},{\"name\":\"input_file_configured_target_count\",\"type\":\"int32\"},{\"name\":\"output_file_configured_target_count\",\"type\":\"int32\"},{\"name\":\"other_configured_target_count\",\"type\":\"int32\"},{\"name\":\"output_artifact_count\",\"type\":\"int32\"},{\"name\":\"post_invocation_skyframe_node_count\",\"type\":\"int32\"}]},{\"id\":\"CumulativeMetrics\",\"fields\":[{\"name\":\"num_analyses\",\"type\":\"int32\"},{\"name\":\"num_builds\",\"type\":\"int32\"}]},{\"id\":\"DynamicExecutionMetrics\",\"fields\":null},{\"id\":\"EvaluationStat\",\"fields\":[{\"name\":\"skyfunction_name\",\"type\":\"string\"},{\"name\":\"count\",\"type\":\"int64\"}]},{\"id\":\"EventFile\",\"fields\":[{\"name\":\"url\",\"type\":\"string\"},{\"name\":\"mod_time\",\"type\":\"time.Time\"},{\"name\":\"protocol\",\"type\":\"string\"},{\"name\":\"mime_type\",\"type\":\"string\"},{\"name\":\"status\",\"type\":\"string\"},{\"name\":\"reason\",\"type\":\"string\"}]},{\"id\":\"ExectionInfo\",\"fields\":[{\"name\":\"timeout_seconds\",\"type\":\"int32\"},{\"name\":\"strategy\",\"type\":\"string\"},{\"name\":\"cached_remotely\",\"type\":\"bool\"},{\"name\":\"exit_code\",\"type\":\"int32\"},{\"name\":\"hostname\",\"type\":\"string\"}]},{\"id\":\"FilesMetric\",\"fields\":[{\"name\":\"size_in_bytes\",\"type\":\"int64\"},{\"name\":\"count\",\"type\":\"int32\"}]},{\"id\":\"GarbageMetrics\",\"fields\":[{\"name\":\"type\",\"type\":\"string\"},{\"name\":\"garbage_collected\",\"type\":\"int64\"}]},{\"id\":\"MemoryMetrics\",\"fields\":[{\"name\":\"peak_post_gc_heap_size\",\"type\":\"int64\"},{\"name\":\"used_heap_size_post_build\",\"type\":\"int64\"},{\"name\":\"peak_post_gc_tenured_space_heap_size\",\"type\":\"int64\"}]},{\"id\":\"Metrics\",\"fields\":null},{\"id\":\"MissDetail\",\"fields\":[{\"name\":\"reason\",\"type\":\"missdetail.Reason\"},{\"name\":\"count\",\"type\":\"int32\"}]},{\"id\":\"NamedSetOfFiles\",\"fields\":null},{\"id\":\"NetworkMetrics\",\"fields\":null},{\"id\":\"OutputGroup\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"incomplete\",\"type\":\"bool\"}]},{\"id\":\"PackageLoadMetrics\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"load_duration\",\"type\":\"int64\"},{\"name\":\"num_targets\",\"type\":\"uint64\"},{\"name\":\"computation_steps\",\"type\":\"uint64\"},{\"name\":\"num_transitive_loads\",\"type\":\"uint64\"},{\"name\":\"package_overhead\",\"type\":\"uint64\"}]},{\"id\":\"PackageMetrics\",\"fields\":[{\"name\":\"packages_loaded\",\"type\":\"int64\"}]},{\"id\":\"RaceStatistics\",\"fields\":[{\"name\":\"mnemonic\",\"type\":\"string\"},{\"name\":\"local_runner\",\"type\":\"string\"},{\"name\":\"remote_runner\",\"type\":\"string\"},{\"name\":\"local_wins\",\"type\":\"int64\"},{\"name\":\"renote_wins\",\"type\":\"int64\"}]},{\"id\":\"ResourceUsage\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"value\",\"type\":\"string\"}]},{\"id\":\"RunnerCount\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"exec_kind\",\"type\":\"string\"},{\"name\":\"actions_executed\",\"type\":\"int64\"}]},{\"id\":\"SourceControl\",\"fields\":[{\"name\":\"repo_url\",\"type\":\"string\"},{\"name\":\"branch\",\"type\":\"string\"},{\"name\":\"commit_sha\",\"type\":\"string\"},{\"name\":\"actor\",\"type\":\"string\"},{\"name\":\"refs\",\"type\":\"string\"},{\"name\":\"run_id\",\"type\":\"string\"},{\"name\":\"workflow\",\"type\":\"string\"},{\"name\":\"action\",\"type\":\"string\"},{\"name\":\"workspace\",\"type\":\"string\"},{\"name\":\"event_name\",\"type\":\"string\"},{\"name\":\"job\",\"type\":\"string\"},{\"name\":\"runner_name\",\"type\":\"string\"},{\"name\":\"runner_arch\",\"type\":\"string\"},{\"name\":\"runner_os\",\"type\":\"string\"}]},{\"id\":\"SystemNetworkStats\",\"fields\":[{\"name\":\"bytes_sent\",\"type\":\"uint64\"},{\"name\":\"bytes_recv\",\"type\":\"uint64\"},{\"name\":\"packets_sent\",\"type\":\"uint64\"},{\"name\":\"packets_recv\",\"type\":\"uint64\"},{\"name\":\"peak_bytes_sent_per_sec\",\"type\":\"uint64\"},{\"name\":\"peak_bytes_recv_per_sec\",\"type\":\"uint64\"},{\"name\":\"peak_packets_sent_per_sec\",\"type\":\"uint64\"},{\"name\":\"peak_packets_recv_per_sec\",\"type\":\"uint64\"}]},{\"id\":\"TargetComplete\",\"fields\":[{\"name\":\"success\",\"type\":\"bool\"},{\"name\":\"tag\",\"type\":\"[]string\"},{\"name\":\"target_kind\",\"type\":\"string\"},{\"name\":\"end_time_in_ms\",\"type\":\"int64\"},{\"name\":\"test_timeout_seconds\",\"type\":\"int64\"},{\"name\":\"test_timeout\",\"type\":\"int64\"},{\"name\":\"test_size\",\"type\":\"targetcomplete.TestSize\"}]},{\"id\":\"TargetConfigured\",\"fields\":[{\"name\":\"tag\",\"type\":\"[]string\"},{\"name\":\"target_kind\",\"type\":\"string\"},{\"name\":\"start_time_in_ms\",\"type\":\"int64\"},{\"name\":\"test_size\",\"type\":\"targetconfigured.TestSize\"}]},{\"id\":\"TargetMetrics\",\"fields\":[{\"name\":\"targets_loaded\",\"type\":\"int64\"},{\"name\":\"targets_configured\",\"type\":\"int64\"},{\"name\":\"targets_configured_not_including_aspects\",\"type\":\"int64\"}]},{\"id\":\"TargetPair\",\"fields\":[{\"name\":\"label\",\"type\":\"string\"},{\"name\":\"duration_in_ms\",\"type\":\"int64\"},{\"name\":\"success\",\"type\":\"bool\"},{\"name\":\"target_kind\",\"type\":\"string\"},{\"name\":\"test_size\",\"type\":\"targetpair.TestSize\"},{\"name\":\"abort_reason\",\"type\":\"targetpair.AbortReason\"}]},{\"id\":\"TestCollection\",\"fields\":[{\"name\":\"label\",\"type\":\"string\"},{\"name\":\"overall_status\",\"type\":\"testcollection.OverallStatus\"},{\"name\":\"strategy\",\"type\":\"string\"},{\"name\":\"cached_locally\",\"type\":\"bool\"},{\"name\":\"cached_remotely\",\"type\":\"bool\"},{\"name\":\"first_seen\",\"type\":\"time.Time\"},{\"name\":\"duration_ms\",\"type\":\"int64\"}]},{\"id\":\"TestFile\",\"fields\":[{\"name\":\"digest\",\"type\":\"string\"},{\"name\":\"file\",\"type\":\"string\"},{\"name\":\"length\",\"type\":\"int64\"},{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"prefix\",\"type\":\"[]string\"}]},{\"id\":\"TestResultBES\",\"fields\":[{\"name\":\"test_status\",\"type\":\"testresultbes.TestStatus\"},{\"name\":\"status_details\",\"type\":\"string\"},{\"name\":\"label\",\"type\":\"string\"},{\"name\":\"warning\",\"type\":\"[]string\"},{\"name\":\"cached_locally\",\"type\":\"bool\"},{\"name\":\"test_attempt_start_millis_epoch\",\"type\":\"int64\"},{\"name\":\"test_attempt_start\",\"type\":\"string\"},{\"name\":\"test_attempt_duration_millis\",\"type\":\"int64\"},{\"name\":\"test_attempt_duration\",\"type\":\"int64\"}]},{\"id\":\"TestSummary\",\"fields\":[{\"name\":\"overall_status\",\"type\":\"testsummary.OverallStatus\"},{\"name\":\"total_run_count\",\"type\":\"int32\"},{\"name\":\"run_count\",\"type\":\"int32\"},{\"name\":\"attempt_count\",\"type\":\"int32\"},{\"name\":\"shard_count\",\"type\":\"int32\"},{\"name\":\"total_num_cached\",\"type\":\"int32\"},{\"name\":\"first_start_time\",\"type\":\"int64\"},{\"name\":\"last_stop_time\",\"type\":\"int64\"},{\"name\":\"total_run_duration\",\"type\":\"int64\"},{\"name\":\"label\",\"type\":\"string\"}]},{\"id\":\"TimingBreakdown\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"time\",\"type\":\"string\"}]},{\"id\":\"TimingChild\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"time\",\"type\":\"string\"}]},{\"id\":\"TimingMetrics\",\"fields\":[{\"name\":\"cpu_time_in_ms\",\"type\":\"int64\"},{\"name\":\"wall_time_in_ms\",\"type\":\"int64\"},{\"name\":\"analysis_phase_time_in_ms\",\"type\":\"int64\"},{\"name\":\"execution_phase_time_in_ms\",\"type\":\"int64\"},{\"name\":\"actions_execution_start_in_ms\",\"type\":\"int64\"}]}],\"edges\":[{\"from\":\"ActionCacheStatistics\",\"to\":\"MissDetail\",\"label\":\"miss_details\"},{\"from\":\"ActionSummary\",\"to\":\"ActionData\",\"label\":\"action_data\"},{\"from\":\"ActionSummary\",\"to\":\"RunnerCount\",\"label\":\"runner_count\"},{\"from\":\"ActionSummary\",\"to\":\"ActionCacheStatistics\",\"label\":\"action_cache_statistics\"},{\"from\":\"ArtifactMetrics\",\"to\":\"FilesMetric\",\"label\":\"source_artifacts_read\"},{\"from\":\"ArtifactMetrics\",\"to\":\"FilesMetric\",\"label\":\"output_artifacts_seen\"},{\"from\":\"ArtifactMetrics\",\"to\":\"FilesMetric\",\"label\":\"output_artifacts_from_action_cache\"},{\"from\":\"ArtifactMetrics\",\"to\":\"FilesMetric\",\"label\":\"top_level_artifacts\"},{\"from\":\"BazelInvocation\",\"to\":\"BazelInvocationProblem\",\"label\":\"problems\"},{\"from\":\"BazelInvocation\",\"to\":\"Metrics\",\"label\":\"metrics\"},{\"from\":\"BazelInvocation\",\"to\":\"TestCollection\",\"label\":\"test_collection\"},{\"from\":\"BazelInvocation\",\"to\":\"TargetPair\",\"label\":\"targets\"},{\"from\":\"BazelInvocation\",\"to\":\"SourceControl\",\"label\":\"source_control\"},{\"from\":\"Build\",\"to\":\"BazelInvocation\",\"label\":\"invocations\"},{\"from\":\"BuildGraphMetrics\",\"to\":\"EvaluationStat\",\"label\":\"dirtied_values\"},{\"from\":\"BuildGraphMetrics\",\"to\":\"EvaluationStat\",\"label\":\"changed_values\"},{\"from\":\"BuildGraphMetrics\",\"to\":\"EvaluationStat\",\"label\":\"built_values\"},{\"from\":\"BuildGraphMetrics\",\"to\":\"EvaluationStat\",\"label\":\"cleaned_values\"},{\"from\":\"BuildGraphMetrics\",\"to\":\"EvaluationStat\",\"label\":\"evaluated_values\"},{\"from\":\"DynamicExecutionMetrics\",\"to\":\"RaceStatistics\",\"label\":\"race_statistics\"},{\"from\":\"EventFile\",\"to\":\"BazelInvocation\",\"label\":\"bazel_invocation\"},{\"from\":\"ExectionInfo\",\"to\":\"TimingBreakdown\",\"label\":\"timing_breakdown\"},{\"from\":\"ExectionInfo\",\"to\":\"ResourceUsage\",\"label\":\"resource_usage\"},{\"from\":\"MemoryMetrics\",\"to\":\"GarbageMetrics\",\"label\":\"garbage_metrics\"},{\"from\":\"Metrics\",\"to\":\"ActionSummary\",\"label\":\"action_summary\"},{\"from\":\"Metrics\",\"to\":\"MemoryMetrics\",\"label\":\"memory_metrics\"},{\"from\":\"Metrics\",\"to\":\"TargetMetrics\",\"label\":\"target_metrics\"},{\"from\":\"Metrics\",\"to\":\"PackageMetrics\",\"label\":\"package_metrics\"},{\"from\":\"Metrics\",\"to\":\"TimingMetrics\",\"label\":\"timing_metrics\"},{\"from\":\"Metrics\",\"to\":\"CumulativeMetrics\",\"label\":\"cumulative_metrics\"},{\"from\":\"Metrics\",\"to\":\"ArtifactMetrics\",\"label\":\"artifact_metrics\"},{\"from\":\"Metrics\",\"to\":\"NetworkMetrics\",\"label\":\"network_metrics\"},{\"from\":\"Metrics\",\"to\":\"DynamicExecutionMetrics\",\"label\":\"dynamic_execution_metrics\"},{\"from\":\"Metrics\",\"to\":\"BuildGraphMetrics\",\"label\":\"build_graph_metrics\"},{\"from\":\"NamedSetOfFiles\",\"to\":\"TestFile\",\"label\":\"files\"},{\"from\":\"NamedSetOfFiles\",\"to\":\"NamedSetOfFiles\",\"label\":\"file_sets\"},{\"from\":\"NetworkMetrics\",\"to\":\"SystemNetworkStats\",\"label\":\"system_network_stats\"},{\"from\":\"OutputGroup\",\"to\":\"TestFile\",\"label\":\"inline_files\"},{\"from\":\"OutputGroup\",\"to\":\"NamedSetOfFiles\",\"label\":\"file_sets\"},{\"from\":\"PackageMetrics\",\"to\":\"PackageLoadMetrics\",\"label\":\"package_load_metrics\"},{\"from\":\"TargetComplete\",\"to\":\"TestFile\",\"label\":\"important_output\"},{\"from\":\"TargetComplete\",\"to\":\"TestFile\",\"label\":\"directory_output\"},{\"from\":\"TargetComplete\",\"to\":\"OutputGroup\",\"label\":\"output_group\"},{\"from\":\"TargetPair\",\"to\":\"TargetConfigured\",\"label\":\"configuration\"},{\"from\":\"TargetPair\",\"to\":\"TargetComplete\",\"label\":\"completion\"},{\"from\":\"TestCollection\",\"to\":\"TestSummary\",\"label\":\"test_summary\"},{\"from\":\"TestCollection\",\"to\":\"TestResultBES\",\"label\":\"test_results\"},{\"from\":\"TestResultBES\",\"to\":\"TestFile\",\"label\":\"test_action_output\"},{\"from\":\"TestResultBES\",\"to\":\"ExectionInfo\",\"label\":\"execution_info\"},{\"from\":\"TestSummary\",\"to\":\"TestFile\",\"label\":\"passed\"},{\"from\":\"TestSummary\",\"to\":\"TestFile\",\"label\":\"failed\"},{\"from\":\"TimingBreakdown\",\"to\":\"TimingChild\",\"label\":\"child\"}]}"); + const entGraph = JSON.parse("{\"nodes\":[{\"id\":\"ActionCacheStatistics\",\"fields\":[{\"name\":\"size_in_bytes\",\"type\":\"uint64\"},{\"name\":\"save_time_in_ms\",\"type\":\"uint64\"},{\"name\":\"load_time_in_ms\",\"type\":\"int64\"},{\"name\":\"hits\",\"type\":\"int32\"},{\"name\":\"misses\",\"type\":\"int32\"}]},{\"id\":\"ActionData\",\"fields\":[{\"name\":\"mnemonic\",\"type\":\"string\"},{\"name\":\"actions_executed\",\"type\":\"int64\"},{\"name\":\"actions_created\",\"type\":\"int64\"},{\"name\":\"first_started_ms\",\"type\":\"int64\"},{\"name\":\"last_ended_ms\",\"type\":\"int64\"},{\"name\":\"system_time\",\"type\":\"int64\"},{\"name\":\"user_time\",\"type\":\"int64\"}]},{\"id\":\"ActionSummary\",\"fields\":[{\"name\":\"actions_created\",\"type\":\"int64\"},{\"name\":\"actions_created_not_including_aspects\",\"type\":\"int64\"},{\"name\":\"actions_executed\",\"type\":\"int64\"},{\"name\":\"remote_cache_hits\",\"type\":\"int64\"}]},{\"id\":\"ArtifactMetrics\",\"fields\":null},{\"id\":\"BazelInvocation\",\"fields\":[{\"name\":\"invocation_id\",\"type\":\"uuid.UUID\"},{\"name\":\"started_at\",\"type\":\"time.Time\"},{\"name\":\"ended_at\",\"type\":\"time.Time\"},{\"name\":\"change_number\",\"type\":\"int\"},{\"name\":\"patchset_number\",\"type\":\"int\"},{\"name\":\"summary\",\"type\":\"summary.InvocationSummary\"},{\"name\":\"bep_completed\",\"type\":\"bool\"},{\"name\":\"step_label\",\"type\":\"string\"},{\"name\":\"related_files\",\"type\":\"map[string]string\"},{\"name\":\"user_email\",\"type\":\"string\"},{\"name\":\"user_ldap\",\"type\":\"string\"},{\"name\":\"build_logs\",\"type\":\"string\"},{\"name\":\"cpu\",\"type\":\"string\"},{\"name\":\"platform_name\",\"type\":\"string\"},{\"name\":\"hostname\",\"type\":\"string\"},{\"name\":\"is_ci_worker\",\"type\":\"bool\"},{\"name\":\"configuration_mnemonic\",\"type\":\"string\"},{\"name\":\"num_fetches\",\"type\":\"int64\"},{\"name\":\"profile_name\",\"type\":\"string\"}]},{\"id\":\"BazelInvocationProblem\",\"fields\":[{\"name\":\"problem_type\",\"type\":\"string\"},{\"name\":\"label\",\"type\":\"string\"},{\"name\":\"bep_events\",\"type\":\"json.RawMessage\"}]},{\"id\":\"Blob\",\"fields\":[{\"name\":\"uri\",\"type\":\"string\"},{\"name\":\"size_bytes\",\"type\":\"int64\"},{\"name\":\"archiving_status\",\"type\":\"blob.ArchivingStatus\"},{\"name\":\"reason\",\"type\":\"string\"},{\"name\":\"archive_url\",\"type\":\"string\"}]},{\"id\":\"Build\",\"fields\":[{\"name\":\"build_url\",\"type\":\"string\"},{\"name\":\"build_uuid\",\"type\":\"uuid.UUID\"},{\"name\":\"env\",\"type\":\"map[string]string\"},{\"name\":\"timestamp\",\"type\":\"time.Time\"}]},{\"id\":\"BuildGraphMetrics\",\"fields\":[{\"name\":\"action_lookup_value_count\",\"type\":\"int32\"},{\"name\":\"action_lookup_value_count_not_including_aspects\",\"type\":\"int32\"},{\"name\":\"action_count\",\"type\":\"int32\"},{\"name\":\"action_count_not_including_aspects\",\"type\":\"int32\"},{\"name\":\"input_file_configured_target_count\",\"type\":\"int32\"},{\"name\":\"output_file_configured_target_count\",\"type\":\"int32\"},{\"name\":\"other_configured_target_count\",\"type\":\"int32\"},{\"name\":\"output_artifact_count\",\"type\":\"int32\"},{\"name\":\"post_invocation_skyframe_node_count\",\"type\":\"int32\"}]},{\"id\":\"CumulativeMetrics\",\"fields\":[{\"name\":\"num_analyses\",\"type\":\"int32\"},{\"name\":\"num_builds\",\"type\":\"int32\"}]},{\"id\":\"DynamicExecutionMetrics\",\"fields\":null},{\"id\":\"EvaluationStat\",\"fields\":[{\"name\":\"skyfunction_name\",\"type\":\"string\"},{\"name\":\"count\",\"type\":\"int64\"}]},{\"id\":\"EventFile\",\"fields\":[{\"name\":\"url\",\"type\":\"string\"},{\"name\":\"mod_time\",\"type\":\"time.Time\"},{\"name\":\"protocol\",\"type\":\"string\"},{\"name\":\"mime_type\",\"type\":\"string\"},{\"name\":\"status\",\"type\":\"string\"},{\"name\":\"reason\",\"type\":\"string\"}]},{\"id\":\"ExectionInfo\",\"fields\":[{\"name\":\"timeout_seconds\",\"type\":\"int32\"},{\"name\":\"strategy\",\"type\":\"string\"},{\"name\":\"cached_remotely\",\"type\":\"bool\"},{\"name\":\"exit_code\",\"type\":\"int32\"},{\"name\":\"hostname\",\"type\":\"string\"}]},{\"id\":\"FilesMetric\",\"fields\":[{\"name\":\"size_in_bytes\",\"type\":\"int64\"},{\"name\":\"count\",\"type\":\"int32\"}]},{\"id\":\"GarbageMetrics\",\"fields\":[{\"name\":\"type\",\"type\":\"string\"},{\"name\":\"garbage_collected\",\"type\":\"int64\"}]},{\"id\":\"MemoryMetrics\",\"fields\":[{\"name\":\"peak_post_gc_heap_size\",\"type\":\"int64\"},{\"name\":\"used_heap_size_post_build\",\"type\":\"int64\"},{\"name\":\"peak_post_gc_tenured_space_heap_size\",\"type\":\"int64\"}]},{\"id\":\"Metrics\",\"fields\":null},{\"id\":\"MissDetail\",\"fields\":[{\"name\":\"reason\",\"type\":\"missdetail.Reason\"},{\"name\":\"count\",\"type\":\"int32\"}]},{\"id\":\"NamedSetOfFiles\",\"fields\":null},{\"id\":\"NetworkMetrics\",\"fields\":null},{\"id\":\"OutputGroup\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"incomplete\",\"type\":\"bool\"}]},{\"id\":\"PackageLoadMetrics\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"load_duration\",\"type\":\"int64\"},{\"name\":\"num_targets\",\"type\":\"uint64\"},{\"name\":\"computation_steps\",\"type\":\"uint64\"},{\"name\":\"num_transitive_loads\",\"type\":\"uint64\"},{\"name\":\"package_overhead\",\"type\":\"uint64\"}]},{\"id\":\"PackageMetrics\",\"fields\":[{\"name\":\"packages_loaded\",\"type\":\"int64\"}]},{\"id\":\"RaceStatistics\",\"fields\":[{\"name\":\"mnemonic\",\"type\":\"string\"},{\"name\":\"local_runner\",\"type\":\"string\"},{\"name\":\"remote_runner\",\"type\":\"string\"},{\"name\":\"local_wins\",\"type\":\"int64\"},{\"name\":\"renote_wins\",\"type\":\"int64\"}]},{\"id\":\"ResourceUsage\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"value\",\"type\":\"string\"}]},{\"id\":\"RunnerCount\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"exec_kind\",\"type\":\"string\"},{\"name\":\"actions_executed\",\"type\":\"int64\"}]},{\"id\":\"SourceControl\",\"fields\":[{\"name\":\"repo_url\",\"type\":\"string\"},{\"name\":\"branch\",\"type\":\"string\"},{\"name\":\"commit_sha\",\"type\":\"string\"},{\"name\":\"actor\",\"type\":\"string\"},{\"name\":\"refs\",\"type\":\"string\"},{\"name\":\"run_id\",\"type\":\"string\"},{\"name\":\"workflow\",\"type\":\"string\"},{\"name\":\"action\",\"type\":\"string\"},{\"name\":\"workspace\",\"type\":\"string\"},{\"name\":\"event_name\",\"type\":\"string\"},{\"name\":\"job\",\"type\":\"string\"},{\"name\":\"runner_name\",\"type\":\"string\"},{\"name\":\"runner_arch\",\"type\":\"string\"},{\"name\":\"runner_os\",\"type\":\"string\"}]},{\"id\":\"SystemNetworkStats\",\"fields\":[{\"name\":\"bytes_sent\",\"type\":\"uint64\"},{\"name\":\"bytes_recv\",\"type\":\"uint64\"},{\"name\":\"packets_sent\",\"type\":\"uint64\"},{\"name\":\"packets_recv\",\"type\":\"uint64\"},{\"name\":\"peak_bytes_sent_per_sec\",\"type\":\"uint64\"},{\"name\":\"peak_bytes_recv_per_sec\",\"type\":\"uint64\"},{\"name\":\"peak_packets_sent_per_sec\",\"type\":\"uint64\"},{\"name\":\"peak_packets_recv_per_sec\",\"type\":\"uint64\"}]},{\"id\":\"TargetComplete\",\"fields\":[{\"name\":\"success\",\"type\":\"bool\"},{\"name\":\"tag\",\"type\":\"[]string\"},{\"name\":\"target_kind\",\"type\":\"string\"},{\"name\":\"end_time_in_ms\",\"type\":\"int64\"},{\"name\":\"test_timeout_seconds\",\"type\":\"int64\"},{\"name\":\"test_timeout\",\"type\":\"int64\"},{\"name\":\"test_size\",\"type\":\"targetcomplete.TestSize\"}]},{\"id\":\"TargetConfigured\",\"fields\":[{\"name\":\"tag\",\"type\":\"[]string\"},{\"name\":\"target_kind\",\"type\":\"string\"},{\"name\":\"start_time_in_ms\",\"type\":\"int64\"},{\"name\":\"test_size\",\"type\":\"targetconfigured.TestSize\"}]},{\"id\":\"TargetMetrics\",\"fields\":[{\"name\":\"targets_loaded\",\"type\":\"int64\"},{\"name\":\"targets_configured\",\"type\":\"int64\"},{\"name\":\"targets_configured_not_including_aspects\",\"type\":\"int64\"}]},{\"id\":\"TargetPair\",\"fields\":[{\"name\":\"label\",\"type\":\"string\"},{\"name\":\"duration_in_ms\",\"type\":\"int64\"},{\"name\":\"success\",\"type\":\"bool\"},{\"name\":\"target_kind\",\"type\":\"string\"},{\"name\":\"test_size\",\"type\":\"targetpair.TestSize\"},{\"name\":\"abort_reason\",\"type\":\"targetpair.AbortReason\"}]},{\"id\":\"TestCollection\",\"fields\":[{\"name\":\"label\",\"type\":\"string\"},{\"name\":\"overall_status\",\"type\":\"testcollection.OverallStatus\"},{\"name\":\"strategy\",\"type\":\"string\"},{\"name\":\"cached_locally\",\"type\":\"bool\"},{\"name\":\"cached_remotely\",\"type\":\"bool\"},{\"name\":\"first_seen\",\"type\":\"time.Time\"},{\"name\":\"duration_ms\",\"type\":\"int64\"}]},{\"id\":\"TestFile\",\"fields\":[{\"name\":\"digest\",\"type\":\"string\"},{\"name\":\"file\",\"type\":\"string\"},{\"name\":\"length\",\"type\":\"int64\"},{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"prefix\",\"type\":\"[]string\"}]},{\"id\":\"TestResultBES\",\"fields\":[{\"name\":\"test_status\",\"type\":\"testresultbes.TestStatus\"},{\"name\":\"status_details\",\"type\":\"string\"},{\"name\":\"label\",\"type\":\"string\"},{\"name\":\"warning\",\"type\":\"[]string\"},{\"name\":\"cached_locally\",\"type\":\"bool\"},{\"name\":\"test_attempt_start_millis_epoch\",\"type\":\"int64\"},{\"name\":\"test_attempt_start\",\"type\":\"string\"},{\"name\":\"test_attempt_duration_millis\",\"type\":\"int64\"},{\"name\":\"test_attempt_duration\",\"type\":\"int64\"}]},{\"id\":\"TestSummary\",\"fields\":[{\"name\":\"overall_status\",\"type\":\"testsummary.OverallStatus\"},{\"name\":\"total_run_count\",\"type\":\"int32\"},{\"name\":\"run_count\",\"type\":\"int32\"},{\"name\":\"attempt_count\",\"type\":\"int32\"},{\"name\":\"shard_count\",\"type\":\"int32\"},{\"name\":\"total_num_cached\",\"type\":\"int32\"},{\"name\":\"first_start_time\",\"type\":\"int64\"},{\"name\":\"last_stop_time\",\"type\":\"int64\"},{\"name\":\"total_run_duration\",\"type\":\"int64\"},{\"name\":\"label\",\"type\":\"string\"}]},{\"id\":\"TimingBreakdown\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"time\",\"type\":\"string\"}]},{\"id\":\"TimingChild\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"time\",\"type\":\"string\"}]},{\"id\":\"TimingMetrics\",\"fields\":[{\"name\":\"cpu_time_in_ms\",\"type\":\"int64\"},{\"name\":\"wall_time_in_ms\",\"type\":\"int64\"},{\"name\":\"analysis_phase_time_in_ms\",\"type\":\"int64\"},{\"name\":\"execution_phase_time_in_ms\",\"type\":\"int64\"},{\"name\":\"actions_execution_start_in_ms\",\"type\":\"int64\"}]}],\"edges\":[{\"from\":\"ActionCacheStatistics\",\"to\":\"MissDetail\",\"label\":\"miss_details\"},{\"from\":\"ActionSummary\",\"to\":\"ActionData\",\"label\":\"action_data\"},{\"from\":\"ActionSummary\",\"to\":\"RunnerCount\",\"label\":\"runner_count\"},{\"from\":\"ActionSummary\",\"to\":\"ActionCacheStatistics\",\"label\":\"action_cache_statistics\"},{\"from\":\"ArtifactMetrics\",\"to\":\"FilesMetric\",\"label\":\"source_artifacts_read\"},{\"from\":\"ArtifactMetrics\",\"to\":\"FilesMetric\",\"label\":\"output_artifacts_seen\"},{\"from\":\"ArtifactMetrics\",\"to\":\"FilesMetric\",\"label\":\"output_artifacts_from_action_cache\"},{\"from\":\"ArtifactMetrics\",\"to\":\"FilesMetric\",\"label\":\"top_level_artifacts\"},{\"from\":\"BazelInvocation\",\"to\":\"BazelInvocationProblem\",\"label\":\"problems\"},{\"from\":\"BazelInvocation\",\"to\":\"Metrics\",\"label\":\"metrics\"},{\"from\":\"BazelInvocation\",\"to\":\"TestCollection\",\"label\":\"test_collection\"},{\"from\":\"BazelInvocation\",\"to\":\"TargetPair\",\"label\":\"targets\"},{\"from\":\"BazelInvocation\",\"to\":\"SourceControl\",\"label\":\"source_control\"},{\"from\":\"Build\",\"to\":\"BazelInvocation\",\"label\":\"invocations\"},{\"from\":\"BuildGraphMetrics\",\"to\":\"EvaluationStat\",\"label\":\"dirtied_values\"},{\"from\":\"BuildGraphMetrics\",\"to\":\"EvaluationStat\",\"label\":\"changed_values\"},{\"from\":\"BuildGraphMetrics\",\"to\":\"EvaluationStat\",\"label\":\"built_values\"},{\"from\":\"BuildGraphMetrics\",\"to\":\"EvaluationStat\",\"label\":\"cleaned_values\"},{\"from\":\"BuildGraphMetrics\",\"to\":\"EvaluationStat\",\"label\":\"evaluated_values\"},{\"from\":\"DynamicExecutionMetrics\",\"to\":\"RaceStatistics\",\"label\":\"race_statistics\"},{\"from\":\"EventFile\",\"to\":\"BazelInvocation\",\"label\":\"bazel_invocation\"},{\"from\":\"ExectionInfo\",\"to\":\"TimingBreakdown\",\"label\":\"timing_breakdown\"},{\"from\":\"ExectionInfo\",\"to\":\"ResourceUsage\",\"label\":\"resource_usage\"},{\"from\":\"MemoryMetrics\",\"to\":\"GarbageMetrics\",\"label\":\"garbage_metrics\"},{\"from\":\"Metrics\",\"to\":\"ActionSummary\",\"label\":\"action_summary\"},{\"from\":\"Metrics\",\"to\":\"MemoryMetrics\",\"label\":\"memory_metrics\"},{\"from\":\"Metrics\",\"to\":\"TargetMetrics\",\"label\":\"target_metrics\"},{\"from\":\"Metrics\",\"to\":\"PackageMetrics\",\"label\":\"package_metrics\"},{\"from\":\"Metrics\",\"to\":\"TimingMetrics\",\"label\":\"timing_metrics\"},{\"from\":\"Metrics\",\"to\":\"CumulativeMetrics\",\"label\":\"cumulative_metrics\"},{\"from\":\"Metrics\",\"to\":\"ArtifactMetrics\",\"label\":\"artifact_metrics\"},{\"from\":\"Metrics\",\"to\":\"NetworkMetrics\",\"label\":\"network_metrics\"},{\"from\":\"Metrics\",\"to\":\"DynamicExecutionMetrics\",\"label\":\"dynamic_execution_metrics\"},{\"from\":\"Metrics\",\"to\":\"BuildGraphMetrics\",\"label\":\"build_graph_metrics\"},{\"from\":\"NamedSetOfFiles\",\"to\":\"TestFile\",\"label\":\"files\"},{\"from\":\"NamedSetOfFiles\",\"to\":\"NamedSetOfFiles\",\"label\":\"file_sets\"},{\"from\":\"NetworkMetrics\",\"to\":\"SystemNetworkStats\",\"label\":\"system_network_stats\"},{\"from\":\"OutputGroup\",\"to\":\"TestFile\",\"label\":\"inline_files\"},{\"from\":\"OutputGroup\",\"to\":\"NamedSetOfFiles\",\"label\":\"file_sets\"},{\"from\":\"PackageMetrics\",\"to\":\"PackageLoadMetrics\",\"label\":\"package_load_metrics\"},{\"from\":\"TargetComplete\",\"to\":\"TestFile\",\"label\":\"important_output\"},{\"from\":\"TargetComplete\",\"to\":\"TestFile\",\"label\":\"directory_output\"},{\"from\":\"TargetComplete\",\"to\":\"OutputGroup\",\"label\":\"output_group\"},{\"from\":\"TargetPair\",\"to\":\"TargetConfigured\",\"label\":\"configuration\"},{\"from\":\"TargetPair\",\"to\":\"TargetComplete\",\"label\":\"completion\"},{\"from\":\"TestCollection\",\"to\":\"TestSummary\",\"label\":\"test_summary\"},{\"from\":\"TestCollection\",\"to\":\"TestResultBES\",\"label\":\"test_results\"},{\"from\":\"TestResultBES\",\"to\":\"TestFile\",\"label\":\"test_action_output\"},{\"from\":\"TestResultBES\",\"to\":\"ExectionInfo\",\"label\":\"execution_info\"},{\"from\":\"TestSummary\",\"to\":\"TestFile\",\"label\":\"passed\"},{\"from\":\"TestSummary\",\"to\":\"TestFile\",\"label\":\"failed\"},{\"from\":\"TimingBreakdown\",\"to\":\"TimingChild\",\"label\":\"child\"}]}"); const nodes = new vis.DataSet((entGraph.nodes || []).map(n => ({ id: n.id, diff --git a/ent/schema/build.go b/ent/schema/build.go index 0de8ec9..e17d5fc 100644 --- a/ent/schema/build.go +++ b/ent/schema/build.go @@ -21,6 +21,7 @@ func (Build) Fields() []ent.Field { field.String("build_url").Unique().Immutable(), field.UUID("build_uuid", uuid.UUID{}).Unique().Immutable(), field.JSON("env", map[string]string{}).Annotations(entgql.Skip()), // NOTE: Uses custom resolver. + field.Time("timestamp").Optional(), } } diff --git a/frontend/src/app/builds/[buildUUID]/[[...slugs]]/index.graphql.ts b/frontend/src/app/builds/[buildUUID]/[[...slugs]]/index.graphql.ts index 070156d..da6b949 100644 --- a/frontend/src/app/builds/[buildUUID]/[[...slugs]]/index.graphql.ts +++ b/frontend/src/app/builds/[buildUUID]/[[...slugs]]/index.graphql.ts @@ -6,6 +6,7 @@ export const FIND_BUILD_BY_UUID_QUERY = gql(/* GraphQL */ ` id buildURL buildUUID + timestamp invocations { ...FullBazelInvocationDetails } diff --git a/frontend/src/app/builds/[buildUUID]/[[...slugs]]/layout.helpers.tsx b/frontend/src/app/builds/[buildUUID]/[[...slugs]]/layout.helpers.tsx index c17c142..25f59ff 100644 --- a/frontend/src/app/builds/[buildUUID]/[[...slugs]]/layout.helpers.tsx +++ b/frontend/src/app/builds/[buildUUID]/[[...slugs]]/layout.helpers.tsx @@ -30,7 +30,7 @@ const getBuildStepsMenuItems = ( return getItem({ depth: menuItemDepth, href: `${pathBase}/${encodeURIComponent(invocation.invocationID)}`, - title: invocation.invocationID, + title: invocation.stepLabel == "" ?invocation.invocationID : invocation.stepLabel, icon: , danger: invocation.state.exitCode?.name !== BuildStepResultEnum.SUCCESS, activeMenuItemRef, diff --git a/frontend/src/components/AppBar/index.module.css b/frontend/src/components/AppBar/index.module.css index 4538905..4c7ddce 100644 --- a/frontend/src/components/AppBar/index.module.css +++ b/frontend/src/components/AppBar/index.module.css @@ -64,4 +64,10 @@ .linkItem { /* empty style will override default behavior of hiding on smaller screen. */ +} + +.normalWeight { + font-weight: normal; + font-size-adjust: calc(.5); + padding-left: 10px; } \ No newline at end of file diff --git a/frontend/src/components/BazelInvocation/index.tsx b/frontend/src/components/BazelInvocation/index.tsx index dfeb515..241bdd7 100644 --- a/frontend/src/components/BazelInvocation/index.tsx +++ b/frontend/src/components/BazelInvocation/index.tsx @@ -58,6 +58,7 @@ import BuildProblems from "../Problems"; const BazelInvocation: React.FC<{ invocationOverview: BazelInvocationInfoFragment; isNestedWithinBuildCard?: boolean; + collapsed?: boolean }> = ({ invocationOverview, isNestedWithinBuildCard }) => { const { invocationID, @@ -75,7 +76,8 @@ const BazelInvocation: React.FC<{ configurationMnemonic, stepLabel, hostname, - isCiWorker + isCiWorker, + collapsed, //relatedFiles, } = invocationOverview; @@ -121,8 +123,8 @@ const BazelInvocation: React.FC<{ //build the title let { exitCode } = state; exitCode = exitCode ?? null; - const titleBits: React.ReactNode[] = [User: {user?.LDAP}]; - titleBits.push(Invocation: {invocationID}) + const titleBits: React.ReactNode[] = [User: {user?.LDAP}]; + titleBits.push(Invocation ID: {invocationID} ) titleBits.push( ) @@ -130,6 +132,20 @@ const BazelInvocation: React.FC<{ titleBits.push(); } + const extraBits: React.ReactNode[] = [ + , + ]; + + if (env('NEXT_PUBLIC_BROWSER_URL') && profile) { + var url = new URL(`blobs/sha256/file/${profile.digest}-${profile.sizeInBytes}/${profile.name}`, env('NEXT_PUBLIC_BROWSER_URL')) + extraBits.push( + + ); + } + + if (!isNestedWithinBuildCard && build?.buildUUID) { + extraBits.unshift(Build {build.buildUUID}); + } const hideTestsTab: boolean = (testCollection?.length ?? 0) == 0 const hideTargetsTab: boolean = (targetData?.length ?? 0) == 0 ? true : false @@ -330,21 +346,6 @@ const BazelInvocation: React.FC<{ } } - const extraBits: React.ReactNode[] = [ - , - ]; - - if (env('NEXT_PUBLIC_BROWSER_URL') && profile) { - var url = new URL(`blobs/sha256/file/${profile.digest}-${profile.sizeInBytes}/${profile.name}`, env('NEXT_PUBLIC_BROWSER_URL')) - extraBits.push( - - ); - } - - if (!isNestedWithinBuildCard && build?.buildUUID) { - extraBits.unshift(Build {build.buildUUID}); - } - return ( } titleBits={titleBits} extraBits={extraBits}> diff --git a/frontend/src/components/BazelInvocationsTable/Columns.tsx b/frontend/src/components/BazelInvocationsTable/Columns.tsx index df98ec1..d9d0994 100644 --- a/frontend/src/components/BazelInvocationsTable/Columns.tsx +++ b/frontend/src/components/BazelInvocationsTable/Columns.tsx @@ -28,7 +28,6 @@ const startedAtColumn: ColumnType = { key: 'startedAt', width: 165, title: 'Start Time', - sorter: (a, b) => dayjs(a.startedAt).isBefore(dayjs(b.startedAt)) == true ? 0 : 1, render: (_, record) => ( {dayjs(record.startedAt).format('YYYY-MM-DD hh:mm:ss A')} @@ -56,6 +55,46 @@ const statusColumn: ColumnType = { width: 120, title: 'Result', render: (_, record) => , + filterIcon: filtered => } filtered={filtered} />, + onFilter: (value, record) => record.state.exitCode?.name == value, + filters:[ + { + text: "Succeeded", + value: "SUCCESS", + }, + { + text: "Unstable", + value: "UNSTABLE", + }, + { + text: "Parsing Failed", + value: "PARSING_FAILURE", + }, + { + text: "Build Failed", + value: "BUILD_FAILURE", + }, + { + text: "Tests Failed", + value: "TESTS_FAILED", + }, + { + text: "Not Built", + value: "NOT_BUILT", + }, + { + text: "Aborted", + value: "ABORTED", + }, + { + text: "Interrupted", + value: "INTERRUPTED", + }, + { + text: "Status Unknown", + value: "UNKNOWN", + }, + ] }; const buildColumn: ColumnType = { @@ -74,7 +113,9 @@ const userColumn: ColumnType = { width: 120, title: "User", render: (_, record) => {record.user?.LDAP}, - + filterDropdown: filterProps => ( + + ), filterIcon: filtered => } filtered={filtered} />, } diff --git a/frontend/src/components/BazelInvocationsTable/index.tsx b/frontend/src/components/BazelInvocationsTable/index.tsx index 98f72ab..4f74241 100644 --- a/frontend/src/components/BazelInvocationsTable/index.tsx +++ b/frontend/src/components/BazelInvocationsTable/index.tsx @@ -50,6 +50,16 @@ const BazelInvocationsTable: React.FC = ({ height }) => { if (filters['build']?.length) { wheres.push({ hasBuildWith: [{ buildUUID: filters['build'][0].toString() }] }); } + if (filters["user"]?.length){ + wheres.push({ userLdapContains: filters['user'][0].toString() }); + } + + //TODO extend where inputs to allow querying by result + //for now, this is a filter performed on pre-fetched results + // if (filters['result']?.length) { + // wheres.push({ }) + // } + setVariables({ first: PAGE_SIZE, where: wheres.length ? { and: [...wheres] } : wheres[0], diff --git a/frontend/src/components/Build/index.tsx b/frontend/src/components/Build/index.tsx index 61c5cf7..61ce4ad 100644 --- a/frontend/src/components/Build/index.tsx +++ b/frontend/src/components/Build/index.tsx @@ -1,6 +1,6 @@ import React from 'react'; import linkifyHtml from 'linkify-html'; -import { Descriptions, Space, Typography } from 'antd'; +import { Space, Typography } from 'antd'; import themeStyles from '@/theme/theme.module.css'; import { FindBuildByUuidQuery } from '@/graphql/__generated__/graphql'; import PortalCard from '@/components/PortalCard'; @@ -9,13 +9,15 @@ import BuildStepStatusIcon from '@/components/BuildStepStatusIcon'; import { getFragmentData } from '@/graphql/__generated__'; import { BAZEL_INVOCATION_FRAGMENT, - FULL_BAZEL_INVOCATION_DETAILS, PROBLEM_INFO_FRAGMENT + FULL_BAZEL_INVOCATION_DETAILS, } from "@/app/bazel-invocations/[invocationID]/index.graphql"; import byResultRank from "@/components/Build/index.helpers"; -import { maxBy } from "lodash"; +import { maxBy} from "lodash"; import { BuildStepResultEnum } from "@/components/BuildStepResultTag"; import BazelInvocation from "@/components/BazelInvocation"; -import BuildProblems from "@/components/Problems"; +import styles from "../AppBar/index.module.css" +import dayjs from 'dayjs'; +import Link from 'next/link'; interface Props { buildQueryResults: FindBuildByUuidQuery; @@ -30,10 +32,22 @@ const Build: React.FC = ({ buildQueryResults, buildStepToDisplayID, inner } const titleBits: React.ReactNode[] = [ - Build: {build.buildUUID} + Build ID: {build.buildUUID} + ]; + titleBits.push( + + ) + titleBits.push(Build URL: {build.buildURL} + ) + + const extraBits: React.ReactNode[] = [ + + {dayjs(build.timestamp).format('YYYY-MM-DD hh:mm:ss A')} + ]; const invocations = getFragmentData(FULL_BAZEL_INVOCATION_DETAILS, build.invocations); + const aggregateBuildStepStatus = maxBy( invocations?.map(invocation => { @@ -51,34 +65,29 @@ const Build: React.FC = ({ buildQueryResults, buildStepToDisplayID, inner } }) +//TODO: put these all in an accordian collapse for some additional organization + return ( } titleBits={titleBits} + extraBits={extraBits} > - {envVarItems.length ? ( - - ) : null} + {build.invocations ? ( <> { invocations?.map(invocation => { const invocationOverview = getFragmentData(BAZEL_INVOCATION_FRAGMENT, invocation) - //const problems = invocation.problems.map(p => getFragmentData(PROBLEM_INFO_FRAGMENT, p)) return ( - - + /> ); }) } diff --git a/frontend/src/components/BuildsTable/Columns.tsx b/frontend/src/components/BuildsTable/Columns.tsx index 169878f..38522d8 100644 --- a/frontend/src/components/BuildsTable/Columns.tsx +++ b/frontend/src/components/BuildsTable/Columns.tsx @@ -3,12 +3,15 @@ import React from 'react'; import { SearchOutlined } from '@ant-design/icons'; import Link from 'next/link'; import { BuildNodeFragment } from '@/graphql/__generated__/graphql'; -import { SearchFilterIcon, SearchWidget } from '@/components/SearchWidgets'; +import { SearchFilterIcon, SearchWidget, TimeRangeSelector } from '@/components/SearchWidgets'; +import { Typography } from 'antd'; +import styles from '@/components/BazelInvocationsTable/Columns.module.css' +import dayjs from 'dayjs'; const buildUuidColumn: ColumnType = { key: 'buildUUID', width: 220, - title: 'Build', + title: 'Build ID', render: (_, record) => {record.buildUUID}, filterDropdown: filterProps => ( @@ -19,7 +22,7 @@ const buildUuidColumn: ColumnType = { const buildUrlColumn: ColumnType = { key: 'buildURL', width: 220, - title: 'URL', + title: 'Build URL', render: (_, record) => {record.buildURL}, filterDropdown: filterProps => ( @@ -27,10 +30,24 @@ const buildUrlColumn: ColumnType = { filterIcon: filtered => } filtered={filtered} />, }; +const buildDateColumn: ColumnType = { + key: 'buildDate', + width: 220, + title: 'Timestamp', + render: (_, record) => ( + + {dayjs(record.timestamp).format('YYYY-MM-DD hh:mm:ss A')} + + ), + filterDropdown: filterProps => , + filterIcon: filtered => } filtered={filtered} />, +}; + const getColumns = (): ColumnType[] => { return [ buildUuidColumn, buildUrlColumn, + buildDateColumn, ]; }; diff --git a/frontend/src/components/BuildsTable/index.tsx b/frontend/src/components/BuildsTable/index.tsx index a472055..801a9cd 100644 --- a/frontend/src/components/BuildsTable/index.tsx +++ b/frontend/src/components/BuildsTable/index.tsx @@ -42,6 +42,15 @@ const BuildsTable: React.FC = ({ height }) => { if (filters['buildURL']?.length) { wheres.push({ buildURLHasPrefix: filters['buildURL'][0].toString() }); } + if (filters['buildDate']?.length === 2) { + if (filters['buildDate'][0]) { + wheres.push({ timestampGTE: filters['buildDate'][0]}); + } + if (filters['buildDate'][1]) { + wheres.push({ timestampLTE: filters['buildDate'][1]}); + } + } + setVariables({ first: PAGE_SIZE, where: wheres.length ? { and: [...wheres] } : wheres[0], diff --git a/frontend/src/components/BuildsTable/query.graphql.ts b/frontend/src/components/BuildsTable/query.graphql.ts index d2ccdaa..1e2d004 100644 --- a/frontend/src/components/BuildsTable/query.graphql.ts +++ b/frontend/src/components/BuildsTable/query.graphql.ts @@ -20,6 +20,7 @@ export const BUILD_NODE_FRAGMENT = gql(/* GraphQL */ ` id buildUUID buildURL + timestamp } `); diff --git a/frontend/src/components/InvocationOverviewDisplay/index.tsx b/frontend/src/components/InvocationOverviewDisplay/index.tsx index 4e5e403..55b5dc1 100644 --- a/frontend/src/components/InvocationOverviewDisplay/index.tsx +++ b/frontend/src/components/InvocationOverviewDisplay/index.tsx @@ -56,7 +56,9 @@ export const InvocationOverviewDisplay: React.FC = ({ {user} - {command} + + {command} + {cpu} diff --git a/frontend/src/components/SearchWidgets/index.tsx b/frontend/src/components/SearchWidgets/index.tsx index b6a30e3..4b487a8 100644 --- a/frontend/src/components/SearchWidgets/index.tsx +++ b/frontend/src/components/SearchWidgets/index.tsx @@ -11,7 +11,11 @@ import { FilterDropdownProps } from "antd/es/table/interface"; import dayjs from "dayjs"; import { blue } from "@ant-design/colors"; import styles from "@/components/SearchWidgets/index.module.css"; +import timezone from 'dayjs/plugin/timezone'; +import utc from 'dayjs/plugin/utc'; +dayjs.extend(utc); +dayjs.extend(timezone); interface SearchFilterIconProps { icon: React.ReactNode; filtered: boolean; diff --git a/frontend/src/graphql/__generated__/gql.ts b/frontend/src/graphql/__generated__/gql.ts index 2055611..20a2304 100644 --- a/frontend/src/graphql/__generated__/gql.ts +++ b/frontend/src/graphql/__generated__/gql.ts @@ -22,7 +22,7 @@ const documents = { "\n fragment FullBazelInvocationDetails on BazelInvocation {\n ...BazelInvocationInfo\n }\n": types.FullBazelInvocationDetailsFragmentDoc, "\n query GetActionProblem($id: ID!) {\n node(id: $id) {\n id\n ... on ActionProblem {\n label\n stdout {\n ...BlobReferenceInfo\n }\n stderr {\n ...BlobReferenceInfo\n }\n }\n }\n }\n": types.GetActionProblemDocument, "\nfragment TestResultInfo on TestResult {\n actionLogOutput {\n ...BlobReferenceInfo\n }\n attempt\n run\n shard\n status\n undeclaredTestOutputs {\n ...BlobReferenceInfo\n }\n}": types.TestResultInfoFragmentDoc, - "\n query FindBuildByUUID($url: String, $uuid: UUID) {\n getBuild(buildURL: $url, buildUUID: $uuid) {\n id\n buildURL\n buildUUID\n invocations {\n ...FullBazelInvocationDetails\n }\n env {\n key\n value\n }\n }\n }\n": types.FindBuildByUuidDocument, + "\n query FindBuildByUUID($url: String, $uuid: UUID) {\n getBuild(buildURL: $url, buildUUID: $uuid) {\n id\n buildURL\n buildUUID\n timestamp\n invocations {\n ...FullBazelInvocationDetails\n }\n env {\n key\n value\n }\n }\n }\n": types.FindBuildByUuidDocument, "\nquery GetTargetsWithOffset(\n $label: String,\n $offset: Int,\n $limit: Int,\n $sortBy: String,\n $direction: String) {\n getTargetsWithOffset(\n label: $label\n offset: $offset\n limit: $limit\n sortBy: $sortBy\n direction: $direction\n ) {\n total\n result {\n label\n sum\n min\n max\n avg\n count\n passRate\n }\n }\n }\n": types.GetTargetsWithOffsetDocument, "\n query FindTargets(\n $first: Int!\n $where: TargetPairWhereInput\n $orderBy: TargetPairOrder\n $after: Cursor\n ){\n findTargets (first: $first, where: $where, orderBy: $orderBy, after: $after){\n totalCount\n pageInfo{\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n id\n durationInMs\n label\n success\n bazelInvocation {\n invocationID\n }\n }\n }\n }\n }\n ": types.FindTargetsDocument, "\nquery GetTestsWithOffset(\n $label: String,\n $offset: Int,\n $limit: Int,\n $sortBy: String,\n $direction: String) {\n getTestsWithOffset(\n label: $label\n offset: $offset\n limit: $limit\n sortBy: $sortBy\n direction: $direction\n ) {\n total\n result {\n label\n sum\n min\n max\n avg\n count\n passRate\n }\n }\n }\n": types.GetTestsWithOffsetDocument, @@ -34,7 +34,7 @@ const documents = { "\n query FindBazelInvocations(\n $first: Int!\n $where: BazelInvocationWhereInput\n ) {\n findBazelInvocations(first: $first, where: $where) {\n edges {\n node {\n ...BazelInvocationNode\n }\n }\n }\n }\n": types.FindBazelInvocationsDocument, "\n fragment BazelInvocationNode on BazelInvocation {\n id\n invocationID\n startedAt\n user {\n Email\n LDAP\n }\n endedAt\n state {\n bepCompleted\n exitCode {\n code\n name\n }\n }\n build {\n buildUUID\n }\n }\n": types.BazelInvocationNodeFragmentDoc, "\n query FindBuilds(\n $first: Int!\n $where: BuildWhereInput\n ) {\n findBuilds(first: $first, where: $where) {\n edges {\n node {\n ...BuildNode\n }\n }\n }\n }\n": types.FindBuildsDocument, - "\n fragment BuildNode on Build {\n id\n buildUUID\n buildURL\n }\n": types.BuildNodeFragmentDoc, + "\n fragment BuildNode on Build {\n id\n buildUUID\n buildURL\n timestamp\n }\n": types.BuildNodeFragmentDoc, "\n query FindTestsWithCache(\n $first: Int!\n $where: TestCollectionWhereInput\n $orderBy: TestCollectionOrder\n $after: Cursor\n ){\n findTests (first: $first, where: $where, orderBy: $orderBy, after: $after){\n totalCount\n pageInfo{\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n id\n durationMs\n firstSeen\n label\n overallStatus\n cachedLocally\n cachedRemotely\n bazelInvocation {\n invocationID\n }\n }\n }\n }\n }\n ": types.FindTestsWithCacheDocument, }; @@ -91,7 +91,7 @@ export function gql(source: "\nfragment TestResultInfo on TestResult {\n ac /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ -export function gql(source: "\n query FindBuildByUUID($url: String, $uuid: UUID) {\n getBuild(buildURL: $url, buildUUID: $uuid) {\n id\n buildURL\n buildUUID\n invocations {\n ...FullBazelInvocationDetails\n }\n env {\n key\n value\n }\n }\n }\n"): (typeof documents)["\n query FindBuildByUUID($url: String, $uuid: UUID) {\n getBuild(buildURL: $url, buildUUID: $uuid) {\n id\n buildURL\n buildUUID\n invocations {\n ...FullBazelInvocationDetails\n }\n env {\n key\n value\n }\n }\n }\n"]; +export function gql(source: "\n query FindBuildByUUID($url: String, $uuid: UUID) {\n getBuild(buildURL: $url, buildUUID: $uuid) {\n id\n buildURL\n buildUUID\n timestamp\n invocations {\n ...FullBazelInvocationDetails\n }\n env {\n key\n value\n }\n }\n }\n"): (typeof documents)["\n query FindBuildByUUID($url: String, $uuid: UUID) {\n getBuild(buildURL: $url, buildUUID: $uuid) {\n id\n buildURL\n buildUUID\n timestamp\n invocations {\n ...FullBazelInvocationDetails\n }\n env {\n key\n value\n }\n }\n }\n"]; /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ @@ -139,7 +139,7 @@ export function gql(source: "\n query FindBuilds(\n $first: Int!\n $where /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ -export function gql(source: "\n fragment BuildNode on Build {\n id\n buildUUID\n buildURL\n }\n"): (typeof documents)["\n fragment BuildNode on Build {\n id\n buildUUID\n buildURL\n }\n"]; +export function gql(source: "\n fragment BuildNode on Build {\n id\n buildUUID\n buildURL\n timestamp\n }\n"): (typeof documents)["\n fragment BuildNode on Build {\n id\n buildUUID\n buildURL\n timestamp\n }\n"]; /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ diff --git a/frontend/src/graphql/__generated__/graphql.ts b/frontend/src/graphql/__generated__/graphql.ts index 5334bb5..d3db3e2 100644 --- a/frontend/src/graphql/__generated__/graphql.ts +++ b/frontend/src/graphql/__generated__/graphql.ts @@ -898,6 +898,7 @@ export type Build = Node & { env: Array; id: Scalars['ID']['output']; invocations?: Maybe>; + timestamp?: Maybe; }; /** A connection to a list of items. */ @@ -1132,6 +1133,17 @@ export type BuildWhereInput = { idNotIn?: InputMaybe>; not?: InputMaybe; or?: InputMaybe>; + /** timestamp field predicates */ + timestamp?: InputMaybe; + timestampGT?: InputMaybe; + timestampGTE?: InputMaybe; + timestampIn?: InputMaybe>; + timestampIsNil?: InputMaybe; + timestampLT?: InputMaybe; + timestampLTE?: InputMaybe; + timestampNEQ?: InputMaybe; + timestampNotIn?: InputMaybe>; + timestampNotNil?: InputMaybe; }; export type CumulativeMetrics = Node & { @@ -4360,7 +4372,7 @@ export type FindBuildByUuidQueryVariables = Exact<{ }>; -export type FindBuildByUuidQuery = { __typename?: 'Query', getBuild?: { __typename?: 'Build', id: string, buildURL: string, buildUUID: any, invocations?: Array<( +export type FindBuildByUuidQuery = { __typename?: 'Query', getBuild?: { __typename?: 'Build', id: string, buildURL: string, buildUUID: any, timestamp?: any | null, invocations?: Array<( { __typename?: 'BazelInvocation' } & { ' $fragmentRefs'?: { 'FullBazelInvocationDetailsFragment': FullBazelInvocationDetailsFragment } } )> | null, env: Array<{ __typename?: 'EnvVar', key: string, value: string }> } | null }; @@ -4458,7 +4470,7 @@ export type FindBuildsQuery = { __typename?: 'Query', findBuilds: { __typename?: & { ' $fragmentRefs'?: { 'BuildNodeFragment': BuildNodeFragment } } ) | null } | null> | null } }; -export type BuildNodeFragment = { __typename?: 'Build', id: string, buildUUID: any, buildURL: string } & { ' $fragmentName'?: 'BuildNodeFragment' }; +export type BuildNodeFragment = { __typename?: 'Build', id: string, buildUUID: any, buildURL: string, timestamp?: any | null } & { ' $fragmentName'?: 'BuildNodeFragment' }; export type FindTestsWithCacheQueryVariables = Exact<{ first: Scalars['Int']['input']; @@ -4477,11 +4489,11 @@ export const BazelInvocationInfoFragmentDoc = {"kind":"Document","definitions":[ export const FullBazelInvocationDetailsFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"FullBazelInvocationDetails"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocation"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"BazelInvocationInfo"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BazelInvocationInfo"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocation"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionSummary"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionsCreated"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecuted"}},{"kind":"Field","name":{"kind":"Name","value":"actionsCreatedNotIncludingAspects"}},{"kind":"Field","name":{"kind":"Name","value":"remoteCacheHits"}},{"kind":"Field","name":{"kind":"Name","value":"actionCacheStatistics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"loadTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"saveTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"hits"}},{"kind":"Field","name":{"kind":"Name","value":"misses"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"missDetails"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"count"}},{"kind":"Field","name":{"kind":"Name","value":"reason"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"runnerCount"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecuted"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"execKind"}}]}},{"kind":"Field","name":{"kind":"Name","value":"actionData"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"mnemonic"}},{"kind":"Field","name":{"kind":"Name","value":"userTime"}},{"kind":"Field","name":{"kind":"Name","value":"systemTime"}},{"kind":"Field","name":{"kind":"Name","value":"lastEndedMs"}},{"kind":"Field","name":{"kind":"Name","value":"actionsCreated"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecuted"}},{"kind":"Field","name":{"kind":"Name","value":"firstStartedMs"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"artifactMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"sourceArtifactsRead"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"count"}}]}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactsSeen"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"count"}}]}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactsFromActionCache"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"count"}}]}},{"kind":"Field","name":{"kind":"Name","value":"topLevelArtifacts"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"count"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"cumulativeMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"numBuilds"}},{"kind":"Field","name":{"kind":"Name","value":"numAnalyses"}}]}},{"kind":"Field","name":{"kind":"Name","value":"dynamicExecutionMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"raceStatistics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"localWins"}},{"kind":"Field","name":{"kind":"Name","value":"mnemonic"}},{"kind":"Field","name":{"kind":"Name","value":"renoteWins"}},{"kind":"Field","name":{"kind":"Name","value":"localRunner"}},{"kind":"Field","name":{"kind":"Name","value":"remoteRunner"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"buildGraphMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionLookupValueCount"}},{"kind":"Field","name":{"kind":"Name","value":"actionLookupValueCountNotIncludingAspects"}},{"kind":"Field","name":{"kind":"Name","value":"actionCount"}},{"kind":"Field","name":{"kind":"Name","value":"inputFileConfiguredTargetCount"}},{"kind":"Field","name":{"kind":"Name","value":"outputFileConfiguredTargetCount"}},{"kind":"Field","name":{"kind":"Name","value":"otherConfiguredTargetCount"}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactCount"}},{"kind":"Field","name":{"kind":"Name","value":"postInvocationSkyframeNodeCount"}}]}},{"kind":"Field","name":{"kind":"Name","value":"memoryMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"usedHeapSizePostBuild"}},{"kind":"Field","name":{"kind":"Name","value":"peakPostGcHeapSize"}},{"kind":"Field","name":{"kind":"Name","value":"peakPostGcTenuredSpaceHeapSize"}},{"kind":"Field","name":{"kind":"Name","value":"garbageMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"garbageCollected"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"targetMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"targetsLoaded"}},{"kind":"Field","name":{"kind":"Name","value":"targetsConfigured"}},{"kind":"Field","name":{"kind":"Name","value":"targetsConfiguredNotIncludingAspects"}}]}},{"kind":"Field","name":{"kind":"Name","value":"timingMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"cpuTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"wallTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"analysisPhaseTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"executionPhaseTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecutionStartInMs"}}]}},{"kind":"Field","name":{"kind":"Name","value":"networkMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"systemNetworkStats"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"bytesSent"}},{"kind":"Field","name":{"kind":"Name","value":"bytesRecv"}},{"kind":"Field","name":{"kind":"Name","value":"packetsSent"}},{"kind":"Field","name":{"kind":"Name","value":"packetsRecv"}},{"kind":"Field","name":{"kind":"Name","value":"peakBytesSentPerSec"}},{"kind":"Field","name":{"kind":"Name","value":"peakBytesRecvPerSec"}},{"kind":"Field","name":{"kind":"Name","value":"peakPacketsSentPerSec"}},{"kind":"Field","name":{"kind":"Name","value":"peakPacketsRecvPerSec"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"packageMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"packagesLoaded"}},{"kind":"Field","name":{"kind":"Name","value":"packageLoadMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"numTargets"}},{"kind":"Field","name":{"kind":"Name","value":"loadDuration"}},{"kind":"Field","name":{"kind":"Name","value":"packageOverhead"}},{"kind":"Field","name":{"kind":"Name","value":"computationSteps"}},{"kind":"Field","name":{"kind":"Name","value":"numTransitiveLoads"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"bazelCommand"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"command"}},{"kind":"Field","name":{"kind":"Name","value":"executable"}},{"kind":"Field","name":{"kind":"Name","value":"residual"}},{"kind":"Field","name":{"kind":"Name","value":"explicitCmdLine"}},{"kind":"Field","name":{"kind":"Name","value":"cmdLine"}},{"kind":"Field","name":{"kind":"Name","value":"startupOptions"}},{"kind":"Field","name":{"kind":"Name","value":"explicitStartupOptions"}}]}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"invocationID"}},{"kind":"Field","name":{"kind":"Name","value":"build"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}}]}},{"kind":"Field","name":{"kind":"Name","value":"profile"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"digest"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}}]}},{"kind":"Field","name":{"kind":"Name","value":"targets"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"success"}},{"kind":"Field","name":{"kind":"Name","value":"testSize"}},{"kind":"Field","name":{"kind":"Name","value":"targetKind"}},{"kind":"Field","name":{"kind":"Name","value":"durationInMs"}},{"kind":"Field","name":{"kind":"Name","value":"abortReason"}}]}},{"kind":"Field","name":{"kind":"Name","value":"testCollection"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"strategy"}},{"kind":"Field","name":{"kind":"Name","value":"durationMs"}},{"kind":"Field","name":{"kind":"Name","value":"overallStatus"}},{"kind":"Field","name":{"kind":"Name","value":"cachedLocally"}},{"kind":"Field","name":{"kind":"Name","value":"cachedRemotely"}}]}},{"kind":"Field","name":{"kind":"Name","value":"relatedFiles"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"url"}}]}},{"kind":"Field","name":{"kind":"Name","value":"user"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"Email"}},{"kind":"Field","name":{"kind":"Name","value":"LDAP"}}]}},{"kind":"Field","name":{"kind":"Name","value":"startedAt"}},{"kind":"Field","name":{"kind":"Name","value":"endedAt"}},{"kind":"Field","name":{"kind":"Name","value":"state"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"bepCompleted"}},{"kind":"Field","name":{"kind":"Name","value":"buildEndTime"}},{"kind":"Field","name":{"kind":"Name","value":"buildStartTime"}},{"kind":"Field","name":{"kind":"Name","value":"exitCode"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"code"}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"configurationMnemonic"}},{"kind":"Field","name":{"kind":"Name","value":"cpu"}},{"kind":"Field","name":{"kind":"Name","value":"numFetches"}},{"kind":"Field","name":{"kind":"Name","value":"stepLabel"}},{"kind":"Field","name":{"kind":"Name","value":"hostname"}},{"kind":"Field","name":{"kind":"Name","value":"isCiWorker"}},{"kind":"Field","name":{"kind":"Name","value":"sourceControl"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"commitSha"}},{"kind":"Field","name":{"kind":"Name","value":"actor"}},{"kind":"Field","name":{"kind":"Name","value":"branch"}},{"kind":"Field","name":{"kind":"Name","value":"repoURL"}},{"kind":"Field","name":{"kind":"Name","value":"refs"}},{"kind":"Field","name":{"kind":"Name","value":"runID"}},{"kind":"Field","name":{"kind":"Name","value":"workflow"}},{"kind":"Field","name":{"kind":"Name","value":"workspace"}},{"kind":"Field","name":{"kind":"Name","value":"action"}},{"kind":"Field","name":{"kind":"Name","value":"eventName"}},{"kind":"Field","name":{"kind":"Name","value":"job"}},{"kind":"Field","name":{"kind":"Name","value":"runnerName"}},{"kind":"Field","name":{"kind":"Name","value":"runnerArch"}},{"kind":"Field","name":{"kind":"Name","value":"runnerOs"}}]}}]}}]} as unknown as DocumentNode; export const TestResultInfoFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"TestResultInfo"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"TestResult"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"actionLogOutput"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"BlobReferenceInfo"}}]}},{"kind":"Field","name":{"kind":"Name","value":"attempt"}},{"kind":"Field","name":{"kind":"Name","value":"run"}},{"kind":"Field","name":{"kind":"Name","value":"shard"}},{"kind":"Field","name":{"kind":"Name","value":"status"}},{"kind":"Field","name":{"kind":"Name","value":"undeclaredTestOutputs"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"BlobReferenceInfo"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BlobReferenceInfo"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BlobReference"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"availabilityStatus"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"downloadURL"}},{"kind":"Field","name":{"kind":"Name","value":"ephemeralURL"}}]}}]} as unknown as DocumentNode; export const BazelInvocationNodeFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BazelInvocationNode"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocation"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"invocationID"}},{"kind":"Field","name":{"kind":"Name","value":"startedAt"}},{"kind":"Field","name":{"kind":"Name","value":"user"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"Email"}},{"kind":"Field","name":{"kind":"Name","value":"LDAP"}}]}},{"kind":"Field","name":{"kind":"Name","value":"endedAt"}},{"kind":"Field","name":{"kind":"Name","value":"state"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"bepCompleted"}},{"kind":"Field","name":{"kind":"Name","value":"exitCode"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"code"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"build"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}}]}}]}}]} as unknown as DocumentNode; -export const BuildNodeFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BuildNode"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Build"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}},{"kind":"Field","name":{"kind":"Name","value":"buildURL"}}]}}]} as unknown as DocumentNode; +export const BuildNodeFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BuildNode"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Build"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}},{"kind":"Field","name":{"kind":"Name","value":"buildURL"}},{"kind":"Field","name":{"kind":"Name","value":"timestamp"}}]}}]} as unknown as DocumentNode; export const LoadFullBazelInvocationDetailsDocument = {"__meta__":{"hash":"b81aff00ca1f89dde18260c8f18c1501b018a5f3"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"LoadFullBazelInvocationDetails"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"invocationID"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"bazelInvocation"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"invocationId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"invocationID"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"FullBazelInvocationDetails"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BazelInvocationInfo"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocation"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionSummary"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionsCreated"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecuted"}},{"kind":"Field","name":{"kind":"Name","value":"actionsCreatedNotIncludingAspects"}},{"kind":"Field","name":{"kind":"Name","value":"remoteCacheHits"}},{"kind":"Field","name":{"kind":"Name","value":"actionCacheStatistics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"loadTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"saveTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"hits"}},{"kind":"Field","name":{"kind":"Name","value":"misses"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"missDetails"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"count"}},{"kind":"Field","name":{"kind":"Name","value":"reason"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"runnerCount"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecuted"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"execKind"}}]}},{"kind":"Field","name":{"kind":"Name","value":"actionData"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"mnemonic"}},{"kind":"Field","name":{"kind":"Name","value":"userTime"}},{"kind":"Field","name":{"kind":"Name","value":"systemTime"}},{"kind":"Field","name":{"kind":"Name","value":"lastEndedMs"}},{"kind":"Field","name":{"kind":"Name","value":"actionsCreated"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecuted"}},{"kind":"Field","name":{"kind":"Name","value":"firstStartedMs"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"artifactMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"sourceArtifactsRead"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"count"}}]}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactsSeen"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"count"}}]}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactsFromActionCache"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"count"}}]}},{"kind":"Field","name":{"kind":"Name","value":"topLevelArtifacts"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"count"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"cumulativeMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"numBuilds"}},{"kind":"Field","name":{"kind":"Name","value":"numAnalyses"}}]}},{"kind":"Field","name":{"kind":"Name","value":"dynamicExecutionMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"raceStatistics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"localWins"}},{"kind":"Field","name":{"kind":"Name","value":"mnemonic"}},{"kind":"Field","name":{"kind":"Name","value":"renoteWins"}},{"kind":"Field","name":{"kind":"Name","value":"localRunner"}},{"kind":"Field","name":{"kind":"Name","value":"remoteRunner"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"buildGraphMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionLookupValueCount"}},{"kind":"Field","name":{"kind":"Name","value":"actionLookupValueCountNotIncludingAspects"}},{"kind":"Field","name":{"kind":"Name","value":"actionCount"}},{"kind":"Field","name":{"kind":"Name","value":"inputFileConfiguredTargetCount"}},{"kind":"Field","name":{"kind":"Name","value":"outputFileConfiguredTargetCount"}},{"kind":"Field","name":{"kind":"Name","value":"otherConfiguredTargetCount"}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactCount"}},{"kind":"Field","name":{"kind":"Name","value":"postInvocationSkyframeNodeCount"}}]}},{"kind":"Field","name":{"kind":"Name","value":"memoryMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"usedHeapSizePostBuild"}},{"kind":"Field","name":{"kind":"Name","value":"peakPostGcHeapSize"}},{"kind":"Field","name":{"kind":"Name","value":"peakPostGcTenuredSpaceHeapSize"}},{"kind":"Field","name":{"kind":"Name","value":"garbageMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"garbageCollected"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"targetMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"targetsLoaded"}},{"kind":"Field","name":{"kind":"Name","value":"targetsConfigured"}},{"kind":"Field","name":{"kind":"Name","value":"targetsConfiguredNotIncludingAspects"}}]}},{"kind":"Field","name":{"kind":"Name","value":"timingMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"cpuTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"wallTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"analysisPhaseTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"executionPhaseTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecutionStartInMs"}}]}},{"kind":"Field","name":{"kind":"Name","value":"networkMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"systemNetworkStats"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"bytesSent"}},{"kind":"Field","name":{"kind":"Name","value":"bytesRecv"}},{"kind":"Field","name":{"kind":"Name","value":"packetsSent"}},{"kind":"Field","name":{"kind":"Name","value":"packetsRecv"}},{"kind":"Field","name":{"kind":"Name","value":"peakBytesSentPerSec"}},{"kind":"Field","name":{"kind":"Name","value":"peakBytesRecvPerSec"}},{"kind":"Field","name":{"kind":"Name","value":"peakPacketsSentPerSec"}},{"kind":"Field","name":{"kind":"Name","value":"peakPacketsRecvPerSec"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"packageMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"packagesLoaded"}},{"kind":"Field","name":{"kind":"Name","value":"packageLoadMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"numTargets"}},{"kind":"Field","name":{"kind":"Name","value":"loadDuration"}},{"kind":"Field","name":{"kind":"Name","value":"packageOverhead"}},{"kind":"Field","name":{"kind":"Name","value":"computationSteps"}},{"kind":"Field","name":{"kind":"Name","value":"numTransitiveLoads"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"bazelCommand"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"command"}},{"kind":"Field","name":{"kind":"Name","value":"executable"}},{"kind":"Field","name":{"kind":"Name","value":"residual"}},{"kind":"Field","name":{"kind":"Name","value":"explicitCmdLine"}},{"kind":"Field","name":{"kind":"Name","value":"cmdLine"}},{"kind":"Field","name":{"kind":"Name","value":"startupOptions"}},{"kind":"Field","name":{"kind":"Name","value":"explicitStartupOptions"}}]}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"invocationID"}},{"kind":"Field","name":{"kind":"Name","value":"build"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}}]}},{"kind":"Field","name":{"kind":"Name","value":"profile"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"digest"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}}]}},{"kind":"Field","name":{"kind":"Name","value":"targets"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"success"}},{"kind":"Field","name":{"kind":"Name","value":"testSize"}},{"kind":"Field","name":{"kind":"Name","value":"targetKind"}},{"kind":"Field","name":{"kind":"Name","value":"durationInMs"}},{"kind":"Field","name":{"kind":"Name","value":"abortReason"}}]}},{"kind":"Field","name":{"kind":"Name","value":"testCollection"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"strategy"}},{"kind":"Field","name":{"kind":"Name","value":"durationMs"}},{"kind":"Field","name":{"kind":"Name","value":"overallStatus"}},{"kind":"Field","name":{"kind":"Name","value":"cachedLocally"}},{"kind":"Field","name":{"kind":"Name","value":"cachedRemotely"}}]}},{"kind":"Field","name":{"kind":"Name","value":"relatedFiles"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"url"}}]}},{"kind":"Field","name":{"kind":"Name","value":"user"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"Email"}},{"kind":"Field","name":{"kind":"Name","value":"LDAP"}}]}},{"kind":"Field","name":{"kind":"Name","value":"startedAt"}},{"kind":"Field","name":{"kind":"Name","value":"endedAt"}},{"kind":"Field","name":{"kind":"Name","value":"state"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"bepCompleted"}},{"kind":"Field","name":{"kind":"Name","value":"buildEndTime"}},{"kind":"Field","name":{"kind":"Name","value":"buildStartTime"}},{"kind":"Field","name":{"kind":"Name","value":"exitCode"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"code"}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"configurationMnemonic"}},{"kind":"Field","name":{"kind":"Name","value":"cpu"}},{"kind":"Field","name":{"kind":"Name","value":"numFetches"}},{"kind":"Field","name":{"kind":"Name","value":"stepLabel"}},{"kind":"Field","name":{"kind":"Name","value":"hostname"}},{"kind":"Field","name":{"kind":"Name","value":"isCiWorker"}},{"kind":"Field","name":{"kind":"Name","value":"sourceControl"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"commitSha"}},{"kind":"Field","name":{"kind":"Name","value":"actor"}},{"kind":"Field","name":{"kind":"Name","value":"branch"}},{"kind":"Field","name":{"kind":"Name","value":"repoURL"}},{"kind":"Field","name":{"kind":"Name","value":"refs"}},{"kind":"Field","name":{"kind":"Name","value":"runID"}},{"kind":"Field","name":{"kind":"Name","value":"workflow"}},{"kind":"Field","name":{"kind":"Name","value":"workspace"}},{"kind":"Field","name":{"kind":"Name","value":"action"}},{"kind":"Field","name":{"kind":"Name","value":"eventName"}},{"kind":"Field","name":{"kind":"Name","value":"job"}},{"kind":"Field","name":{"kind":"Name","value":"runnerName"}},{"kind":"Field","name":{"kind":"Name","value":"runnerArch"}},{"kind":"Field","name":{"kind":"Name","value":"runnerOs"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"FullBazelInvocationDetails"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocation"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"BazelInvocationInfo"}}]}}]} as unknown as DocumentNode; export const GetProblemDetailsDocument = {"__meta__":{"hash":"bb34b92cb4a11280082ec2332b06334a13cf4433"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetProblemDetails"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"invocationID"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"bazelInvocation"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"invocationId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"invocationID"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ProblemDetails"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BlobReferenceInfo"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BlobReference"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"availabilityStatus"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"downloadURL"}},{"kind":"Field","name":{"kind":"Name","value":"ephemeralURL"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ProblemInfo"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Problem"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"__typename"}},{"kind":"InlineFragment","typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ActionProblem"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"__typename"}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"stdout"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"BlobReferenceInfo"}}]}},{"kind":"Field","name":{"kind":"Name","value":"stderr"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"BlobReferenceInfo"}}]}}]}},{"kind":"InlineFragment","typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"TestProblem"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"__typename"}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"status"}},{"kind":"Field","name":{"kind":"Name","value":"results"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"__typename"}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"run"}},{"kind":"Field","name":{"kind":"Name","value":"shard"}},{"kind":"Field","name":{"kind":"Name","value":"attempt"}},{"kind":"Field","name":{"kind":"Name","value":"status"}},{"kind":"Field","name":{"kind":"Name","value":"actionLogOutput"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"BlobReferenceInfo"}}]}},{"kind":"Field","name":{"kind":"Name","value":"undeclaredTestOutputs"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"BlobReferenceInfo"}}]}}]}}]}},{"kind":"InlineFragment","typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"TargetProblem"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"__typename"}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"label"}}]}},{"kind":"InlineFragment","typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ProgressProblem"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"__typename"}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"output"}},{"kind":"Field","name":{"kind":"Name","value":"label"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ProblemDetails"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocation"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"problems"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ProblemInfo"}}]}}]}}]} as unknown as DocumentNode; export const GetActionProblemDocument = {"__meta__":{"hash":"1e8efb549059b9fe79348092e6a23e7ea9b365f8"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetActionProblem"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"id"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"id"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"InlineFragment","typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ActionProblem"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"stdout"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"BlobReferenceInfo"}}]}},{"kind":"Field","name":{"kind":"Name","value":"stderr"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"BlobReferenceInfo"}}]}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BlobReferenceInfo"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BlobReference"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"availabilityStatus"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"downloadURL"}},{"kind":"Field","name":{"kind":"Name","value":"ephemeralURL"}}]}}]} as unknown as DocumentNode; -export const FindBuildByUuidDocument = {"__meta__":{"hash":"482603255e473f6937c1813eb3edf1d705de0574"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindBuildByUUID"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"url"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"uuid"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getBuild"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"buildURL"},"value":{"kind":"Variable","name":{"kind":"Name","value":"url"}}},{"kind":"Argument","name":{"kind":"Name","value":"buildUUID"},"value":{"kind":"Variable","name":{"kind":"Name","value":"uuid"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"buildURL"}},{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}},{"kind":"Field","name":{"kind":"Name","value":"invocations"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"FullBazelInvocationDetails"}}]}},{"kind":"Field","name":{"kind":"Name","value":"env"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BazelInvocationInfo"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocation"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionSummary"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionsCreated"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecuted"}},{"kind":"Field","name":{"kind":"Name","value":"actionsCreatedNotIncludingAspects"}},{"kind":"Field","name":{"kind":"Name","value":"remoteCacheHits"}},{"kind":"Field","name":{"kind":"Name","value":"actionCacheStatistics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"loadTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"saveTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"hits"}},{"kind":"Field","name":{"kind":"Name","value":"misses"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"missDetails"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"count"}},{"kind":"Field","name":{"kind":"Name","value":"reason"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"runnerCount"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecuted"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"execKind"}}]}},{"kind":"Field","name":{"kind":"Name","value":"actionData"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"mnemonic"}},{"kind":"Field","name":{"kind":"Name","value":"userTime"}},{"kind":"Field","name":{"kind":"Name","value":"systemTime"}},{"kind":"Field","name":{"kind":"Name","value":"lastEndedMs"}},{"kind":"Field","name":{"kind":"Name","value":"actionsCreated"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecuted"}},{"kind":"Field","name":{"kind":"Name","value":"firstStartedMs"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"artifactMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"sourceArtifactsRead"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"count"}}]}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactsSeen"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"count"}}]}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactsFromActionCache"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"count"}}]}},{"kind":"Field","name":{"kind":"Name","value":"topLevelArtifacts"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"count"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"cumulativeMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"numBuilds"}},{"kind":"Field","name":{"kind":"Name","value":"numAnalyses"}}]}},{"kind":"Field","name":{"kind":"Name","value":"dynamicExecutionMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"raceStatistics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"localWins"}},{"kind":"Field","name":{"kind":"Name","value":"mnemonic"}},{"kind":"Field","name":{"kind":"Name","value":"renoteWins"}},{"kind":"Field","name":{"kind":"Name","value":"localRunner"}},{"kind":"Field","name":{"kind":"Name","value":"remoteRunner"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"buildGraphMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionLookupValueCount"}},{"kind":"Field","name":{"kind":"Name","value":"actionLookupValueCountNotIncludingAspects"}},{"kind":"Field","name":{"kind":"Name","value":"actionCount"}},{"kind":"Field","name":{"kind":"Name","value":"inputFileConfiguredTargetCount"}},{"kind":"Field","name":{"kind":"Name","value":"outputFileConfiguredTargetCount"}},{"kind":"Field","name":{"kind":"Name","value":"otherConfiguredTargetCount"}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactCount"}},{"kind":"Field","name":{"kind":"Name","value":"postInvocationSkyframeNodeCount"}}]}},{"kind":"Field","name":{"kind":"Name","value":"memoryMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"usedHeapSizePostBuild"}},{"kind":"Field","name":{"kind":"Name","value":"peakPostGcHeapSize"}},{"kind":"Field","name":{"kind":"Name","value":"peakPostGcTenuredSpaceHeapSize"}},{"kind":"Field","name":{"kind":"Name","value":"garbageMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"garbageCollected"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"targetMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"targetsLoaded"}},{"kind":"Field","name":{"kind":"Name","value":"targetsConfigured"}},{"kind":"Field","name":{"kind":"Name","value":"targetsConfiguredNotIncludingAspects"}}]}},{"kind":"Field","name":{"kind":"Name","value":"timingMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"cpuTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"wallTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"analysisPhaseTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"executionPhaseTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecutionStartInMs"}}]}},{"kind":"Field","name":{"kind":"Name","value":"networkMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"systemNetworkStats"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"bytesSent"}},{"kind":"Field","name":{"kind":"Name","value":"bytesRecv"}},{"kind":"Field","name":{"kind":"Name","value":"packetsSent"}},{"kind":"Field","name":{"kind":"Name","value":"packetsRecv"}},{"kind":"Field","name":{"kind":"Name","value":"peakBytesSentPerSec"}},{"kind":"Field","name":{"kind":"Name","value":"peakBytesRecvPerSec"}},{"kind":"Field","name":{"kind":"Name","value":"peakPacketsSentPerSec"}},{"kind":"Field","name":{"kind":"Name","value":"peakPacketsRecvPerSec"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"packageMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"packagesLoaded"}},{"kind":"Field","name":{"kind":"Name","value":"packageLoadMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"numTargets"}},{"kind":"Field","name":{"kind":"Name","value":"loadDuration"}},{"kind":"Field","name":{"kind":"Name","value":"packageOverhead"}},{"kind":"Field","name":{"kind":"Name","value":"computationSteps"}},{"kind":"Field","name":{"kind":"Name","value":"numTransitiveLoads"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"bazelCommand"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"command"}},{"kind":"Field","name":{"kind":"Name","value":"executable"}},{"kind":"Field","name":{"kind":"Name","value":"residual"}},{"kind":"Field","name":{"kind":"Name","value":"explicitCmdLine"}},{"kind":"Field","name":{"kind":"Name","value":"cmdLine"}},{"kind":"Field","name":{"kind":"Name","value":"startupOptions"}},{"kind":"Field","name":{"kind":"Name","value":"explicitStartupOptions"}}]}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"invocationID"}},{"kind":"Field","name":{"kind":"Name","value":"build"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}}]}},{"kind":"Field","name":{"kind":"Name","value":"profile"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"digest"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}}]}},{"kind":"Field","name":{"kind":"Name","value":"targets"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"success"}},{"kind":"Field","name":{"kind":"Name","value":"testSize"}},{"kind":"Field","name":{"kind":"Name","value":"targetKind"}},{"kind":"Field","name":{"kind":"Name","value":"durationInMs"}},{"kind":"Field","name":{"kind":"Name","value":"abortReason"}}]}},{"kind":"Field","name":{"kind":"Name","value":"testCollection"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"strategy"}},{"kind":"Field","name":{"kind":"Name","value":"durationMs"}},{"kind":"Field","name":{"kind":"Name","value":"overallStatus"}},{"kind":"Field","name":{"kind":"Name","value":"cachedLocally"}},{"kind":"Field","name":{"kind":"Name","value":"cachedRemotely"}}]}},{"kind":"Field","name":{"kind":"Name","value":"relatedFiles"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"url"}}]}},{"kind":"Field","name":{"kind":"Name","value":"user"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"Email"}},{"kind":"Field","name":{"kind":"Name","value":"LDAP"}}]}},{"kind":"Field","name":{"kind":"Name","value":"startedAt"}},{"kind":"Field","name":{"kind":"Name","value":"endedAt"}},{"kind":"Field","name":{"kind":"Name","value":"state"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"bepCompleted"}},{"kind":"Field","name":{"kind":"Name","value":"buildEndTime"}},{"kind":"Field","name":{"kind":"Name","value":"buildStartTime"}},{"kind":"Field","name":{"kind":"Name","value":"exitCode"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"code"}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"configurationMnemonic"}},{"kind":"Field","name":{"kind":"Name","value":"cpu"}},{"kind":"Field","name":{"kind":"Name","value":"numFetches"}},{"kind":"Field","name":{"kind":"Name","value":"stepLabel"}},{"kind":"Field","name":{"kind":"Name","value":"hostname"}},{"kind":"Field","name":{"kind":"Name","value":"isCiWorker"}},{"kind":"Field","name":{"kind":"Name","value":"sourceControl"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"commitSha"}},{"kind":"Field","name":{"kind":"Name","value":"actor"}},{"kind":"Field","name":{"kind":"Name","value":"branch"}},{"kind":"Field","name":{"kind":"Name","value":"repoURL"}},{"kind":"Field","name":{"kind":"Name","value":"refs"}},{"kind":"Field","name":{"kind":"Name","value":"runID"}},{"kind":"Field","name":{"kind":"Name","value":"workflow"}},{"kind":"Field","name":{"kind":"Name","value":"workspace"}},{"kind":"Field","name":{"kind":"Name","value":"action"}},{"kind":"Field","name":{"kind":"Name","value":"eventName"}},{"kind":"Field","name":{"kind":"Name","value":"job"}},{"kind":"Field","name":{"kind":"Name","value":"runnerName"}},{"kind":"Field","name":{"kind":"Name","value":"runnerArch"}},{"kind":"Field","name":{"kind":"Name","value":"runnerOs"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"FullBazelInvocationDetails"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocation"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"BazelInvocationInfo"}}]}}]} as unknown as DocumentNode; +export const FindBuildByUuidDocument = {"__meta__":{"hash":"b95794cad1e5149e8a7239d2c71e936d924b14a8"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindBuildByUUID"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"url"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"uuid"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getBuild"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"buildURL"},"value":{"kind":"Variable","name":{"kind":"Name","value":"url"}}},{"kind":"Argument","name":{"kind":"Name","value":"buildUUID"},"value":{"kind":"Variable","name":{"kind":"Name","value":"uuid"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"buildURL"}},{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}},{"kind":"Field","name":{"kind":"Name","value":"timestamp"}},{"kind":"Field","name":{"kind":"Name","value":"invocations"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"FullBazelInvocationDetails"}}]}},{"kind":"Field","name":{"kind":"Name","value":"env"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BazelInvocationInfo"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocation"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionSummary"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionsCreated"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecuted"}},{"kind":"Field","name":{"kind":"Name","value":"actionsCreatedNotIncludingAspects"}},{"kind":"Field","name":{"kind":"Name","value":"remoteCacheHits"}},{"kind":"Field","name":{"kind":"Name","value":"actionCacheStatistics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"loadTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"saveTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"hits"}},{"kind":"Field","name":{"kind":"Name","value":"misses"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"missDetails"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"count"}},{"kind":"Field","name":{"kind":"Name","value":"reason"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"runnerCount"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecuted"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"execKind"}}]}},{"kind":"Field","name":{"kind":"Name","value":"actionData"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"mnemonic"}},{"kind":"Field","name":{"kind":"Name","value":"userTime"}},{"kind":"Field","name":{"kind":"Name","value":"systemTime"}},{"kind":"Field","name":{"kind":"Name","value":"lastEndedMs"}},{"kind":"Field","name":{"kind":"Name","value":"actionsCreated"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecuted"}},{"kind":"Field","name":{"kind":"Name","value":"firstStartedMs"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"artifactMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"sourceArtifactsRead"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"count"}}]}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactsSeen"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"count"}}]}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactsFromActionCache"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"count"}}]}},{"kind":"Field","name":{"kind":"Name","value":"topLevelArtifacts"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}},{"kind":"Field","name":{"kind":"Name","value":"count"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"cumulativeMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"numBuilds"}},{"kind":"Field","name":{"kind":"Name","value":"numAnalyses"}}]}},{"kind":"Field","name":{"kind":"Name","value":"dynamicExecutionMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"raceStatistics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"localWins"}},{"kind":"Field","name":{"kind":"Name","value":"mnemonic"}},{"kind":"Field","name":{"kind":"Name","value":"renoteWins"}},{"kind":"Field","name":{"kind":"Name","value":"localRunner"}},{"kind":"Field","name":{"kind":"Name","value":"remoteRunner"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"buildGraphMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"actionLookupValueCount"}},{"kind":"Field","name":{"kind":"Name","value":"actionLookupValueCountNotIncludingAspects"}},{"kind":"Field","name":{"kind":"Name","value":"actionCount"}},{"kind":"Field","name":{"kind":"Name","value":"inputFileConfiguredTargetCount"}},{"kind":"Field","name":{"kind":"Name","value":"outputFileConfiguredTargetCount"}},{"kind":"Field","name":{"kind":"Name","value":"otherConfiguredTargetCount"}},{"kind":"Field","name":{"kind":"Name","value":"outputArtifactCount"}},{"kind":"Field","name":{"kind":"Name","value":"postInvocationSkyframeNodeCount"}}]}},{"kind":"Field","name":{"kind":"Name","value":"memoryMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"usedHeapSizePostBuild"}},{"kind":"Field","name":{"kind":"Name","value":"peakPostGcHeapSize"}},{"kind":"Field","name":{"kind":"Name","value":"peakPostGcTenuredSpaceHeapSize"}},{"kind":"Field","name":{"kind":"Name","value":"garbageMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"garbageCollected"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"targetMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"targetsLoaded"}},{"kind":"Field","name":{"kind":"Name","value":"targetsConfigured"}},{"kind":"Field","name":{"kind":"Name","value":"targetsConfiguredNotIncludingAspects"}}]}},{"kind":"Field","name":{"kind":"Name","value":"timingMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"cpuTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"wallTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"analysisPhaseTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"executionPhaseTimeInMs"}},{"kind":"Field","name":{"kind":"Name","value":"actionsExecutionStartInMs"}}]}},{"kind":"Field","name":{"kind":"Name","value":"networkMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"systemNetworkStats"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"bytesSent"}},{"kind":"Field","name":{"kind":"Name","value":"bytesRecv"}},{"kind":"Field","name":{"kind":"Name","value":"packetsSent"}},{"kind":"Field","name":{"kind":"Name","value":"packetsRecv"}},{"kind":"Field","name":{"kind":"Name","value":"peakBytesSentPerSec"}},{"kind":"Field","name":{"kind":"Name","value":"peakBytesRecvPerSec"}},{"kind":"Field","name":{"kind":"Name","value":"peakPacketsSentPerSec"}},{"kind":"Field","name":{"kind":"Name","value":"peakPacketsRecvPerSec"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"packageMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"packagesLoaded"}},{"kind":"Field","name":{"kind":"Name","value":"packageLoadMetrics"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"numTargets"}},{"kind":"Field","name":{"kind":"Name","value":"loadDuration"}},{"kind":"Field","name":{"kind":"Name","value":"packageOverhead"}},{"kind":"Field","name":{"kind":"Name","value":"computationSteps"}},{"kind":"Field","name":{"kind":"Name","value":"numTransitiveLoads"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"bazelCommand"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"command"}},{"kind":"Field","name":{"kind":"Name","value":"executable"}},{"kind":"Field","name":{"kind":"Name","value":"residual"}},{"kind":"Field","name":{"kind":"Name","value":"explicitCmdLine"}},{"kind":"Field","name":{"kind":"Name","value":"cmdLine"}},{"kind":"Field","name":{"kind":"Name","value":"startupOptions"}},{"kind":"Field","name":{"kind":"Name","value":"explicitStartupOptions"}}]}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"invocationID"}},{"kind":"Field","name":{"kind":"Name","value":"build"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}}]}},{"kind":"Field","name":{"kind":"Name","value":"profile"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"digest"}},{"kind":"Field","name":{"kind":"Name","value":"sizeInBytes"}}]}},{"kind":"Field","name":{"kind":"Name","value":"targets"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"success"}},{"kind":"Field","name":{"kind":"Name","value":"testSize"}},{"kind":"Field","name":{"kind":"Name","value":"targetKind"}},{"kind":"Field","name":{"kind":"Name","value":"durationInMs"}},{"kind":"Field","name":{"kind":"Name","value":"abortReason"}}]}},{"kind":"Field","name":{"kind":"Name","value":"testCollection"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"strategy"}},{"kind":"Field","name":{"kind":"Name","value":"durationMs"}},{"kind":"Field","name":{"kind":"Name","value":"overallStatus"}},{"kind":"Field","name":{"kind":"Name","value":"cachedLocally"}},{"kind":"Field","name":{"kind":"Name","value":"cachedRemotely"}}]}},{"kind":"Field","name":{"kind":"Name","value":"relatedFiles"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"url"}}]}},{"kind":"Field","name":{"kind":"Name","value":"user"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"Email"}},{"kind":"Field","name":{"kind":"Name","value":"LDAP"}}]}},{"kind":"Field","name":{"kind":"Name","value":"startedAt"}},{"kind":"Field","name":{"kind":"Name","value":"endedAt"}},{"kind":"Field","name":{"kind":"Name","value":"state"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"bepCompleted"}},{"kind":"Field","name":{"kind":"Name","value":"buildEndTime"}},{"kind":"Field","name":{"kind":"Name","value":"buildStartTime"}},{"kind":"Field","name":{"kind":"Name","value":"exitCode"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"code"}},{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"configurationMnemonic"}},{"kind":"Field","name":{"kind":"Name","value":"cpu"}},{"kind":"Field","name":{"kind":"Name","value":"numFetches"}},{"kind":"Field","name":{"kind":"Name","value":"stepLabel"}},{"kind":"Field","name":{"kind":"Name","value":"hostname"}},{"kind":"Field","name":{"kind":"Name","value":"isCiWorker"}},{"kind":"Field","name":{"kind":"Name","value":"sourceControl"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"commitSha"}},{"kind":"Field","name":{"kind":"Name","value":"actor"}},{"kind":"Field","name":{"kind":"Name","value":"branch"}},{"kind":"Field","name":{"kind":"Name","value":"repoURL"}},{"kind":"Field","name":{"kind":"Name","value":"refs"}},{"kind":"Field","name":{"kind":"Name","value":"runID"}},{"kind":"Field","name":{"kind":"Name","value":"workflow"}},{"kind":"Field","name":{"kind":"Name","value":"workspace"}},{"kind":"Field","name":{"kind":"Name","value":"action"}},{"kind":"Field","name":{"kind":"Name","value":"eventName"}},{"kind":"Field","name":{"kind":"Name","value":"job"}},{"kind":"Field","name":{"kind":"Name","value":"runnerName"}},{"kind":"Field","name":{"kind":"Name","value":"runnerArch"}},{"kind":"Field","name":{"kind":"Name","value":"runnerOs"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"FullBazelInvocationDetails"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocation"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"BazelInvocationInfo"}}]}}]} as unknown as DocumentNode; export const GetTargetsWithOffsetDocument = {"__meta__":{"hash":"45528b39e6234ab4c14e4ade920240652d8961e8"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetTargetsWithOffset"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"label"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"offset"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"limit"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"sortBy"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"direction"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getTargetsWithOffset"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"label"},"value":{"kind":"Variable","name":{"kind":"Name","value":"label"}}},{"kind":"Argument","name":{"kind":"Name","value":"offset"},"value":{"kind":"Variable","name":{"kind":"Name","value":"offset"}}},{"kind":"Argument","name":{"kind":"Name","value":"limit"},"value":{"kind":"Variable","name":{"kind":"Name","value":"limit"}}},{"kind":"Argument","name":{"kind":"Name","value":"sortBy"},"value":{"kind":"Variable","name":{"kind":"Name","value":"sortBy"}}},{"kind":"Argument","name":{"kind":"Name","value":"direction"},"value":{"kind":"Variable","name":{"kind":"Name","value":"direction"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"total"}},{"kind":"Field","name":{"kind":"Name","value":"result"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"sum"}},{"kind":"Field","name":{"kind":"Name","value":"min"}},{"kind":"Field","name":{"kind":"Name","value":"max"}},{"kind":"Field","name":{"kind":"Name","value":"avg"}},{"kind":"Field","name":{"kind":"Name","value":"count"}},{"kind":"Field","name":{"kind":"Name","value":"passRate"}}]}}]}}]}}]} as unknown as DocumentNode; export const FindTargetsDocument = {"__meta__":{"hash":"f4e866e3a87835a6ea5e334117dc69417e8cda19"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindTargets"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"where"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"TargetPairWhereInput"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"TargetPairOrder"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"after"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findTargets"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"where"}}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}}},{"kind":"Argument","name":{"kind":"Name","value":"after"},"value":{"kind":"Variable","name":{"kind":"Name","value":"after"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"totalCount"}},{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}},{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}}]}},{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"durationInMs"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"success"}},{"kind":"Field","name":{"kind":"Name","value":"bazelInvocation"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"invocationID"}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; export const GetTestsWithOffsetDocument = {"__meta__":{"hash":"a58c22b2db5f30d1dba201fe125838c7f14d5e6d"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetTestsWithOffset"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"label"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"offset"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"limit"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"sortBy"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"direction"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getTestsWithOffset"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"label"},"value":{"kind":"Variable","name":{"kind":"Name","value":"label"}}},{"kind":"Argument","name":{"kind":"Name","value":"offset"},"value":{"kind":"Variable","name":{"kind":"Name","value":"offset"}}},{"kind":"Argument","name":{"kind":"Name","value":"limit"},"value":{"kind":"Variable","name":{"kind":"Name","value":"limit"}}},{"kind":"Argument","name":{"kind":"Name","value":"sortBy"},"value":{"kind":"Variable","name":{"kind":"Name","value":"sortBy"}}},{"kind":"Argument","name":{"kind":"Name","value":"direction"},"value":{"kind":"Variable","name":{"kind":"Name","value":"direction"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"total"}},{"kind":"Field","name":{"kind":"Name","value":"result"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"sum"}},{"kind":"Field","name":{"kind":"Name","value":"min"}},{"kind":"Field","name":{"kind":"Name","value":"max"}},{"kind":"Field","name":{"kind":"Name","value":"avg"}},{"kind":"Field","name":{"kind":"Name","value":"count"}},{"kind":"Field","name":{"kind":"Name","value":"passRate"}}]}}]}}]}}]} as unknown as DocumentNode; @@ -4491,5 +4503,5 @@ export const GetTestDurationAggregationDocument = {"__meta__":{"hash":"4b5a5a830 export const FindTestsDocument = {"__meta__":{"hash":"17231025ad382237c09f082d9e94e39118d8502d"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindTests"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"where"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"TestCollectionWhereInput"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"TestCollectionOrder"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"after"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findTests"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"where"}}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}}},{"kind":"Argument","name":{"kind":"Name","value":"after"},"value":{"kind":"Variable","name":{"kind":"Name","value":"after"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"totalCount"}},{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}},{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}}]}},{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"durationMs"}},{"kind":"Field","name":{"kind":"Name","value":"firstSeen"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"overallStatus"}},{"kind":"Field","name":{"kind":"Name","value":"bazelInvocation"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"invocationID"}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; export const FindBuildTimesDocument = {"__meta__":{"hash":"707420fe8ea691631ecc9c431896b8e8d6b62692"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindBuildTimes"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"where"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocationWhereInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findBazelInvocations"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"where"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}},{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}}]}},{"kind":"Field","name":{"kind":"Name","value":"totalCount"}},{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"invocationID"}},{"kind":"Field","name":{"kind":"Name","value":"startedAt"}},{"kind":"Field","name":{"kind":"Name","value":"endedAt"}}]}}]}}]}}]}}]} as unknown as DocumentNode; export const FindBazelInvocationsDocument = {"__meta__":{"hash":"7151b14bba5e7ea3e0f6e50882cc2f429591feb9"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindBazelInvocations"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"where"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocationWhereInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findBazelInvocations"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"where"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"BazelInvocationNode"}}]}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BazelInvocationNode"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BazelInvocation"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"invocationID"}},{"kind":"Field","name":{"kind":"Name","value":"startedAt"}},{"kind":"Field","name":{"kind":"Name","value":"user"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"Email"}},{"kind":"Field","name":{"kind":"Name","value":"LDAP"}}]}},{"kind":"Field","name":{"kind":"Name","value":"endedAt"}},{"kind":"Field","name":{"kind":"Name","value":"state"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"bepCompleted"}},{"kind":"Field","name":{"kind":"Name","value":"exitCode"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"code"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"build"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}}]}}]}}]} as unknown as DocumentNode; -export const FindBuildsDocument = {"__meta__":{"hash":"8edb3e7557d6c22033afe132a5975af6d3ffb001"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindBuilds"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"where"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"BuildWhereInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findBuilds"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"where"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"BuildNode"}}]}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BuildNode"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Build"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}},{"kind":"Field","name":{"kind":"Name","value":"buildURL"}}]}}]} as unknown as DocumentNode; +export const FindBuildsDocument = {"__meta__":{"hash":"f1d6d4ca1f94f09f0cde26127d88f438e7b81111"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindBuilds"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"where"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"BuildWhereInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findBuilds"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"where"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"BuildNode"}}]}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BuildNode"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Build"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"buildUUID"}},{"kind":"Field","name":{"kind":"Name","value":"buildURL"}},{"kind":"Field","name":{"kind":"Name","value":"timestamp"}}]}}]} as unknown as DocumentNode; export const FindTestsWithCacheDocument = {"__meta__":{"hash":"add15b38babd589a6f929f238d8f8f03392ad43b"},"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindTestsWithCache"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"where"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"TestCollectionWhereInput"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"TestCollectionOrder"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"after"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Cursor"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findTests"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}},{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"where"}}},{"kind":"Argument","name":{"kind":"Name","value":"orderBy"},"value":{"kind":"Variable","name":{"kind":"Name","value":"orderBy"}}},{"kind":"Argument","name":{"kind":"Name","value":"after"},"value":{"kind":"Variable","name":{"kind":"Name","value":"after"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"totalCount"}},{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}},{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}}]}},{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"durationMs"}},{"kind":"Field","name":{"kind":"Name","value":"firstSeen"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"overallStatus"}},{"kind":"Field","name":{"kind":"Name","value":"cachedLocally"}},{"kind":"Field","name":{"kind":"Name","value":"cachedRemotely"}},{"kind":"Field","name":{"kind":"Name","value":"bazelInvocation"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"invocationID"}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; \ No newline at end of file diff --git a/frontend/src/graphql/__generated__/persisted-documents.json b/frontend/src/graphql/__generated__/persisted-documents.json index 0fea8a9..2fa3298 100644 --- a/frontend/src/graphql/__generated__/persisted-documents.json +++ b/frontend/src/graphql/__generated__/persisted-documents.json @@ -2,7 +2,7 @@ "b81aff00ca1f89dde18260c8f18c1501b018a5f3": "fragment BazelInvocationInfo on BazelInvocation { bazelCommand { cmdLine command executable explicitCmdLine explicitStartupOptions id residual startupOptions } build { buildUUID id } configurationMnemonic cpu endedAt hostname id invocationID isCiWorker metrics { actionSummary { actionCacheStatistics { hits id loadTimeInMs missDetails { count id reason } misses saveTimeInMs sizeInBytes } actionData { actionsCreated actionsExecuted firstStartedMs id lastEndedMs mnemonic systemTime userTime } actionsCreated actionsCreatedNotIncludingAspects actionsExecuted id remoteCacheHits runnerCount { actionsExecuted execKind id name } } artifactMetrics { id outputArtifactsFromActionCache { count id sizeInBytes } outputArtifactsSeen { count id sizeInBytes } sourceArtifactsRead { count id sizeInBytes } topLevelArtifacts { count id sizeInBytes } } buildGraphMetrics { actionCount actionLookupValueCount actionLookupValueCountNotIncludingAspects id inputFileConfiguredTargetCount otherConfiguredTargetCount outputArtifactCount outputFileConfiguredTargetCount postInvocationSkyframeNodeCount } cumulativeMetrics { id numAnalyses numBuilds } dynamicExecutionMetrics { id raceStatistics { id localRunner localWins mnemonic remoteRunner renoteWins } } id memoryMetrics { garbageMetrics { garbageCollected id type } id peakPostGcHeapSize peakPostGcTenuredSpaceHeapSize usedHeapSizePostBuild } networkMetrics { id systemNetworkStats { bytesRecv bytesSent id packetsRecv packetsSent peakBytesRecvPerSec peakBytesSentPerSec peakPacketsRecvPerSec peakPacketsSentPerSec } } packageMetrics { id packageLoadMetrics { computationSteps id loadDuration name numTargets numTransitiveLoads packageOverhead } packagesLoaded } targetMetrics { id targetsConfigured targetsConfiguredNotIncludingAspects targetsLoaded } timingMetrics { actionsExecutionStartInMs analysisPhaseTimeInMs cpuTimeInMs executionPhaseTimeInMs id wallTimeInMs } } numFetches profile { digest id name sizeInBytes } relatedFiles { name url } sourceControl { action actor branch commitSha eventName id job refs repoURL runID runnerArch runnerName runnerOs workflow workspace } startedAt state { bepCompleted buildEndTime buildStartTime exitCode { code id name } id } stepLabel targets { abortReason durationInMs id label success targetKind testSize } testCollection { cachedLocally cachedRemotely durationMs id label overallStatus strategy } user { Email LDAP } } fragment FullBazelInvocationDetails on BazelInvocation { ...BazelInvocationInfo } query LoadFullBazelInvocationDetails($invocationID: String!) { bazelInvocation(invocationId: $invocationID) { ...FullBazelInvocationDetails } }", "bb34b92cb4a11280082ec2332b06334a13cf4433": "fragment BlobReferenceInfo on BlobReference { availabilityStatus downloadURL ephemeralURL name sizeInBytes } fragment ProblemDetails on BazelInvocation { problems { ...ProblemInfo } } fragment ProblemInfo on Problem { __typename id label ... on ActionProblem { __typename id label stderr { ...BlobReferenceInfo } stdout { ...BlobReferenceInfo } type } ... on ProgressProblem { __typename id label output } ... on TargetProblem { __typename id label } ... on TestProblem { __typename id label results { __typename actionLogOutput { ...BlobReferenceInfo } attempt id run shard status undeclaredTestOutputs { ...BlobReferenceInfo } } status } } query GetProblemDetails($invocationID: String!) { bazelInvocation(invocationId: $invocationID) { ...ProblemDetails } }", "1e8efb549059b9fe79348092e6a23e7ea9b365f8": "fragment BlobReferenceInfo on BlobReference { availabilityStatus downloadURL ephemeralURL name sizeInBytes } query GetActionProblem($id: ID!) { node(id: $id) { id ... on ActionProblem { label stderr { ...BlobReferenceInfo } stdout { ...BlobReferenceInfo } } } }", - "482603255e473f6937c1813eb3edf1d705de0574": "fragment BazelInvocationInfo on BazelInvocation { bazelCommand { cmdLine command executable explicitCmdLine explicitStartupOptions id residual startupOptions } build { buildUUID id } configurationMnemonic cpu endedAt hostname id invocationID isCiWorker metrics { actionSummary { actionCacheStatistics { hits id loadTimeInMs missDetails { count id reason } misses saveTimeInMs sizeInBytes } actionData { actionsCreated actionsExecuted firstStartedMs id lastEndedMs mnemonic systemTime userTime } actionsCreated actionsCreatedNotIncludingAspects actionsExecuted id remoteCacheHits runnerCount { actionsExecuted execKind id name } } artifactMetrics { id outputArtifactsFromActionCache { count id sizeInBytes } outputArtifactsSeen { count id sizeInBytes } sourceArtifactsRead { count id sizeInBytes } topLevelArtifacts { count id sizeInBytes } } buildGraphMetrics { actionCount actionLookupValueCount actionLookupValueCountNotIncludingAspects id inputFileConfiguredTargetCount otherConfiguredTargetCount outputArtifactCount outputFileConfiguredTargetCount postInvocationSkyframeNodeCount } cumulativeMetrics { id numAnalyses numBuilds } dynamicExecutionMetrics { id raceStatistics { id localRunner localWins mnemonic remoteRunner renoteWins } } id memoryMetrics { garbageMetrics { garbageCollected id type } id peakPostGcHeapSize peakPostGcTenuredSpaceHeapSize usedHeapSizePostBuild } networkMetrics { id systemNetworkStats { bytesRecv bytesSent id packetsRecv packetsSent peakBytesRecvPerSec peakBytesSentPerSec peakPacketsRecvPerSec peakPacketsSentPerSec } } packageMetrics { id packageLoadMetrics { computationSteps id loadDuration name numTargets numTransitiveLoads packageOverhead } packagesLoaded } targetMetrics { id targetsConfigured targetsConfiguredNotIncludingAspects targetsLoaded } timingMetrics { actionsExecutionStartInMs analysisPhaseTimeInMs cpuTimeInMs executionPhaseTimeInMs id wallTimeInMs } } numFetches profile { digest id name sizeInBytes } relatedFiles { name url } sourceControl { action actor branch commitSha eventName id job refs repoURL runID runnerArch runnerName runnerOs workflow workspace } startedAt state { bepCompleted buildEndTime buildStartTime exitCode { code id name } id } stepLabel targets { abortReason durationInMs id label success targetKind testSize } testCollection { cachedLocally cachedRemotely durationMs id label overallStatus strategy } user { Email LDAP } } fragment FullBazelInvocationDetails on BazelInvocation { ...BazelInvocationInfo } query FindBuildByUUID($url: String, $uuid: UUID) { getBuild(buildURL: $url, buildUUID: $uuid) { buildURL buildUUID env { key value } id invocations { ...FullBazelInvocationDetails } } }", + "b95794cad1e5149e8a7239d2c71e936d924b14a8": "fragment BazelInvocationInfo on BazelInvocation { bazelCommand { cmdLine command executable explicitCmdLine explicitStartupOptions id residual startupOptions } build { buildUUID id } configurationMnemonic cpu endedAt hostname id invocationID isCiWorker metrics { actionSummary { actionCacheStatistics { hits id loadTimeInMs missDetails { count id reason } misses saveTimeInMs sizeInBytes } actionData { actionsCreated actionsExecuted firstStartedMs id lastEndedMs mnemonic systemTime userTime } actionsCreated actionsCreatedNotIncludingAspects actionsExecuted id remoteCacheHits runnerCount { actionsExecuted execKind id name } } artifactMetrics { id outputArtifactsFromActionCache { count id sizeInBytes } outputArtifactsSeen { count id sizeInBytes } sourceArtifactsRead { count id sizeInBytes } topLevelArtifacts { count id sizeInBytes } } buildGraphMetrics { actionCount actionLookupValueCount actionLookupValueCountNotIncludingAspects id inputFileConfiguredTargetCount otherConfiguredTargetCount outputArtifactCount outputFileConfiguredTargetCount postInvocationSkyframeNodeCount } cumulativeMetrics { id numAnalyses numBuilds } dynamicExecutionMetrics { id raceStatistics { id localRunner localWins mnemonic remoteRunner renoteWins } } id memoryMetrics { garbageMetrics { garbageCollected id type } id peakPostGcHeapSize peakPostGcTenuredSpaceHeapSize usedHeapSizePostBuild } networkMetrics { id systemNetworkStats { bytesRecv bytesSent id packetsRecv packetsSent peakBytesRecvPerSec peakBytesSentPerSec peakPacketsRecvPerSec peakPacketsSentPerSec } } packageMetrics { id packageLoadMetrics { computationSteps id loadDuration name numTargets numTransitiveLoads packageOverhead } packagesLoaded } targetMetrics { id targetsConfigured targetsConfiguredNotIncludingAspects targetsLoaded } timingMetrics { actionsExecutionStartInMs analysisPhaseTimeInMs cpuTimeInMs executionPhaseTimeInMs id wallTimeInMs } } numFetches profile { digest id name sizeInBytes } relatedFiles { name url } sourceControl { action actor branch commitSha eventName id job refs repoURL runID runnerArch runnerName runnerOs workflow workspace } startedAt state { bepCompleted buildEndTime buildStartTime exitCode { code id name } id } stepLabel targets { abortReason durationInMs id label success targetKind testSize } testCollection { cachedLocally cachedRemotely durationMs id label overallStatus strategy } user { Email LDAP } } fragment FullBazelInvocationDetails on BazelInvocation { ...BazelInvocationInfo } query FindBuildByUUID($url: String, $uuid: UUID) { getBuild(buildURL: $url, buildUUID: $uuid) { buildURL buildUUID env { key value } id invocations { ...FullBazelInvocationDetails } timestamp } }", "45528b39e6234ab4c14e4ade920240652d8961e8": "query GetTargetsWithOffset($direction: String, $label: String, $limit: Int, $offset: Int, $sortBy: String) { getTargetsWithOffset( label: $label offset: $offset limit: $limit sortBy: $sortBy direction: $direction ) { result { avg count label max min passRate sum } total } }", "f4e866e3a87835a6ea5e334117dc69417e8cda19": "query FindTargets($after: Cursor, $first: Int!, $orderBy: TargetPairOrder, $where: TargetPairWhereInput) { findTargets(first: $first, where: $where, orderBy: $orderBy, after: $after) { edges { node { bazelInvocation { invocationID } durationInMs id label success } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } totalCount } }", "a58c22b2db5f30d1dba201fe125838c7f14d5e6d": "query GetTestsWithOffset($direction: String, $label: String, $limit: Int, $offset: Int, $sortBy: String) { getTestsWithOffset( label: $label offset: $offset limit: $limit sortBy: $sortBy direction: $direction ) { result { avg count label max min passRate sum } total } }", @@ -12,6 +12,6 @@ "17231025ad382237c09f082d9e94e39118d8502d": "query FindTests($after: Cursor, $first: Int!, $orderBy: TestCollectionOrder, $where: TestCollectionWhereInput) { findTests(first: $first, where: $where, orderBy: $orderBy, after: $after) { edges { node { bazelInvocation { invocationID } durationMs firstSeen id label overallStatus } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } totalCount } }", "707420fe8ea691631ecc9c431896b8e8d6b62692": "query FindBuildTimes($first: Int!, $where: BazelInvocationWhereInput) { findBazelInvocations(first: $first, where: $where) { edges { node { endedAt invocationID startedAt } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } totalCount } }", "7151b14bba5e7ea3e0f6e50882cc2f429591feb9": "fragment BazelInvocationNode on BazelInvocation { build { buildUUID } endedAt id invocationID startedAt state { bepCompleted exitCode { code name } } user { Email LDAP } } query FindBazelInvocations($first: Int!, $where: BazelInvocationWhereInput) { findBazelInvocations(first: $first, where: $where) { edges { node { ...BazelInvocationNode } } } }", - "8edb3e7557d6c22033afe132a5975af6d3ffb001": "fragment BuildNode on Build { buildURL buildUUID id } query FindBuilds($first: Int!, $where: BuildWhereInput) { findBuilds(first: $first, where: $where) { edges { node { ...BuildNode } } } }", + "f1d6d4ca1f94f09f0cde26127d88f438e7b81111": "fragment BuildNode on Build { buildURL buildUUID id timestamp } query FindBuilds($first: Int!, $where: BuildWhereInput) { findBuilds(first: $first, where: $where) { edges { node { ...BuildNode } } } }", "add15b38babd589a6f929f238d8f8f03392ad43b": "query FindTestsWithCache($after: Cursor, $first: Int!, $orderBy: TestCollectionOrder, $where: TestCollectionWhereInput) { findTests(first: $first, where: $where, orderBy: $orderBy, after: $after) { edges { node { bazelInvocation { invocationID } cachedLocally cachedRemotely durationMs firstSeen id label overallStatus } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } totalCount } }" } \ No newline at end of file diff --git a/internal/graphql/schema/ent.graphql b/internal/graphql/schema/ent.graphql index d3a1301..d61ca02 100644 --- a/internal/graphql/schema/ent.graphql +++ b/internal/graphql/schema/ent.graphql @@ -946,6 +946,7 @@ type Build implements Node { id: ID! buildURL: String! buildUUID: UUID! + timestamp: Time invocations: [BazelInvocation!] } """ @@ -1210,6 +1211,19 @@ input BuildWhereInput { buildUUIDLT: UUID buildUUIDLTE: UUID """ + timestamp field predicates + """ + timestamp: Time + timestampNEQ: Time + timestampIn: [Time!] + timestampNotIn: [Time!] + timestampGT: Time + timestampGTE: Time + timestampLT: Time + timestampLTE: Time + timestampIsNil: Boolean + timestampNotNil: Boolean + """ invocations edge predicates """ hasInvocations: Boolean diff --git a/internal/graphql/server_gen.go b/internal/graphql/server_gen.go index 19dc372..a1a5452 100644 --- a/internal/graphql/server_gen.go +++ b/internal/graphql/server_gen.go @@ -286,6 +286,7 @@ type ComplexityRoot struct { Env func(childComplexity int) int ID func(childComplexity int) int Invocations func(childComplexity int) int + Timestamp func(childComplexity int) int } BuildConnection struct { @@ -2127,6 +2128,13 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return e.complexity.Build.Invocations(childComplexity), true + case "Build.timestamp": + if e.complexity.Build.Timestamp == nil { + break + } + + return e.complexity.Build.Timestamp(childComplexity), true + case "BuildConnection.edges": if e.complexity.BuildConnection.Edges == nil { break @@ -9385,6 +9393,8 @@ func (ec *executionContext) fieldContext_BazelInvocation_build(_ context.Context return ec.fieldContext_Build_buildURL(ctx, field) case "buildUUID": return ec.fieldContext_Build_buildUUID(ctx, field) + case "timestamp": + return ec.fieldContext_Build_timestamp(ctx, field) case "invocations": return ec.fieldContext_Build_invocations(ctx, field) case "env": @@ -11330,6 +11340,47 @@ func (ec *executionContext) fieldContext_Build_buildUUID(_ context.Context, fiel return fc, nil } +func (ec *executionContext) _Build_timestamp(ctx context.Context, field graphql.CollectedField, obj *ent.Build) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Build_timestamp(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.Timestamp, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(time.Time) + fc.Result = res + return ec.marshalOTime2timeᚐTime(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Build_timestamp(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Build", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type Time does not have child fields") + }, + } + return fc, nil +} + func (ec *executionContext) _Build_invocations(ctx context.Context, field graphql.CollectedField, obj *ent.Build) (ret graphql.Marshaler) { fc, err := ec.fieldContext_Build_invocations(ctx, field) if err != nil { @@ -11668,6 +11719,8 @@ func (ec *executionContext) fieldContext_BuildEdge_node(_ context.Context, field return ec.fieldContext_Build_buildURL(ctx, field) case "buildUUID": return ec.fieldContext_Build_buildUUID(ctx, field) + case "timestamp": + return ec.fieldContext_Build_timestamp(ctx, field) case "invocations": return ec.fieldContext_Build_invocations(ctx, field) case "env": @@ -18299,6 +18352,8 @@ func (ec *executionContext) fieldContext_Query_getBuild(ctx context.Context, fie return ec.fieldContext_Build_buildURL(ctx, field) case "buildUUID": return ec.fieldContext_Build_buildUUID(ctx, field) + case "timestamp": + return ec.fieldContext_Build_timestamp(ctx, field) case "invocations": return ec.fieldContext_Build_invocations(ctx, field) case "env": @@ -34974,7 +35029,7 @@ func (ec *executionContext) unmarshalInputBuildWhereInput(ctx context.Context, o asMap[k] = v } - fieldsInOrder := [...]string{"not", "and", "or", "id", "idNEQ", "idIn", "idNotIn", "idGT", "idGTE", "idLT", "idLTE", "buildURL", "buildURLNEQ", "buildURLIn", "buildURLNotIn", "buildURLGT", "buildURLGTE", "buildURLLT", "buildURLLTE", "buildURLContains", "buildURLHasPrefix", "buildURLHasSuffix", "buildURLEqualFold", "buildURLContainsFold", "buildUUID", "buildUUIDNEQ", "buildUUIDIn", "buildUUIDNotIn", "buildUUIDGT", "buildUUIDGTE", "buildUUIDLT", "buildUUIDLTE", "hasInvocations", "hasInvocationsWith"} + fieldsInOrder := [...]string{"not", "and", "or", "id", "idNEQ", "idIn", "idNotIn", "idGT", "idGTE", "idLT", "idLTE", "buildURL", "buildURLNEQ", "buildURLIn", "buildURLNotIn", "buildURLGT", "buildURLGTE", "buildURLLT", "buildURLLTE", "buildURLContains", "buildURLHasPrefix", "buildURLHasSuffix", "buildURLEqualFold", "buildURLContainsFold", "buildUUID", "buildUUIDNEQ", "buildUUIDIn", "buildUUIDNotIn", "buildUUIDGT", "buildUUIDGTE", "buildUUIDLT", "buildUUIDLTE", "timestamp", "timestampNEQ", "timestampIn", "timestampNotIn", "timestampGT", "timestampGTE", "timestampLT", "timestampLTE", "timestampIsNil", "timestampNotNil", "hasInvocations", "hasInvocationsWith"} for _, k := range fieldsInOrder { v, ok := asMap[k] if !ok { @@ -35221,6 +35276,76 @@ func (ec *executionContext) unmarshalInputBuildWhereInput(ctx context.Context, o return it, err } it.BuildUUIDLTE = data + case "timestamp": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("timestamp")) + data, err := ec.unmarshalOTime2ᚖtimeᚐTime(ctx, v) + if err != nil { + return it, err + } + it.Timestamp = data + case "timestampNEQ": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("timestampNEQ")) + data, err := ec.unmarshalOTime2ᚖtimeᚐTime(ctx, v) + if err != nil { + return it, err + } + it.TimestampNEQ = data + case "timestampIn": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("timestampIn")) + data, err := ec.unmarshalOTime2ᚕtimeᚐTimeᚄ(ctx, v) + if err != nil { + return it, err + } + it.TimestampIn = data + case "timestampNotIn": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("timestampNotIn")) + data, err := ec.unmarshalOTime2ᚕtimeᚐTimeᚄ(ctx, v) + if err != nil { + return it, err + } + it.TimestampNotIn = data + case "timestampGT": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("timestampGT")) + data, err := ec.unmarshalOTime2ᚖtimeᚐTime(ctx, v) + if err != nil { + return it, err + } + it.TimestampGT = data + case "timestampGTE": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("timestampGTE")) + data, err := ec.unmarshalOTime2ᚖtimeᚐTime(ctx, v) + if err != nil { + return it, err + } + it.TimestampGTE = data + case "timestampLT": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("timestampLT")) + data, err := ec.unmarshalOTime2ᚖtimeᚐTime(ctx, v) + if err != nil { + return it, err + } + it.TimestampLT = data + case "timestampLTE": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("timestampLTE")) + data, err := ec.unmarshalOTime2ᚖtimeᚐTime(ctx, v) + if err != nil { + return it, err + } + it.TimestampLTE = data + case "timestampIsNil": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("timestampIsNil")) + data, err := ec.unmarshalOBoolean2bool(ctx, v) + if err != nil { + return it, err + } + it.TimestampIsNil = data + case "timestampNotNil": + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("timestampNotNil")) + data, err := ec.unmarshalOBoolean2bool(ctx, v) + if err != nil { + return it, err + } + it.TimestampNotNil = data case "hasInvocations": ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("hasInvocations")) data, err := ec.unmarshalOBoolean2ᚖbool(ctx, v) @@ -51591,6 +51716,8 @@ func (ec *executionContext) _Build(ctx context.Context, sel ast.SelectionSet, ob if out.Values[i] == graphql.Null { atomic.AddUint32(&out.Invalids, 1) } + case "timestamp": + out.Values[i] = ec._Build_timestamp(ctx, field, obj) case "invocations": field := field diff --git a/internal/graphql/testdata/snapshot.db b/internal/graphql/testdata/snapshot.db index 5514155..b34c224 100644 Binary files a/internal/graphql/testdata/snapshot.db and b/internal/graphql/testdata/snapshot.db differ diff --git a/internal/graphql/testdata/snapshots/FindBuildByUUID/found-(by-URL).golden.json b/internal/graphql/testdata/snapshots/FindBuildByUUID/found-(by-URL).golden.json index 4dd2255..22c914f 100644 --- a/internal/graphql/testdata/snapshots/FindBuildByUUID/found-(by-URL).golden.json +++ b/internal/graphql/testdata/snapshots/FindBuildByUUID/found-(by-URL).golden.json @@ -262,61 +262,61 @@ "targets": [ { "abortReason": "", - "durationInMs": 1, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMTU=", - "label": "//next.js/pages:_jest_test_bazel_snapshot_resolver", + "label": "//next.js:build_test", "success": true, - "targetKind": "_copy_file rule", - "testSize": "UNKNOWN" + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMTY=", - "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": 2, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMTc=", - "label": "//next.js:next_dev", + "label": "//next.js:jest_config", "success": true, - "targetKind": "_js_run_devserver rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoyMTg=", - "label": "//next.js:next_js_binary", + "label": "//next.js/pages:jest_test", "success": true, - "targetKind": "js_binary rule", - "testSize": "UNKNOWN" + "targetKind": "jest_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMTk=", - "label": "//next.js/pages:_jest_test_bazel_sequencer", + "label": "//next.js/pages:_jest_test_bazel_snapshot_resolver", "success": true, "targetKind": "_copy_file rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMjA=", - "label": "//next.js/pages/api:api", + "label": "//next.js/pages:_jest_test_jest_entrypoint", "success": true, - "targetKind": "ts_project rule", + "targetKind": "directory_path rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMjE=", "label": "//next.js/pages:pages", "success": true, @@ -327,118 +327,118 @@ "abortReason": "", "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjI=", - "label": "//next.js/public:public", + "label": "//next.js/pages/api:api", "success": true, - "targetKind": "js_library rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 3, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjM=", - "label": "//next.js:build_test", + "label": "//next.js/public:public", "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "targetKind": "js_library rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjQ=", - "label": "//next.js:eslintrc", + "label": "//next.js:next_dev", "success": true, - "targetKind": "js_library rule", + "targetKind": "_js_run_devserver rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjU=", - "label": "//next.js:next_start", + "label": "//next.js:tsconfig", "success": true, - "targetKind": "_js_run_devserver rule", + "targetKind": "ts_config rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjY=", - "label": "//next.js:package_json", + "label": "//next.js/pages:_jest_test_bazel_sequencer", "success": true, - "targetKind": "js_library rule", + "targetKind": "_copy_file rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjc=", - "label": "//next.js:tsconfig", + "label": "//next.js:next", "success": true, - "targetKind": "ts_config rule", + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjg=", - "label": "//next.js/pages:_jest_test_jest_entrypoint", + "label": "//next.js:package_json", "success": true, - "targetKind": "directory_path rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMjk=", - "label": "//next.js/pages:specs", + "label": "//next.js:build_smoke_test", "success": true, - "targetKind": "ts_project rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMzA=", - "label": "//next.js:next", + "label": "//next.js:next_js_binary", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMzE=", - "label": "//next.js/pages:_jest_test_bazel_snapshot_reporter", + "label": "//next.js:next_start", "success": true, - "targetKind": "_copy_file rule", + "targetKind": "_js_run_devserver rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMzI=", - "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": "", - "durationInMs": 0, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMzM=", - "label": "//next.js:jest_config", + "label": "//next.js/pages:specs", "success": true, - "targetKind": "js_library rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMzQ=", - "label": "//next.js/pages:jest_test", + "label": "//next.js/styles:styles", "success": true, - "targetKind": "jest_test rule", - "testSize": "MEDIUM" + "targetKind": "js_library rule", + "testSize": "UNKNOWN" } ], "testCollection": [ @@ -475,6 +475,7 @@ "LDAP": "" } } - ] + ], + "timestamp": "2024-05-13T23:43:23.045Z" } } \ No newline at end of file diff --git a/internal/graphql/testdata/snapshots/FindBuildByUUID/found-(by-UUID).golden.json b/internal/graphql/testdata/snapshots/FindBuildByUUID/found-(by-UUID).golden.json index 4dd2255..22c914f 100644 --- a/internal/graphql/testdata/snapshots/FindBuildByUUID/found-(by-UUID).golden.json +++ b/internal/graphql/testdata/snapshots/FindBuildByUUID/found-(by-UUID).golden.json @@ -262,61 +262,61 @@ "targets": [ { "abortReason": "", - "durationInMs": 1, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMTU=", - "label": "//next.js/pages:_jest_test_bazel_snapshot_resolver", + "label": "//next.js:build_test", "success": true, - "targetKind": "_copy_file rule", - "testSize": "UNKNOWN" + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMTY=", - "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": 2, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMTc=", - "label": "//next.js:next_dev", + "label": "//next.js:jest_config", "success": true, - "targetKind": "_js_run_devserver rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoyMTg=", - "label": "//next.js:next_js_binary", + "label": "//next.js/pages:jest_test", "success": true, - "targetKind": "js_binary rule", - "testSize": "UNKNOWN" + "targetKind": "jest_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMTk=", - "label": "//next.js/pages:_jest_test_bazel_sequencer", + "label": "//next.js/pages:_jest_test_bazel_snapshot_resolver", "success": true, "targetKind": "_copy_file rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMjA=", - "label": "//next.js/pages/api:api", + "label": "//next.js/pages:_jest_test_jest_entrypoint", "success": true, - "targetKind": "ts_project rule", + "targetKind": "directory_path rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMjE=", "label": "//next.js/pages:pages", "success": true, @@ -327,118 +327,118 @@ "abortReason": "", "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjI=", - "label": "//next.js/public:public", + "label": "//next.js/pages/api:api", "success": true, - "targetKind": "js_library rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 3, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjM=", - "label": "//next.js:build_test", + "label": "//next.js/public:public", "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "targetKind": "js_library rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjQ=", - "label": "//next.js:eslintrc", + "label": "//next.js:next_dev", "success": true, - "targetKind": "js_library rule", + "targetKind": "_js_run_devserver rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjU=", - "label": "//next.js:next_start", + "label": "//next.js:tsconfig", "success": true, - "targetKind": "_js_run_devserver rule", + "targetKind": "ts_config rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjY=", - "label": "//next.js:package_json", + "label": "//next.js/pages:_jest_test_bazel_sequencer", "success": true, - "targetKind": "js_library rule", + "targetKind": "_copy_file rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjc=", - "label": "//next.js:tsconfig", + "label": "//next.js:next", "success": true, - "targetKind": "ts_config rule", + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjg=", - "label": "//next.js/pages:_jest_test_jest_entrypoint", + "label": "//next.js:package_json", "success": true, - "targetKind": "directory_path rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMjk=", - "label": "//next.js/pages:specs", + "label": "//next.js:build_smoke_test", "success": true, - "targetKind": "ts_project rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMzA=", - "label": "//next.js:next", + "label": "//next.js:next_js_binary", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMzE=", - "label": "//next.js/pages:_jest_test_bazel_snapshot_reporter", + "label": "//next.js:next_start", "success": true, - "targetKind": "_copy_file rule", + "targetKind": "_js_run_devserver rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMzI=", - "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": "", - "durationInMs": 0, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMzM=", - "label": "//next.js:jest_config", + "label": "//next.js/pages:specs", "success": true, - "targetKind": "js_library rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMzQ=", - "label": "//next.js/pages:jest_test", + "label": "//next.js/styles:styles", "success": true, - "targetKind": "jest_test rule", - "testSize": "MEDIUM" + "targetKind": "js_library rule", + "testSize": "UNKNOWN" } ], "testCollection": [ @@ -475,6 +475,7 @@ "LDAP": "" } } - ] + ], + "timestamp": "2024-05-13T23:43:23.045Z" } } \ No newline at end of file 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 de2258c..911184e 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,61 +251,61 @@ "targets": [ { "abortReason": "", - "durationInMs": 1, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMTU=", - "label": "//next.js/pages:_jest_test_bazel_snapshot_resolver", + "label": "//next.js:build_test", "success": true, - "targetKind": "_copy_file rule", - "testSize": "UNKNOWN" + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMTY=", - "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": 2, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMTc=", - "label": "//next.js:next_dev", + "label": "//next.js:jest_config", "success": true, - "targetKind": "_js_run_devserver rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoyMTg=", - "label": "//next.js:next_js_binary", + "label": "//next.js/pages:jest_test", "success": true, - "targetKind": "js_binary rule", - "testSize": "UNKNOWN" + "targetKind": "jest_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMTk=", - "label": "//next.js/pages:_jest_test_bazel_sequencer", + "label": "//next.js/pages:_jest_test_bazel_snapshot_resolver", "success": true, "targetKind": "_copy_file rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMjA=", - "label": "//next.js/pages/api:api", + "label": "//next.js/pages:_jest_test_jest_entrypoint", "success": true, - "targetKind": "ts_project rule", + "targetKind": "directory_path rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMjE=", "label": "//next.js/pages:pages", "success": true, @@ -316,118 +316,118 @@ "abortReason": "", "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjI=", - "label": "//next.js/public:public", + "label": "//next.js/pages/api:api", "success": true, - "targetKind": "js_library rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 3, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjM=", - "label": "//next.js:build_test", + "label": "//next.js/public:public", "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "targetKind": "js_library rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjQ=", - "label": "//next.js:eslintrc", + "label": "//next.js:next_dev", "success": true, - "targetKind": "js_library rule", + "targetKind": "_js_run_devserver rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjU=", - "label": "//next.js:next_start", + "label": "//next.js:tsconfig", "success": true, - "targetKind": "_js_run_devserver rule", + "targetKind": "ts_config rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjY=", - "label": "//next.js:package_json", + "label": "//next.js/pages:_jest_test_bazel_sequencer", "success": true, - "targetKind": "js_library rule", + "targetKind": "_copy_file rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjc=", - "label": "//next.js:tsconfig", + "label": "//next.js:next", "success": true, - "targetKind": "ts_config rule", + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMjg=", - "label": "//next.js/pages:_jest_test_jest_entrypoint", + "label": "//next.js:package_json", "success": true, - "targetKind": "directory_path rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMjk=", - "label": "//next.js/pages:specs", + "label": "//next.js:build_smoke_test", "success": true, - "targetKind": "ts_project rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMzA=", - "label": "//next.js:next", + "label": "//next.js:next_js_binary", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMzE=", - "label": "//next.js/pages:_jest_test_bazel_snapshot_reporter", + "label": "//next.js:next_start", "success": true, - "targetKind": "_copy_file rule", + "targetKind": "_js_run_devserver rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMzI=", - "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": "", - "durationInMs": 0, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMzM=", - "label": "//next.js:jest_config", + "label": "//next.js/pages:specs", "success": true, - "targetKind": "js_library rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMzQ=", - "label": "//next.js/pages:jest_test", + "label": "//next.js/styles:styles", "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 f15d847..2ce2ee6 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 @@ -230,63 +230,45 @@ "stepLabel": "", "targets": [ { - "abortReason": "INCOMPLETE", - "durationInMs": 2, + "abortReason": "", + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMjc=", - "label": "//next.js/pages:specs", - "success": false, - "targetKind": "ts_project rule", + "label": "//next.js/styles:styles", + "success": true, + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "INCOMPLETE", "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxMjg=", - "label": "//packages/one:one", - "success": false, - "targetKind": "_npm_package rule", - "testSize": "UNKNOWN" - }, - { - "abortReason": "INCOMPLETE", - "durationInMs": 1, - "id": "VGFyZ2V0UGFpcjoxMjk=", "label": "//packages/one:one_ts", "success": false, "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, - { - "abortReason": "INCOMPLETE", - "durationInMs": 1, - "id": "VGFyZ2V0UGFpcjoxMzA=", - "label": "//next.js:package_json", - "success": false, - "targetKind": "js_library rule", - "testSize": "UNKNOWN" - }, { "abortReason": "", "durationInMs": 0, - "id": "VGFyZ2V0UGFpcjoxMzE=", - "label": "//react/src:assets", + "id": "VGFyZ2V0UGFpcjoxMjk=", + "label": "//react/src:src_typecheck", "success": true, - "targetKind": "js_library rule", + "targetKind": "filegroup rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, - "id": "VGFyZ2V0UGFpcjoxMzI=", - "label": "//react/src:src", + "id": "VGFyZ2V0UGFpcjoxMzA=", + "label": "//react/src:src_transpile", "success": true, - "targetKind": "js_library rule", + "targetKind": "swc_compile rule", "testSize": "UNKNOWN" }, { "abortReason": "INCOMPLETE", "durationInMs": 1, - "id": "VGFyZ2V0UGFpcjoxMzM=", + "id": "VGFyZ2V0UGFpcjoxMzE=", "label": "//next.js:tsconfig", "success": false, "targetKind": "ts_config rule", @@ -295,16 +277,16 @@ { "abortReason": "", "durationInMs": 0, - "id": "VGFyZ2V0UGFpcjoxMzQ=", - "label": "//react/src:test", + "id": "VGFyZ2V0UGFpcjoxMzI=", + "label": "//react/src:src_typings", "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "ts_project rule", + "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, - "id": "VGFyZ2V0UGFpcjoxMzU=", + "id": "VGFyZ2V0UGFpcjoxMzM=", "label": "//next.js/pages:_jest_test_bazel_sequencer", "success": true, "targetKind": "_copy_file rule", @@ -313,17 +295,26 @@ { "abortReason": "", "durationInMs": 0, - "id": "VGFyZ2V0UGFpcjoxMzY=", - "label": "//next.js/pages:_jest_test_bazel_snapshot_reporter", + "id": "VGFyZ2V0UGFpcjoxMzQ=", + "label": "//next.js/public:public", "success": true, - "targetKind": "_copy_file rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "INCOMPLETE", "durationInMs": 2, - "id": "VGFyZ2V0UGFpcjoxMzc=", - "label": "//next.js:jest_config", + "id": "VGFyZ2V0UGFpcjoxMzU=", + "label": "//next.js/pages:specs", + "success": false, + "targetKind": "ts_project rule", + "testSize": "UNKNOWN" + }, + { + "abortReason": "INCOMPLETE", + "durationInMs": 2, + "id": "VGFyZ2V0UGFpcjoxMzY=", + "label": "//next.js:eslintrc", "success": false, "targetKind": "js_library rule", "testSize": "UNKNOWN" @@ -331,15 +322,24 @@ { "abortReason": "", "durationInMs": 0, - "id": "VGFyZ2V0UGFpcjoxMzg=", - "label": "//react/src:src_typecheck", + "id": "VGFyZ2V0UGFpcjoxMzc=", + "label": "//react/public:public", "success": true, - "targetKind": "filegroup rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "INCOMPLETE", "durationInMs": 1, + "id": "VGFyZ2V0UGFpcjoxMzg=", + "label": "//react/src:lint", + "success": false, + "targetKind": "eslint_test rule", + "testSize": "MEDIUM" + }, + { + "abortReason": "INCOMPLETE", + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoxMzk=", "label": "//next.js/pages:pages", "success": false, @@ -350,51 +350,60 @@ "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNDA=", - "label": "//next.js/public:public", + "label": "//next.js/pages:_jest_test_bazel_snapshot_reporter", "success": true, - "targetKind": "js_library rule", + "targetKind": "_copy_file rule", "testSize": "UNKNOWN" }, { "abortReason": "INCOMPLETE", "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxNDE=", - "label": "//next.js:eslintrc", + "label": "//next.js:jest_config", "success": false, "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { - "abortReason": "", + "abortReason": "INCOMPLETE", "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxNDI=", - "label": "//next.js/styles:styles", - "success": true, - "targetKind": "js_library rule", + "label": "//next.js:next_js_binary", + "success": false, + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { - "abortReason": "INCOMPLETE", + "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNDM=", - "label": "//next.js:next_js_binary", - "success": false, - "targetKind": "js_binary rule", + "label": "//react/src:src", + "success": true, + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { - "abortReason": "INCOMPLETE", - "durationInMs": 2, + "abortReason": "", + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNDQ=", - "label": "//next.js/pages/api:api", - "success": false, - "targetKind": "ts_project rule", - "testSize": "UNKNOWN" + "label": "//react/src:src_typecheck_test", + "success": true, + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNDU=", + "label": "//react/src:test", + "success": true, + "targetKind": "js_test rule", + "testSize": "MEDIUM" + }, + { + "abortReason": "", + "durationInMs": 0, + "id": "VGFyZ2V0UGFpcjoxNDY=", "label": "//next.js/pages:_jest_test_bazel_snapshot_resolver", "success": true, "targetKind": "_copy_file rule", @@ -403,55 +412,46 @@ { "abortReason": "INCOMPLETE", "durationInMs": 2, - "id": "VGFyZ2V0UGFpcjoxNDY=", + "id": "VGFyZ2V0UGFpcjoxNDc=", "label": "//next.js/pages:_jest_test_jest_entrypoint", "success": false, "targetKind": "directory_path rule", "testSize": "UNKNOWN" }, { - "abortReason": "", - "durationInMs": 0, - "id": "VGFyZ2V0UGFpcjoxNDc=", - "label": "//react/src:src_typings", - "success": true, - "targetKind": "ts_project rule", + "abortReason": "INCOMPLETE", + "durationInMs": 1, + "id": "VGFyZ2V0UGFpcjoxNDg=", + "label": "//packages/one:one", + "success": false, + "targetKind": "_npm_package rule", "testSize": "UNKNOWN" }, { - "abortReason": "", - "durationInMs": 0, - "id": "VGFyZ2V0UGFpcjoxNDg=", - "label": "//react/src:src_typecheck_test", - "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "abortReason": "INCOMPLETE", + "durationInMs": 1, + "id": "VGFyZ2V0UGFpcjoxNDk=", + "label": "//next.js:package_json", + "success": false, + "targetKind": "js_library rule", + "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, - "id": "VGFyZ2V0UGFpcjoxNDk=", - "label": "//react/public:public", + "id": "VGFyZ2V0UGFpcjoxNTA=", + "label": "//react/src:assets", "success": true, "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "INCOMPLETE", - "durationInMs": 1, - "id": "VGFyZ2V0UGFpcjoxNTA=", - "label": "//react/src:lint", - "success": false, - "targetKind": "eslint_test rule", - "testSize": "MEDIUM" - }, - { - "abortReason": "", - "durationInMs": 0, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoxNTE=", - "label": "//react/src:src_transpile", - "success": true, - "targetKind": "swc_compile rule", + "label": "//next.js/pages/api:api", + "success": false, + "targetKind": "ts_project rule", "testSize": "UNKNOWN" } ], 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 390c829..c018661 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 @@ -259,313 +259,313 @@ "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo2NA==", - "label": "//react-webpack:_bundle_webpack_binary_entrypoint", + "label": "//react-webpack:_dev_server_webpack_binary_entrypoint", "success": true, "targetKind": "directory_path rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 5, "id": "VGFyZ2V0UGFpcjo2NQ==", - "label": "//next.js:jest_config", + "label": "//react-webpack:build_smoke_test", "success": true, - "targetKind": "js_library rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo2Ng==", - "label": "//react/src:src_transpile", + "label": "//:eslint", "success": true, - "targetKind": "swc_compile rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 4, "id": "VGFyZ2V0UGFpcjo2Nw==", - "label": "//react/src:test_lib_typecheck", + "label": "//next.js/pages/api:api", "success": true, - "targetKind": "filegroup rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { - "abortReason": "", - "durationInMs": 0, + "abortReason": "UNKNOWN", + "durationInMs": 9, "id": "VGFyZ2V0UGFpcjo2OA==", - "label": "//react/src:test_lib_typings", - "success": true, - "targetKind": "ts_project rule", + "label": "//next.js:next", + "success": false, + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo2OQ==", - "label": "//react:write_swcrc", + "label": "//react:tsconfig", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "ts_config rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo3MA==", - "label": "//vue/libraries/simple:simple", + "label": "//react:write_swcrc", "success": true, - "targetKind": "_npm_package rule", + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjo3MQ==", - "label": "//vue/libraries/simple:types", + "label": "//vue:build_test", "success": true, - "targetKind": "_run_binary rule", - "testSize": "UNKNOWN" + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { - "abortReason": "", - "durationInMs": 0, + "abortReason": "UNKNOWN", + "durationInMs": 10, "id": "VGFyZ2V0UGFpcjo3Mg==", - "label": "//next.js/pages:_jest_test_bazel_snapshot_resolver", - "success": true, - "targetKind": "_copy_file rule", - "testSize": "UNKNOWN" + "label": "//next.js:build_smoke_test", + "success": false, + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo3Mw==", - "label": "//next.js/public:public", + "label": "//next.js:jest_config", "success": true, "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { - "abortReason": "UNKNOWN", - "durationInMs": 9, + "abortReason": "", + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo3NA==", - "label": "//next.js:next_start", - "success": false, - "targetKind": "_js_run_devserver rule", + "label": "//next.js:tsconfig", + "success": true, + "targetKind": "ts_config rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo3NQ==", - "label": "//react:preview", + "label": "//react/src:assets", "success": true, - "targetKind": "js_binary rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { - "abortReason": "UNKNOWN", - "durationInMs": 9, + "abortReason": "", + "durationInMs": 6, "id": "VGFyZ2V0UGFpcjo3Ng==", - "label": "//next.js:build_test", - "success": false, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "label": "//react/src:lint", + "success": true, + "targetKind": "eslint_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 7, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo3Nw==", - "label": "//next.js:eslintrc", + "label": "//vue:vite", "success": true, - "targetKind": "js_library rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "UNKNOWN", - "durationInMs": 9, + "durationInMs": 10, "id": "VGFyZ2V0UGFpcjo3OA==", - "label": "//next.js:next", + "label": "//next.js:next_start", "success": false, - "targetKind": "_run_binary rule", + "targetKind": "_js_run_devserver rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 4, "id": "VGFyZ2V0UGFpcjo3OQ==", - "label": "//vue:vite", + "label": "//react:build_smoke_test", "success": true, - "targetKind": "js_binary rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 5, "id": "VGFyZ2V0UGFpcjo4MA==", - "label": "//react-webpack:build_smoke_test", + "label": "//react-webpack:_dev_server_webpack_binary", "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "js_binary rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo4MQ==", - "label": "//vue:build", + "label": "//vue/libraries/simple:simple", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "_npm_package rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo4Mg==", - "label": "//next.js/pages:_jest_test_bazel_sequencer", + "label": "//next.js:package_json", "success": true, - "targetKind": "_copy_file rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo4Mw==", - "label": "//next.js/pages:_jest_test_bazel_snapshot_reporter", + "label": "//react/src:src", "success": true, - "targetKind": "_copy_file rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 8, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo4NA==", - "label": "//next.js/pages:_jest_test_jest_entrypoint", + "label": "//react-webpack/src:transpile", "success": true, - "targetKind": "directory_path rule", + "targetKind": "swc_compile rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo4NQ==", - "label": "//react/src:src_typecheck_test", + "label": "//vue/libraries/simple:types", "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "targetKind": "_run_binary rule", + "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo4Ng==", - "label": "//vue/libraries/simple:build", + "label": "//react/src:test_lib_typings", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { - "abortReason": "UNKNOWN", - "durationInMs": 10, + "abortReason": "", + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo4Nw==", - "label": "//next.js/pages:jest_test", - "success": false, - "targetKind": "jest_test rule", - "testSize": "MEDIUM" + "label": "//react-webpack:bundle", + "success": true, + "targetKind": "_webpack_bundle rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 6, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo4OA==", - "label": "//react/src:lint", + "label": "//vue/src:src", "success": true, - "targetKind": "eslint_test rule", - "testSize": "MEDIUM" + "targetKind": "_copy_to_bin rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 9, "id": "VGFyZ2V0UGFpcjo4OQ==", - "label": "//react/src:test_lib", + "label": "//next.js/pages:_jest_test_jest_entrypoint", "success": true, - "targetKind": "js_library rule", + "targetKind": "directory_path rule", "testSize": "UNKNOWN" }, { - "abortReason": "", - "durationInMs": 1, + "abortReason": "UNKNOWN", + "durationInMs": 10, "id": "VGFyZ2V0UGFpcjo5MA==", - "label": "//react:vite.config", - "success": true, - "targetKind": "js_library rule", + "label": "//next.js:next_dev", + "success": false, + "targetKind": "_js_run_devserver rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo5MQ==", - "label": "//vue/libraries/simple:vite.config", + "label": "//react/src:src_typecheck", "success": true, - "targetKind": "js_library rule", + "targetKind": "filegroup rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo5Mg==", - "label": "//react/src:src_typings", + "label": "//react/src:src_transpile", "success": true, - "targetKind": "ts_project rule", + "targetKind": "swc_compile rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo5Mw==", - "label": "//react-webpack/src:transpile", + "label": "//react:vite", "success": true, - "targetKind": "swc_compile rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo5NA==", - "label": "//react-webpack:_dev_server_webpack_binary", + "label": "//react-webpack:_bundle_webpack_binary_entrypoint", "success": true, - "targetKind": "js_binary rule", + "targetKind": "directory_path rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjo5NQ==", - "label": "//react-webpack:_dev_server_webpack_binary_entrypoint", + "label": "//vue:type-check", "success": true, - "targetKind": "directory_path rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo5Ng==", - "label": "//next.js/pages/api:api", + "label": "//next.js/pages:_jest_test_bazel_sequencer", "success": true, - "targetKind": "ts_project rule", + "targetKind": "_copy_file rule", "testSize": "UNKNOWN" }, { - "abortReason": "UNKNOWN", - "durationInMs": 9, + "abortReason": "", + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo5Nw==", - "label": "//next.js:build_smoke_test", - "success": false, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "label": "//next.js/pages:_jest_test_bazel_snapshot_resolver", + "success": true, + "targetKind": "_copy_file rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo5OA==", - "label": "//react/src:src", + "label": "//next.js/styles:styles", "success": true, "targetKind": "js_library rule", "testSize": "UNKNOWN" @@ -574,250 +574,250 @@ "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo5OQ==", - "label": "//vue/src:src", + "label": "//react/public:public", "success": true, - "targetKind": "_copy_to_bin rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMDA=", - "label": "//next.js/styles:styles", + "label": "//next.js:next_js_binary", "success": true, - "targetKind": "js_library rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMDE=", - "label": "//react/src:src_typecheck", + "label": "//packages/one:one", "success": true, - "targetKind": "filegroup rule", + "targetKind": "_npm_package rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMDI=", - "label": "//react:build", + "label": "//vue/libraries/simple:vite.config", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxMDM=", - "label": "//react-webpack:_bundle_webpack_binary", + "label": "//next.js/pages:_jest_test_bazel_snapshot_reporter", "success": true, - "targetKind": "js_binary rule", + "targetKind": "_copy_file rule", "testSize": "UNKNOWN" }, { - "abortReason": "", - "durationInMs": 5, + "abortReason": "UNKNOWN", + "durationInMs": 11, "id": "VGFyZ2V0UGFpcjoxMDQ=", - "label": "//react:package_json", - "success": true, - "targetKind": "js_library rule", - "testSize": "UNKNOWN" + "label": "//next.js/pages:jest_test", + "success": false, + "targetKind": "jest_test rule", + "testSize": "MEDIUM" }, { - "abortReason": "", - "durationInMs": 1, + "abortReason": "UNKNOWN", + "durationInMs": 10, "id": "VGFyZ2V0UGFpcjoxMDU=", - "label": "//vue:type-check", - "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "label": "//next.js/pages:specs", + "success": false, + "targetKind": "ts_project rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMDY=", - "label": "//vue:build_test", + "label": "//react/src:test_lib_transpile", "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "targetKind": "swc_compile rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 3, "id": "VGFyZ2V0UGFpcjoxMDc=", - "label": "//next.js:next_js_binary", + "label": "//react/src:test_lib", "success": true, - "targetKind": "js_binary rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { - "abortReason": "UNKNOWN", - "durationInMs": 9, + "abortReason": "", + "durationInMs": 4, "id": "VGFyZ2V0UGFpcjoxMDg=", - "label": "//next.js:next_dev", - "success": false, - "targetKind": "_js_run_devserver rule", - "testSize": "UNKNOWN" + "label": "//react/src:test_lib_typecheck_test", + "success": true, + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMDk=", - "label": "//packages/one:one", + "label": "//vue/libraries/simple:build", "success": true, - "targetKind": "_npm_package rule", + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxMTA=", - "label": "//react/src:assets", + "label": "//vue:build", "success": true, - "targetKind": "js_library rule", + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 5, "id": "VGFyZ2V0UGFpcjoxMTE=", - "label": "//react-webpack:bundle", + "label": "//react/src:test", "success": true, - "targetKind": "_webpack_bundle rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 5, "id": "VGFyZ2V0UGFpcjoxMTI=", - "label": "//react-webpack:dev_server", + "label": "//react:start", "success": true, "targetKind": "_js_run_devserver rule", "testSize": "UNKNOWN" }, { - "abortReason": "UNKNOWN", - "durationInMs": 10, + "abortReason": "", + "durationInMs": 5, "id": "VGFyZ2V0UGFpcjoxMTM=", - "label": "//next.js/pages:pages", - "success": false, - "targetKind": "ts_project rule", + "label": "//react-webpack:_bundle_webpack_binary", + "success": true, + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 4, "id": "VGFyZ2V0UGFpcjoxMTQ=", - "label": "//next.js:package_json", + "label": "//react-webpack:dev_server", "success": true, - "targetKind": "js_library rule", + "targetKind": "_js_run_devserver rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxMTU=", - "label": "//react:build_smoke_test", + "label": "//react/src:test_lib_typecheck", "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "filegroup rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoxMTY=", - "label": "//react/src:test_lib_transpile", + "label": "//react:build", "success": true, - "targetKind": "swc_compile rule", + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 3, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxMTc=", - "label": "//react/src:test_lib_typecheck_test", + "label": "//react/src:src_typings", "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "targetKind": "ts_project rule", + "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMTg=", - "label": "//react:vite", + "label": "//packages/one:one_ts", "success": true, - "targetKind": "js_binary rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 5, "id": "VGFyZ2V0UGFpcjoxMTk=", - "label": "//:eslint", + "label": "//react/src:src_typecheck_test", "success": true, - "targetKind": "js_binary rule", - "testSize": "UNKNOWN" + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "", "durationInMs": 6, "id": "VGFyZ2V0UGFpcjoxMjA=", - "label": "//react/src:test", + "label": "//react:package_json", "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "js_library rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMjE=", - "label": "//react:start", + "label": "//react:preview", "success": true, - "targetKind": "_js_run_devserver rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMjI=", - "label": "//react:tsconfig", + "label": "//react:vite.config", "success": true, - "targetKind": "ts_config rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "UNKNOWN", - "durationInMs": 9, + "durationInMs": 11, "id": "VGFyZ2V0UGFpcjoxMjM=", - "label": "//next.js/pages:specs", + "label": "//next.js/pages:pages", "success": false, "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMjQ=", - "label": "//packages/one:one_ts", + "label": "//next.js/public:public", "success": true, - "targetKind": "ts_project rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { - "abortReason": "", - "durationInMs": 1, + "abortReason": "UNKNOWN", + "durationInMs": 10, "id": "VGFyZ2V0UGFpcjoxMjU=", - "label": "//next.js:tsconfig", - "success": true, - "targetKind": "ts_config rule", - "testSize": "UNKNOWN" + "label": "//next.js:build_test", + "success": false, + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 8, "id": "VGFyZ2V0UGFpcjoxMjY=", - "label": "//react/public:public", + "label": "//next.js:eslintrc", "success": true, "targetKind": "js_library rule", "testSize": "UNKNOWN" 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 06f6024..933fcf7 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,399 +263,399 @@ "targets": [ { "abortReason": "", - "durationInMs": 0, + "durationInMs": 10, "id": "VGFyZ2V0UGFpcjox", - "label": "//packages/one:one", + "label": "//next.js/pages:pages", "success": true, - "targetKind": "_npm_package rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 5, + "durationInMs": 10, "id": "VGFyZ2V0UGFpcjoy", - "label": "//react/src:test_lib_typecheck_test", + "label": "//next.js:build_smoke_test", "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoz", - "label": "//react-webpack:_dev_server_webpack_binary_entrypoint", + "label": "//next.js:jest_config", "success": true, - "targetKind": "directory_path rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 10, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjo0", - "label": "//next.js/pages:pages", + "label": "//react/src:src_typecheck", "success": true, - "targetKind": "ts_project rule", + "targetKind": "filegroup rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 10, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjo1", - "label": "//next.js:next_start", + "label": "//react/src:test_lib_typecheck", "success": true, - "targetKind": "_js_run_devserver rule", + "targetKind": "filegroup rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo2", - "label": "//react/src:src_typings", + "label": "//react:tsconfig", "success": true, - "targetKind": "ts_project rule", + "targetKind": "ts_config rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo3", - "label": "//react:write_swcrc", + "label": "//react/src:src", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo4", - "label": "//next.js/pages:_jest_test_bazel_sequencer", + "label": "//react/src:src_typings", "success": true, - "targetKind": "_copy_file rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo5", - "label": "//next.js/pages:_jest_test_bazel_snapshot_reporter", + "label": "//react/src:test_lib_transpile", "success": true, - "targetKind": "_copy_file rule", + "targetKind": "swc_compile rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxMA==", - "label": "//react:vite", + "label": "//:eslint", "success": true, "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 5, + "durationInMs": 9, "id": "VGFyZ2V0UGFpcjoxMQ==", - "label": "//react-webpack:_dev_server_webpack_binary", + "label": "//next.js/pages:specs", "success": true, - "targetKind": "js_binary rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 10, "id": "VGFyZ2V0UGFpcjoxMg==", - "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": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxMw==", - "label": "//next.js:jest_config", + "label": "//packages/one:one", "success": true, - "targetKind": "js_library rule", + "targetKind": "_npm_package rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 6, "id": "VGFyZ2V0UGFpcjoxNA==", - "label": "//react/src:src_transpile", + "label": "//react/src:test", "success": true, - "targetKind": "swc_compile rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxNQ==", - "label": "//react/src:src_typecheck", + "label": "//next.js/pages:_jest_test_bazel_snapshot_reporter", "success": true, - "targetKind": "filegroup rule", + "targetKind": "_copy_file rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNg==", - "label": "//react/src:src_typecheck_test", + "label": "//next.js/public:public", "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "targetKind": "js_library rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNw==", - "label": "//react:preview", + "label": "//react:vite.config", "success": true, - "targetKind": "js_binary rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxOA==", - "label": "//vue/libraries/simple:vite.config", + "label": "//next.js/styles:styles", "success": true, "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 10, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxOQ==", - "label": "//next.js/pages:_jest_test_jest_entrypoint", + "label": "//next.js:package_json", "success": true, - "targetKind": "directory_path rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 11, + "durationInMs": 3, "id": "VGFyZ2V0UGFpcjoyMA==", - "label": "//next.js:next", + "label": "//react/src:test_lib", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 6, + "durationInMs": 10, "id": "VGFyZ2V0UGFpcjoyMQ==", - "label": "//react/src:test", + "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": 10, "id": "VGFyZ2V0UGFpcjoyMg==", - "label": "//react:tsconfig", + "label": "//next.js:next", "success": true, - "targetKind": "ts_config rule", + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMw==", - "label": "//react-webpack:bundle", + "label": "//react/src:assets", "success": true, - "targetKind": "_webpack_bundle rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyNA==", - "label": "//next.js/styles:styles", + "label": "//react/src:src_transpile", "success": true, - "targetKind": "js_library rule", + "targetKind": "swc_compile rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 10, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoyNQ==", - "label": "//next.js:build_test", + "label": "//vue/libraries/simple:vite.config", "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "targetKind": "js_library rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 4, "id": "VGFyZ2V0UGFpcjoyNg==", - "label": "//react/src:src", + "label": "//next.js/pages/api:api", "success": true, - "targetKind": "js_library rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 9, "id": "VGFyZ2V0UGFpcjoyNw==", - "label": "//react:build", + "label": "//next.js:eslintrc", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoyOA==", - "label": "//vue:build_test", + "label": "//react:vite", "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "targetKind": "js_binary rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoyOQ==", - "label": "//:eslint", + "label": "//react-webpack:_dev_server_webpack_binary_entrypoint", "success": true, - "targetKind": "js_binary rule", + "targetKind": "directory_path rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjozMA==", - "label": "//react/src:test_lib_typecheck", + "label": "//vue/libraries/simple:build", "success": true, - "targetKind": "filegroup rule", + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 3, "id": "VGFyZ2V0UGFpcjozMQ==", - "label": "//react-webpack/src:transpile", + "label": "//vue:type-check", "success": true, - "targetKind": "swc_compile rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 3, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjozMg==", - "label": "//vue:type-check", + "label": "//react/public:public", "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "js_library rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 12, + "durationInMs": 6, "id": "VGFyZ2V0UGFpcjozMw==", - "label": "//next.js/pages:jest_test", + "label": "//react:package_json", "success": true, - "targetKind": "jest_test rule", - "testSize": "MEDIUM" + "targetKind": "js_library rule", + "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjozNA==", - "label": "//next.js/public:public", + "label": "//vue:vite", "success": true, - "targetKind": "js_library rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 9, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjozNQ==", - "label": "//next.js:eslintrc", + "label": "//react:build", "success": true, - "targetKind": "js_library rule", + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 5, "id": "VGFyZ2V0UGFpcjozNg==", - "label": "//react/public:public", + "label": "//react-webpack:dev_server", "success": true, - "targetKind": "js_library rule", + "targetKind": "_js_run_devserver rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjozNw==", - "label": "//react/src:assets", + "label": "//vue:build_test", "success": true, - "targetKind": "js_library rule", - "testSize": "UNKNOWN" + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 4, "id": "VGFyZ2V0UGFpcjozOA==", - "label": "//react:vite.config", + "label": "//react/src:src_typecheck_test", "success": true, - "targetKind": "js_library rule", - "testSize": "UNKNOWN" + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "", - "durationInMs": 5, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjozOQ==", - "label": "//react-webpack:_bundle_webpack_binary", + "label": "//react-webpack:_bundle_webpack_binary_entrypoint", "success": true, - "targetKind": "js_binary rule", + "targetKind": "directory_path rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 5, "id": "VGFyZ2V0UGFpcjo0MA==", - "label": "//react-webpack:dev_server", + "label": "//react-webpack:build_smoke_test", "success": true, - "targetKind": "_js_run_devserver rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 7, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo0MQ==", - "label": "//react/src:lint", + "label": "//react-webpack:bundle", "success": true, - "targetKind": "eslint_test rule", - "testSize": "MEDIUM" + "targetKind": "_webpack_bundle rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo0Mg==", - "label": "//react/src:test_lib_typings", + "label": "//vue/libraries/simple:types", "success": true, - "targetKind": "ts_project rule", + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 5, "id": "VGFyZ2V0UGFpcjo0Mw==", - "label": "//vue:vite", + "label": "//react/src:test_lib_typecheck_test", "success": true, - "targetKind": "js_binary rule", - "testSize": "UNKNOWN" + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "", - "durationInMs": 10, + "durationInMs": 5, "id": "VGFyZ2V0UGFpcjo0NA==", - "label": "//next.js:build_smoke_test", + "label": "//react:start", "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "_js_run_devserver rule", + "testSize": "UNKNOWN" }, { "abortReason": "", @@ -668,36 +668,36 @@ }, { "abortReason": "", - "durationInMs": 3, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo0Ng==", - "label": "//react/src:test_lib", + "label": "//react:preview", "success": true, - "targetKind": "js_library rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 5, "id": "VGFyZ2V0UGFpcjo0Nw==", - "label": "//react/src:test_lib_transpile", + "label": "//react-webpack:_bundle_webpack_binary", "success": true, - "targetKind": "swc_compile rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 7, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo0OA==", - "label": "//react:package_json", + "label": "//vue/src:src", "success": true, - "targetKind": "js_library rule", + "targetKind": "_copy_to_bin rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo0OQ==", - "label": "//vue/libraries/simple:build", + "label": "//vue:build", "success": true, "targetKind": "_run_binary rule", "testSize": "UNKNOWN" @@ -713,120 +713,120 @@ }, { "abortReason": "", - "durationInMs": 9, + "durationInMs": 12, "id": "VGFyZ2V0UGFpcjo1MQ==", - "label": "//next.js/pages:specs", + "label": "//next.js/pages:jest_test", "success": true, - "targetKind": "ts_project rule", - "testSize": "UNKNOWN" + "targetKind": "jest_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 10, "id": "VGFyZ2V0UGFpcjo1Mg==", - "label": "//next.js:tsconfig", + "label": "//next.js:build_test", "success": true, - "targetKind": "ts_config rule", - "testSize": "UNKNOWN" + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo1Mw==", - "label": "//packages/one:one_ts", + "label": "//next.js:tsconfig", "success": true, - "targetKind": "ts_project rule", + "targetKind": "ts_config rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo1NA==", - "label": "//vue/src:src", + "label": "//vue/libraries/simple:simple", "success": true, - "targetKind": "_copy_to_bin rule", + "targetKind": "_npm_package rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 9, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo1NQ==", - "label": "//next.js:next_dev", + "label": "//next.js/pages:_jest_test_bazel_sequencer", "success": true, - "targetKind": "_js_run_devserver rule", + "targetKind": "_copy_file rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 8, "id": "VGFyZ2V0UGFpcjo1Ng==", - "label": "//next.js:package_json", + "label": "//next.js:next_dev", "success": true, - "targetKind": "js_library rule", + "targetKind": "_js_run_devserver rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 5, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjo1Nw==", - "label": "//react:build_smoke_test", + "label": "//packages/one:one_ts", "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "ts_project rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 7, "id": "VGFyZ2V0UGFpcjo1OA==", - "label": "//react-webpack:_bundle_webpack_binary_entrypoint", + "label": "//react/src:lint", "success": true, - "targetKind": "directory_path rule", - "testSize": "UNKNOWN" + "targetKind": "eslint_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 4, "id": "VGFyZ2V0UGFpcjo1OQ==", - "label": "//vue/libraries/simple:simple", + "label": "//react:build_smoke_test", "success": true, - "targetKind": "_npm_package rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo2MA==", - "label": "//vue/libraries/simple:types", + "label": "//react:write_swcrc", "success": true, "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo2MQ==", - "label": "//vue:build", + "label": "//react/src:test_lib_typings", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 5, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjo2Mg==", - "label": "//react:start", + "label": "//react-webpack/src:transpile", "success": true, - "targetKind": "_js_run_devserver rule", + "targetKind": "swc_compile rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 6, + "durationInMs": 5, "id": "VGFyZ2V0UGFpcjo2Mw==", - "label": "//react-webpack:build_smoke_test", + "label": "//react-webpack:_dev_server_webpack_binary", "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "js_binary rule", + "testSize": "UNKNOWN" } ], "testCollection": [ @@ -851,18 +851,18 @@ { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 1180000, + "durationMs": 68000, "id": "VGVzdENvbGxlY3Rpb246Mw==", - "label": "//vue:type-check", + "label": "//vue:build_test", "overallStatus": "PASSED", "strategy": "" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 1715000, + "durationMs": 1180000, "id": "VGVzdENvbGxlY3Rpb246NA==", - "label": "//react/src:test", + "label": "//vue:type-check", "overallStatus": "PASSED", "strategy": "" }, @@ -878,27 +878,27 @@ { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 170000, + "durationMs": 1715000, "id": "VGVzdENvbGxlY3Rpb246Ng==", - "label": "//react-webpack:build_smoke_test", + "label": "//react/src:test", "overallStatus": "PASSED", "strategy": "" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 89000, + "durationMs": 170000, "id": "VGVzdENvbGxlY3Rpb246Nw==", - "label": "//next.js:build_test", + "label": "//react-webpack:build_smoke_test", "overallStatus": "PASSED", "strategy": "" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 354000, + "durationMs": 89000, "id": "VGVzdENvbGxlY3Rpb246OA==", - "label": "//next.js:build_smoke_test", + "label": "//next.js:build_test", "overallStatus": "PASSED", "strategy": "" }, @@ -923,9 +923,9 @@ { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 68000, + "durationMs": 354000, "id": "VGVzdENvbGxlY3Rpb246MTE=", - "label": "//vue:build_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 db4f561..8e888ac 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,306 +273,306 @@ "targets": [ { "abortReason": "", - "durationInMs": 4, + "durationInMs": 10, "id": "VGFyZ2V0UGFpcjoxNTI=", - "label": "//react-webpack:dev_server", + "label": "//next.js/pages:_jest_test_jest_entrypoint", "success": true, - "targetKind": "_js_run_devserver rule", + "targetKind": "directory_path rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 3, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNTM=", - "label": "//next.js/pages:pages", + "label": "//next.js:jest_config", "success": true, - "targetKind": "ts_project rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 3, "id": "VGFyZ2V0UGFpcjoxNTQ=", - "label": "//next.js:tsconfig", + "label": "//next.js:next", "success": true, - "targetKind": "ts_config rule", + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 3, "id": "VGFyZ2V0UGFpcjoxNTU=", - "label": "//react/src:src_typings", + "label": "//react/src:src_typecheck", "success": true, - "targetKind": "ts_project rule", + "targetKind": "filegroup rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 5, "id": "VGFyZ2V0UGFpcjoxNTY=", - "label": "//react:tsconfig", + "label": "//react/src:src_typecheck_test", "success": true, - "targetKind": "ts_config rule", - "testSize": "UNKNOWN" + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNTc=", - "label": "//react-webpack:_bundle_webpack_binary_entrypoint", + "label": "//react/src:test_lib_transpile", "success": true, - "targetKind": "directory_path rule", + "targetKind": "swc_compile rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNTg=", - "label": "//react-webpack:_dev_server_webpack_binary_entrypoint", + "label": "//next.js/pages:_jest_test_bazel_sequencer", "success": true, - "targetKind": "directory_path rule", + "targetKind": "_copy_file rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNTk=", - "label": "//vue/src:src", + "label": "//next.js/pages:_jest_test_bazel_snapshot_reporter", "success": true, - "targetKind": "_copy_to_bin rule", + "targetKind": "_copy_file rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 3, "id": "VGFyZ2V0UGFpcjoxNjA=", - "label": "//react/src:assets", + "label": "//react-webpack:build_smoke_test", "success": true, - "targetKind": "js_library rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 8, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxNjE=", - "label": "//react/src:test", + "label": "//react/src:src_transpile", "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "swc_compile rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 3, + "durationInMs": 4, "id": "VGFyZ2V0UGFpcjoxNjI=", - "label": "//react:build", + "label": "//react/src:test_lib", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 5, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNjM=", - "label": "//react-webpack:_bundle_webpack_binary", + "label": "//vue/src:src", "success": true, - "targetKind": "js_binary rule", + "targetKind": "_copy_to_bin rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 3, "id": "VGFyZ2V0UGFpcjoxNjQ=", - "label": "//vue/libraries/simple:types", + "label": "//vue:type-check", "success": true, - "targetKind": "_run_binary rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 7, "id": "VGFyZ2V0UGFpcjoxNjU=", - "label": "//packages/one:one", + "label": "//next.js:build_smoke_test", "success": true, - "targetKind": "_npm_package rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 3, + "durationInMs": 9, "id": "VGFyZ2V0UGFpcjoxNjY=", - "label": "//react/src:test_lib_typecheck", + "label": "//next.js:eslintrc", "success": true, - "targetKind": "filegroup rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxNjc=", - "label": "//next.js/pages:_jest_test_bazel_snapshot_reporter", + "label": "//next.js:next_start", "success": true, - "targetKind": "_copy_file rule", + "targetKind": "_js_run_devserver rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNjg=", - "label": "//vue:build", + "label": "//react:tsconfig", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "ts_config rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 6, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNjk=", - "label": "//react/src:src_typecheck_test", + "label": "//react-webpack:_bundle_webpack_binary_entrypoint", "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "targetKind": "directory_path rule", + "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 5, "id": "VGFyZ2V0UGFpcjoxNzA=", - "label": "//react/src:test_lib_typecheck_test", + "label": "//react-webpack:dev_server", "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "targetKind": "_js_run_devserver rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 8, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoxNzE=", - "label": "//react:package_json", + "label": "//next.js/pages:pages", "success": true, - "targetKind": "js_library rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNzI=", - "label": "//react:vite", + "label": "//next.js/public:public", "success": true, - "targetKind": "js_binary rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 6, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNzM=", - "label": "//next.js:build_smoke_test", + "label": "//react/src:src_typings", "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "ts_project rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 6, "id": "VGFyZ2V0UGFpcjoxNzQ=", - "label": "//react/public:public", + "label": "//react/src:test_lib_typecheck_test", "success": true, - "targetKind": "js_library rule", - "testSize": "UNKNOWN" + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "", - "durationInMs": 8, + "durationInMs": 5, "id": "VGFyZ2V0UGFpcjoxNzU=", - "label": "//react/src:lint", + "label": "//react:build_smoke_test", "success": true, - "targetKind": "eslint_test rule", + "targetKind": "js_test rule", "testSize": "MEDIUM" }, { "abortReason": "", "durationInMs": 4, "id": "VGFyZ2V0UGFpcjoxNzY=", - "label": "//next.js:next", + "label": "//react-webpack:_dev_server_webpack_binary", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxNzc=", - "label": "//next.js:next_start", + "label": "//react-webpack:_dev_server_webpack_binary_entrypoint", "success": true, - "targetKind": "_js_run_devserver rule", + "targetKind": "directory_path rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 5, + "durationInMs": 7, "id": "VGFyZ2V0UGFpcjoxNzg=", - "label": "//react-webpack:_dev_server_webpack_binary", + "label": "//next.js:build_test", "success": true, - "targetKind": "js_binary rule", - "testSize": "UNKNOWN" + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "", - "durationInMs": 11, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoxNzk=", - "label": "//next.js/pages:_jest_test_jest_entrypoint", + "label": "//react:build", "success": true, - "targetKind": "directory_path rule", + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxODA=", - "label": "//react/src:test_lib_transpile", + "label": "//react:preview", "success": true, - "targetKind": "swc_compile rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 6, "id": "VGFyZ2V0UGFpcjoxODE=", - "label": "//react:build_smoke_test", + "label": "//react:start", "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "_js_run_devserver rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 7, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxODI=", - "label": "//next.js:build_test", + "label": "//react:write_swcrc", "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "targetKind": "_run_binary rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxODM=", - "label": "//packages/one:one_ts", + "label": "//react-webpack/src:transpile", "success": true, - "targetKind": "ts_project rule", + "targetKind": "swc_compile rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxODQ=", - "label": "//react/src:test_lib_typings", + "label": "//vue/libraries/simple:build", "success": true, - "targetKind": "ts_project rule", + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 3, + "durationInMs": 10, "id": "VGFyZ2V0UGFpcjoxODU=", - "label": "//next.js/pages/api:api", + "label": "//next.js/pages:specs", "success": true, "targetKind": "ts_project rule", "testSize": "UNKNOWN" @@ -581,61 +581,61 @@ "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxODY=", - "label": "//next.js/pages:_jest_test_bazel_snapshot_resolver", + "label": "//vue:vite", "success": true, - "targetKind": "_copy_file rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 11, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxODc=", - "label": "//next.js/pages:jest_test", + "label": "//next.js:next_js_binary", "success": true, - "targetKind": "jest_test rule", - "testSize": "MEDIUM" + "targetKind": "js_binary rule", + "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxODg=", - "label": "//react-webpack/src:transpile", + "label": "//react/src:assets", "success": true, - "targetKind": "swc_compile rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 4, + "durationInMs": 7, "id": "VGFyZ2V0UGFpcjoxODk=", - "label": "//react-webpack:bundle", + "label": "//react/src:test", "success": true, - "targetKind": "_webpack_bundle rule", - "testSize": "UNKNOWN" + "targetKind": "js_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxOTA=", - "label": "//vue/libraries/simple:simple", + "label": "//react:vite", "success": true, - "targetKind": "_npm_package rule", + "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxOTE=", - "label": "//next.js/pages:_jest_test_bazel_sequencer", + "label": "//packages/one:one_ts", "success": true, - "targetKind": "_copy_file rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 4, "id": "VGFyZ2V0UGFpcjoxOTI=", - "label": "//next.js:next_js_binary", + "label": "//react-webpack:_bundle_webpack_binary", "success": true, "targetKind": "js_binary rule", "testSize": "UNKNOWN" @@ -644,124 +644,124 @@ "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoxOTM=", - "label": "//react:vite.config", + "label": "//next.js:package_json", "success": true, "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 3, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxOTQ=", - "label": "//react/src:src_typecheck", + "label": "//react/src:test_lib_typings", "success": true, - "targetKind": "filegroup rule", + "targetKind": "ts_project rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoxOTU=", - "label": "//react:preview", + "label": "//:eslint", "success": true, "targetKind": "js_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoxOTY=", - "label": "//vue/libraries/simple:build", + "label": "//next.js/styles:styles", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 3, "id": "VGFyZ2V0UGFpcjoxOTc=", - "label": "//vue:type-check", + "label": "//react/src:test_lib_typecheck", "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "filegroup rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 7, "id": "VGFyZ2V0UGFpcjoxOTg=", - "label": "//next.js/styles:styles", + "label": "//react:package_json", "success": true, "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 10, "id": "VGFyZ2V0UGFpcjoxOTk=", - "label": "//react/src:src", + "label": "//next.js/pages:jest_test", "success": true, - "targetKind": "js_library rule", - "testSize": "UNKNOWN" + "targetKind": "jest_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoyMDA=", - "label": "//react/src:src_transpile", + "label": "//next.js:tsconfig", "success": true, - "targetKind": "swc_compile rule", + "targetKind": "ts_config rule", "testSize": "UNKNOWN" }, { "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoyMDE=", - "label": "//vue/libraries/simple:vite.config", + "label": "//packages/one:one", "success": true, - "targetKind": "js_library rule", + "targetKind": "_npm_package rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoyMDI=", - "label": "//next.js/public:public", + "label": "//react/src:src", "success": true, "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 5, "id": "VGFyZ2V0UGFpcjoyMDM=", - "label": "//next.js:jest_config", + "label": "//react-webpack:bundle", "success": true, - "targetKind": "js_library rule", + "targetKind": "_webpack_bundle rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 10, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMDQ=", - "label": "//next.js:eslintrc", + "label": "//vue:build", "success": true, - "targetKind": "js_library rule", + "targetKind": "_run_binary rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 1, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMDU=", - "label": "//next.js:next_dev", + "label": "//vue:build_test", "success": true, - "targetKind": "_js_run_devserver rule", - "testSize": "UNKNOWN" + "targetKind": "_empty_test rule", + "testSize": "SMALL" }, { "abortReason": "", - "durationInMs": 10, + "durationInMs": 3, "id": "VGFyZ2V0UGFpcjoyMDY=", - "label": "//next.js/pages:specs", + "label": "//next.js/pages/api:api", "success": true, "targetKind": "ts_project rule", "testSize": "UNKNOWN" @@ -770,82 +770,82 @@ "abortReason": "", "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoyMDc=", - "label": "//next.js:package_json", + "label": "//react:vite.config", "success": true, "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 3, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoyMDg=", - "label": "//:eslint", + "label": "//next.js/pages:_jest_test_bazel_snapshot_resolver", "success": true, - "targetKind": "js_binary rule", + "targetKind": "_copy_file rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 5, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMDk=", - "label": "//react/src:test_lib", + "label": "//react/public:public", "success": true, "targetKind": "js_library rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 1, "id": "VGFyZ2V0UGFpcjoyMTA=", - "label": "//react:write_swcrc", + "label": "//next.js:next_dev", "success": true, - "targetKind": "_run_binary rule", + "targetKind": "_js_run_devserver rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 0, + "durationInMs": 7, "id": "VGFyZ2V0UGFpcjoyMTE=", - "label": "//vue:vite", + "label": "//react/src:lint", "success": true, - "targetKind": "js_binary rule", - "testSize": "UNKNOWN" + "targetKind": "eslint_test rule", + "testSize": "MEDIUM" }, { "abortReason": "", - "durationInMs": 6, + "durationInMs": 2, "id": "VGFyZ2V0UGFpcjoyMTI=", - "label": "//react:start", + "label": "//vue/libraries/simple:simple", "success": true, - "targetKind": "_js_run_devserver rule", + "targetKind": "_npm_package rule", "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 3, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoyMTM=", - "label": "//react-webpack:build_smoke_test", + "label": "//vue/libraries/simple:types", "success": true, - "targetKind": "js_test rule", - "testSize": "MEDIUM" + "targetKind": "_run_binary rule", + "testSize": "UNKNOWN" }, { "abortReason": "", - "durationInMs": 2, + "durationInMs": 0, "id": "VGFyZ2V0UGFpcjoyMTQ=", - "label": "//vue:build_test", + "label": "//vue/libraries/simple:vite.config", "success": true, - "targetKind": "_empty_test rule", - "testSize": "SMALL" + "targetKind": "js_library rule", + "testSize": "UNKNOWN" } ], "testCollection": [ { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 1715000, + "durationMs": 1180000, "id": "VGVzdENvbGxlY3Rpb246MjA=", - "label": "//react/src:test", + "label": "//vue:type-check", "overallStatus": "PASSED", "strategy": "" }, @@ -870,74 +870,74 @@ { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 85000, + "durationMs": 95000, "id": "VGVzdENvbGxlY3Rpb246MjM=", - "label": "//react/src:src_typecheck_test", + "label": "//react/src:test_lib_typecheck_test", "overallStatus": "PASSED", "strategy": "" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 95000, + "durationMs": 170000, "id": "VGVzdENvbGxlY3Rpb246MjQ=", - "label": "//react/src:test_lib_typecheck_test", + "label": "//react-webpack:build_smoke_test", "overallStatus": "PASSED", "strategy": "" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 89000, + "durationMs": 191000, "id": "VGVzdENvbGxlY3Rpb246MjU=", - "label": "//next.js:build_test", + "label": "//react:build_smoke_test", "overallStatus": "PASSED", "strategy": "" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 170000, + "durationMs": 68000, "id": "VGVzdENvbGxlY3Rpb246MjY=", - "label": "//react-webpack:build_smoke_test", + "label": "//vue:build_test", "overallStatus": "PASSED", "strategy": "" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 191000, + "durationMs": 1715000, "id": "VGVzdENvbGxlY3Rpb246Mjc=", - "label": "//react:build_smoke_test", + "label": "//react/src:test", "overallStatus": "PASSED", "strategy": "" }, { - "cachedLocally": true, + "cachedLocally": false, "cachedRemotely": false, - "durationMs": 68000, + "durationMs": 1134000, "id": "VGVzdENvbGxlY3Rpb246Mjg=", - "label": "//vue:build_test", + "label": "//next.js/pages:jest_test", "overallStatus": "PASSED", - "strategy": "" + "strategy": "darwin-sandbox" }, { "cachedLocally": true, "cachedRemotely": false, - "durationMs": 1180000, + "durationMs": 85000, "id": "VGVzdENvbGxlY3Rpb246Mjk=", - "label": "//vue:type-check", + "label": "//react/src:src_typecheck_test", "overallStatus": "PASSED", "strategy": "" }, { - "cachedLocally": false, + "cachedLocally": true, "cachedRemotely": false, - "durationMs": 1134000, + "durationMs": 89000, "id": "VGVzdENvbGxlY3Rpb246MzA=", - "label": "//next.js/pages:jest_test", + "label": "//next.js:build_test", "overallStatus": "PASSED", - "strategy": "darwin-sandbox" + "strategy": "" } ], "user": { diff --git a/pkg/processing/save.go b/pkg/processing/save.go index 62df01f..0a3d925 100644 --- a/pkg/processing/save.go +++ b/pkg/processing/save.go @@ -772,6 +772,7 @@ func (act SaveActor) findOrCreateBuild(ctx context.Context, summary *summary.Sum SetBuildURL(summary.BuildURL). SetBuildUUID(summary.BuildUUID). SetEnv(buildEnvVars(summary.EnvVars)). + SetTimestamp(summary.StartedAt). Save(ctx) } 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 0a40ddc..f70b0b8 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": "2024-11-21T17:53:57.646297985Z" + "FirstSeen": "2024-11-22T18:11:05.45737065Z" }, "//next.js:build_smoke_test": { "TestSummary": { @@ -338,7 +338,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.645864866Z" + "FirstSeen": "2024-11-22T18:11:05.456921071Z" }, "//next.js:build_test": { "TestSummary": { @@ -399,7 +399,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.645813054Z" + "FirstSeen": "2024-11-22T18:11:05.456873679Z" }, "//react-webpack:build_smoke_test": { "TestSummary": { @@ -460,7 +460,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.643338545Z" + "FirstSeen": "2024-11-22T18:11:05.454319299Z" }, "//react/src:lint": { "TestSummary": { @@ -521,7 +521,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.642591311Z" + "FirstSeen": "2024-11-22T18:11:05.453557937Z" }, "//react/src:src_typecheck_test": { "TestSummary": { @@ -582,7 +582,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.640883935Z" + "FirstSeen": "2024-11-22T18:11:05.452024901Z" }, "//react/src:test": { "TestSummary": { @@ -643,7 +643,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.642912155Z" + "FirstSeen": "2024-11-22T18:11:05.453898761Z" }, "//react/src:test_lib_typecheck_test": { "TestSummary": { @@ -704,7 +704,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.641403529Z" + "FirstSeen": "2024-11-22T18:11:05.452461779Z" }, "//react:build_smoke_test": { "TestSummary": { @@ -765,7 +765,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.641738804Z" + "FirstSeen": "2024-11-22T18:11:05.452793313Z" }, "//vue:build_test": { "TestSummary": { @@ -826,7 +826,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.641960693Z" + "FirstSeen": "2024-11-22T18:11:05.452877708Z" }, "//vue:type-check": { "TestSummary": { @@ -887,7 +887,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.642326159Z" + "FirstSeen": "2024-11-22T18:11:05.453303916Z" } }, "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 f0e2a55..bda55f1 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": "2024-11-21T17:53:57.727892251Z" + "FirstSeen": "2024-11-22T18:11:05.540947587Z" }, "//react/src:lint": { "TestSummary": { @@ -385,7 +385,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.727096855Z" + "FirstSeen": "2024-11-22T18:11:05.540140582Z" }, "//react/src:src_typecheck_test": { "TestSummary": { @@ -446,7 +446,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.725688213Z" + "FirstSeen": "2024-11-22T18:11:05.538754722Z" }, "//react/src:test": { "TestSummary": { @@ -507,7 +507,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.727311876Z" + "FirstSeen": "2024-11-22T18:11:05.540371572Z" }, "//react/src:test_lib_typecheck_test": { "TestSummary": { @@ -568,7 +568,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.725953005Z" + "FirstSeen": "2024-11-22T18:11:05.538991393Z" }, "//react:build_smoke_test": { "TestSummary": { @@ -629,7 +629,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.726136543Z" + "FirstSeen": "2024-11-22T18:11:05.539198472Z" }, "//vue:build_test": { "TestSummary": { @@ -690,7 +690,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.726575262Z" + "FirstSeen": "2024-11-22T18:11:05.539573908Z" }, "//vue:type-check": { "TestSummary": { @@ -751,7 +751,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.726810583Z" + "FirstSeen": "2024-11-22T18:11:05.539905232Z" } }, "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 3bc4544..baccf84 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": "2024-11-21T17:53:57.849635066Z" + "FirstSeen": "2024-11-22T18:11:05.680714908Z" }, "//next.js:build_smoke_test": { "TestSummary": { @@ -379,7 +379,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.846436703Z" + "FirstSeen": "2024-11-22T18:11:05.678614228Z" }, "//next.js:build_test": { "TestSummary": { @@ -440,7 +440,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.847318423Z" + "FirstSeen": "2024-11-22T18:11:05.67910502Z" }, "//react-webpack:build_smoke_test": { "TestSummary": { @@ -501,7 +501,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.847541773Z" + "FirstSeen": "2024-11-22T18:11:05.679217135Z" }, "//react/src:lint": { "TestSummary": { @@ -562,7 +562,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.848675163Z" + "FirstSeen": "2024-11-22T18:11:05.680003888Z" }, "//react/src:src_typecheck_test": { "TestSummary": { @@ -623,7 +623,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.846670674Z" + "FirstSeen": "2024-11-22T18:11:05.678758314Z" }, "//react/src:test": { "TestSummary": { @@ -684,7 +684,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.848482464Z" + "FirstSeen": "2024-11-22T18:11:05.679861982Z" }, "//react/src:test_lib_typecheck_test": { "TestSummary": { @@ -745,7 +745,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.847067411Z" + "FirstSeen": "2024-11-22T18:11:05.679003944Z" }, "//react:build_smoke_test": { "TestSummary": { @@ -806,7 +806,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.847767473Z" + "FirstSeen": "2024-11-22T18:11:05.679381401Z" }, "//vue:build_test": { "TestSummary": { @@ -867,7 +867,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.847908879Z" + "FirstSeen": "2024-11-22T18:11:05.679468315Z" }, "//vue:type-check": { "TestSummary": { @@ -928,7 +928,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.848058396Z" + "FirstSeen": "2024-11-22T18:11:05.67957435Z" } }, "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 1667c43..040aa38 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": "2024-11-21T17:53:57.941632952Z" + "FirstSeen": "2024-11-22T18:11:05.764618549Z" }, "//next.js:build_smoke_test": { "TestSummary": { @@ -470,7 +470,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.941091767Z" + "FirstSeen": "2024-11-22T18:11:05.764213982Z" }, "//next.js:build_test": { "TestSummary": { @@ -531,7 +531,7 @@ "CachedLocally": true, "CachedRemotely": false, "DurationMs": 0, - "FirstSeen": "2024-11-21T17:53:57.941035565Z" + "FirstSeen": "2024-11-22T18:11:05.76417348Z" } }, "Targets": {