Dashboard: support for buildkite sharding. (#2014)
diff --git a/dashboard/client/pages/bazelci.tsx b/dashboard/client/pages/bazelci.tsx index 9b3c541..5ed84ca 100644 --- a/dashboard/client/pages/bazelci.tsx +++ b/dashboard/client/pages/bazelci.tsx
@@ -214,7 +214,7 @@ } const data = stats.data.items; - var group = _.groupBy(data, (item) => item.bazelCITask); + var group = _.groupBy(data, (item) => item.name); return _.map( _.sortBy( @@ -240,7 +240,7 @@ <> {_.map(sortedGroup, (data) => ( <div - key={data[0].bazelCITask} + key={data[0].name} className="flex flex-col border shadow rounded bg-white ring-1 ring-black ring-opacity-5 flex-auto" > <div className="bg-gray-100 flex flex-row items-center border-b">
diff --git a/dashboard/server/database.sql b/dashboard/server/database.sql index 9c548b5..e9ba255 100644 --- a/dashboard/server/database.sql +++ b/dashboard/server/database.sql
@@ -340,6 +340,9 @@ '--task=(\S+)'), SUBSTRING(data ->> 'command' FROM '--platform=(\S+)')) AS bazelci_task, + COALESCE( + (data ->> 'parallel_group_index')::integer, + 0) AS parallel_group_index, data ->> 'state' AS state, (data ->> 'scheduled_at')::timestamptz AS scheduled_at, (data ->> 'created_at')::timestamptz AS created_at, @@ -353,7 +356,8 @@ WHERE bazelci_task is NOT NULL; CREATE UNIQUE INDEX buildkite_job_mview_pkey - ON buildkite_job_mview (org, pipeline, build_number, bazelci_task); + ON buildkite_job_mview (org, pipeline, build_number, bazelci_task, + parallel_group_index); CREATE INDEX buildkite_job_mview_created_at on buildkite_job_mview (created_at); CREATE INDEX buildkite_job_mview_state