diff --git a/plugins/jenkins/src/components/BuildsPage/lib/CITable/columns.tsx b/plugins/jenkins/src/components/BuildsPage/lib/CITable/columns.tsx index 733a60c1b2..f18d3e5b21 100644 --- a/plugins/jenkins/src/components/BuildsPage/lib/CITable/columns.tsx +++ b/plugins/jenkins/src/components/BuildsPage/lib/CITable/columns.tsx @@ -19,9 +19,10 @@ import { useEntityPermission } from '@backstage/plugin-catalog-react/alpha'; import { Box, IconButton, Tooltip, Typography } from '@material-ui/core'; import RetryIcon from '@material-ui/icons/Replay'; import VisibilityIcon from '@material-ui/icons/Visibility'; +import HistoryIcon from '@material-ui/icons/History'; import { default as React, useState } from 'react'; import { Project } from '../../../../api/JenkinsApi'; -import { buildRouteRef } from '../../../../plugin'; +import { buildRouteRef, jobRunsRouteRef } from '../../../../plugin'; import { JenkinsRunStatus } from '../Status'; import { jenkinsExecutePermission } from '@backstage/plugin-jenkins-common'; @@ -186,6 +187,25 @@ export const columnFactories = Object.freeze({ }; }, + createLastRunDuration(): TableColumn { + return { + title: 'Last Run Duration', + align: 'left', + render: (row: Partial) => ( + <> + + {row?.lastBuild?.duration + ? (row?.lastBuild?.duration / 1000) + .toFixed(1) + .toString() + .concat(' s') + : ''}{' '} + + + ), + }; + }, + createActionsColumn(): TableColumn { return { title: 'Actions', @@ -198,6 +218,7 @@ export const columnFactories = Object.freeze({ ); const alertApi = useApi(alertApiRef); + const jobRunsLink = useRouteRef(jobRunsRouteRef); const onRebuild = async () => { if (row.onRestartClick) { @@ -221,7 +242,7 @@ export const columnFactories = Object.freeze({ }; return ( -
+
{row.lastBuild?.url && ( @@ -240,6 +261,17 @@ export const columnFactories = Object.freeze({ )} + + + + + + +
); }; diff --git a/plugins/jenkins/src/components/BuildsPage/lib/CITable/presets.ts b/plugins/jenkins/src/components/BuildsPage/lib/CITable/presets.ts index 7c0dda9970..828e035c8e 100644 --- a/plugins/jenkins/src/components/BuildsPage/lib/CITable/presets.ts +++ b/plugins/jenkins/src/components/BuildsPage/lib/CITable/presets.ts @@ -24,5 +24,6 @@ export const defaultCITableColumns: TableColumn[] = [ columnFactories.createBuildColumn(), columnFactories.createTestColumn(), columnFactories.createStatusColumn(), + columnFactories.createLastRunDuration(), columnFactories.createActionsColumn(), ];