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