@backstage-community/plugin-github-actions 0.9.2 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowRunDetails.esm.js","sources":["../../../src/components/WorkflowRunDetails/WorkflowRunDetails.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Entity } from '@backstage/catalog-model';\nimport Accordion from '@material-ui/core/Accordion';\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\nimport Box from '@material-ui/core/Box';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport Paper from '@material-ui/core/Paper';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableRow from '@material-ui/core/TableRow';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles, Theme } from '@material-ui/core/styles';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport ExternalLinkIcon from '@material-ui/icons/Launch';\nimport { DateTime } from 'luxon';\nimport React from 'react';\nimport { Job, Jobs, Step } from '../../api';\nimport { getProjectNameFromEntity } from '../getProjectNameFromEntity';\nimport { WorkflowRunStatus } from '../WorkflowRunStatus';\nimport { useWorkflowRunJobs } from './useWorkflowRunJobs';\nimport { useWorkflowRunsDetails } from './useWorkflowRunsDetails';\nimport { WorkflowRunLogs } from '../WorkflowRunLogs';\nimport { Breadcrumbs, Link } from '@backstage/core-components';\nimport { getHostnameFromEntity } from '../getHostnameFromEntity';\n\nconst useStyles = makeStyles<Theme>(theme => ({\n root: {\n maxWidth: 720,\n margin: theme.spacing(2),\n },\n title: {\n padding: theme.spacing(1, 0, 2, 0),\n },\n table: {\n padding: theme.spacing(1),\n },\n accordionDetails: {\n padding: 0,\n },\n button: {\n order: -1,\n marginRight: 0,\n marginLeft: '-20px',\n },\n externalLinkIcon: {\n fontSize: 'inherit',\n verticalAlign: 'bottom',\n },\n}));\n\nconst getElapsedTime = (start: string | undefined, end: string | undefined) => {\n if (!start || !end) {\n return '';\n }\n const startDate = DateTime.fromISO(start);\n const endDate = end ? DateTime.fromISO(end) : DateTime.now();\n const diff = endDate.diff(startDate);\n const timeElapsed = diff.toFormat(`m 'minutes' s 'seconds'`);\n return timeElapsed;\n};\n\nconst StepView = ({ step }: { step: Step }) => {\n return (\n <TableRow>\n <TableCell>\n <ListItemText\n primary={step.name}\n secondary={getElapsedTime(step.started_at, step.completed_at)}\n />\n </TableCell>\n <TableCell>\n <WorkflowRunStatus\n status={step.status.toLocaleUpperCase('en-US')}\n conclusion={step.conclusion?.toLocaleUpperCase('en-US')}\n />\n </TableCell>\n </TableRow>\n );\n};\n\nconst JobListItem = ({\n job,\n className,\n entity,\n}: {\n job: Job;\n className: string;\n entity: Entity;\n}) => {\n const classes = useStyles();\n return (\n <Accordion TransitionProps={{ unmountOnExit: true }} className={className}>\n <AccordionSummary\n expandIcon={<ExpandMoreIcon />}\n IconButtonProps={{\n className: classes.button,\n }}\n >\n <Typography variant=\"button\">\n {job.name} ({getElapsedTime(job.started_at, job.completed_at)})\n </Typography>\n </AccordionSummary>\n <AccordionDetails className={classes.accordionDetails}>\n <TableContainer>\n <Table>\n {job.steps?.map(step => (\n <StepView key={step.number} step={step} />\n ))}\n </Table>\n </TableContainer>\n </AccordionDetails>\n {job.status === 'queued' || job.status === 'in_progress' ? (\n <WorkflowRunLogs runId={job.id} inProgress entity={entity} />\n ) : (\n <WorkflowRunLogs runId={job.id} inProgress={false} entity={entity} />\n )}\n </Accordion>\n );\n};\n\nconst JobsList = ({ jobs, entity }: { jobs?: Jobs; entity: Entity }) => {\n const classes = useStyles();\n return (\n <Box>\n {jobs &&\n jobs.total_count > 0 &&\n jobs.jobs.map(job => (\n <JobListItem\n key={job.id}\n job={job}\n className={\n job.status !== 'success' ? classes.failed : classes.success\n }\n entity={entity}\n />\n ))}\n </Box>\n );\n};\n\nexport const WorkflowRunDetails = ({ entity }: { entity: Entity }) => {\n const projectName = getProjectNameFromEntity(entity);\n\n const hostname = getHostnameFromEntity(entity);\n const [owner, repo] = (projectName && projectName.split('/')) || [];\n const details = useWorkflowRunsDetails({ hostname, owner, repo });\n const jobs = useWorkflowRunJobs({ hostname, owner, repo });\n\n const classes = useStyles();\n\n if (details.error && details.error.message) {\n return (\n <Typography variant=\"h6\" color=\"error\">\n Failed to load build, {details.error.message}\n </Typography>\n );\n } else if (details.loading) {\n return <LinearProgress />;\n }\n return (\n <div className={classes.root}>\n <Box mb={3}>\n <Breadcrumbs aria-label=\"breadcrumb\">\n <Link to=\"..\">Workflow runs</Link>\n <Typography>Workflow run details</Typography>\n </Breadcrumbs>\n </Box>\n <TableContainer component={Paper} className={classes.table}>\n <Table>\n <TableBody>\n <TableRow>\n <TableCell>\n <Typography noWrap>Branch</Typography>\n </TableCell>\n <TableCell>{details.value?.head_branch}</TableCell>\n </TableRow>\n <TableRow>\n <TableCell>\n <Typography noWrap>Message</Typography>\n </TableCell>\n <TableCell>{details.value?.head_commit?.message}</TableCell>\n </TableRow>\n <TableRow>\n <TableCell>\n <Typography noWrap>Commit ID</Typography>\n </TableCell>\n <TableCell>{details.value?.head_commit?.id}</TableCell>\n </TableRow>\n <TableRow>\n <TableCell>\n <Typography noWrap>Workflow</Typography>\n </TableCell>\n <TableCell>{details.value?.name}</TableCell>\n </TableRow>\n <TableRow>\n <TableCell>\n <Typography noWrap>Status</Typography>\n </TableCell>\n <TableCell>\n <WorkflowRunStatus\n status={details.value?.status || undefined}\n conclusion={details.value?.conclusion || undefined}\n />\n </TableCell>\n </TableRow>\n <TableRow>\n <TableCell>\n <Typography noWrap>Author</Typography>\n </TableCell>\n <TableCell>{`${details.value?.head_commit?.author?.name} (${details.value?.head_commit?.author?.email})`}</TableCell>\n </TableRow>\n <TableRow>\n <TableCell>\n <Typography noWrap>Links</Typography>\n </TableCell>\n <TableCell>\n {details.value?.html_url && (\n <Link to={details.value.html_url}>\n Workflow runs on GitHub{' '}\n <ExternalLinkIcon className={classes.externalLinkIcon} />\n </Link>\n )}\n </TableCell>\n </TableRow>\n <TableRow>\n <TableCell colSpan={2}>\n <Typography noWrap>Jobs</Typography>\n {jobs.loading ? (\n <CircularProgress />\n ) : (\n <JobsList jobs={jobs.value} entity={entity} />\n )}\n </TableCell>\n </TableRow>\n </TableBody>\n </Table>\n </TableContainer>\n </div>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkflowRunDetails.esm.js","sources":["../../../src/components/WorkflowRunDetails/WorkflowRunDetails.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Entity } from '@backstage/catalog-model';\nimport Accordion from '@material-ui/core/Accordion';\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\nimport Box from '@material-ui/core/Box';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport Paper from '@material-ui/core/Paper';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableRow from '@material-ui/core/TableRow';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles, Theme } from '@material-ui/core/styles';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport ExternalLinkIcon from '@material-ui/icons/Launch';\nimport { DateTime } from 'luxon';\nimport { Job, Jobs, Step } from '../../api';\nimport { getProjectNameFromEntity } from '../getProjectNameFromEntity';\nimport { WorkflowRunStatus } from '../WorkflowRunStatus';\nimport { useWorkflowRunJobs } from './useWorkflowRunJobs';\nimport { useWorkflowRunsDetails } from './useWorkflowRunsDetails';\nimport { WorkflowRunLogs } from '../WorkflowRunLogs';\nimport { Breadcrumbs, Link } from '@backstage/core-components';\nimport { getHostnameFromEntity } from '../getHostnameFromEntity';\n\nconst useStyles = makeStyles<Theme>(theme => ({\n root: {\n maxWidth: 720,\n margin: theme.spacing(2),\n },\n title: {\n padding: theme.spacing(1, 0, 2, 0),\n },\n table: {\n padding: theme.spacing(1),\n },\n accordionDetails: {\n padding: 0,\n },\n button: {\n order: -1,\n marginRight: 0,\n marginLeft: '-20px',\n },\n externalLinkIcon: {\n fontSize: 'inherit',\n verticalAlign: 'bottom',\n },\n}));\n\nconst getElapsedTime = (start: string | undefined, end: string | undefined) => {\n if (!start || !end) {\n return '';\n }\n const startDate = DateTime.fromISO(start);\n const endDate = end ? DateTime.fromISO(end) : DateTime.now();\n const diff = endDate.diff(startDate);\n const timeElapsed = diff.toFormat(`m 'minutes' s 'seconds'`);\n return timeElapsed;\n};\n\nconst StepView = ({ step }: { step: Step }) => {\n return (\n <TableRow>\n <TableCell>\n <ListItemText\n primary={step.name}\n secondary={getElapsedTime(step.started_at, step.completed_at)}\n />\n </TableCell>\n <TableCell>\n <WorkflowRunStatus\n status={step.status.toLocaleUpperCase('en-US')}\n conclusion={step.conclusion?.toLocaleUpperCase('en-US')}\n />\n </TableCell>\n </TableRow>\n );\n};\n\nconst JobListItem = ({\n job,\n className,\n entity,\n}: {\n job: Job;\n className: string;\n entity: Entity;\n}) => {\n const classes = useStyles();\n return (\n <Accordion TransitionProps={{ unmountOnExit: true }} className={className}>\n <AccordionSummary\n expandIcon={<ExpandMoreIcon />}\n IconButtonProps={{\n className: classes.button,\n }}\n >\n <Typography variant=\"button\">\n {job.name} ({getElapsedTime(job.started_at, job.completed_at)})\n </Typography>\n </AccordionSummary>\n <AccordionDetails className={classes.accordionDetails}>\n <TableContainer>\n <Table>\n {job.steps?.map(step => (\n <StepView key={step.number} step={step} />\n ))}\n </Table>\n </TableContainer>\n </AccordionDetails>\n {job.status === 'queued' || job.status === 'in_progress' ? (\n <WorkflowRunLogs runId={job.id} inProgress entity={entity} />\n ) : (\n <WorkflowRunLogs runId={job.id} inProgress={false} entity={entity} />\n )}\n </Accordion>\n );\n};\n\nconst JobsList = ({ jobs, entity }: { jobs?: Jobs; entity: Entity }) => {\n const classes = useStyles();\n return (\n <Box>\n {jobs &&\n jobs.total_count > 0 &&\n jobs.jobs.map(job => (\n <JobListItem\n key={job.id}\n job={job}\n className={\n job.status !== 'success' ? classes.failed : classes.success\n }\n entity={entity}\n />\n ))}\n </Box>\n );\n};\n\nexport const WorkflowRunDetails = ({ entity }: { entity: Entity }) => {\n const projectName = getProjectNameFromEntity(entity);\n\n const hostname = getHostnameFromEntity(entity);\n const [owner, repo] = (projectName && projectName.split('/')) || [];\n const details = useWorkflowRunsDetails({ hostname, owner, repo });\n const jobs = useWorkflowRunJobs({ hostname, owner, repo });\n\n const classes = useStyles();\n\n if (details.error && details.error.message) {\n return (\n <Typography variant=\"h6\" color=\"error\">\n Failed to load build, {details.error.message}\n </Typography>\n );\n } else if (details.loading) {\n return <LinearProgress />;\n }\n return (\n <div className={classes.root}>\n <Box mb={3}>\n <Breadcrumbs aria-label=\"breadcrumb\">\n <Link to=\"..\">Workflow runs</Link>\n <Typography>Workflow run details</Typography>\n </Breadcrumbs>\n </Box>\n <TableContainer component={Paper} className={classes.table}>\n <Table>\n <TableBody>\n <TableRow>\n <TableCell>\n <Typography noWrap>Branch</Typography>\n </TableCell>\n <TableCell>{details.value?.head_branch}</TableCell>\n </TableRow>\n <TableRow>\n <TableCell>\n <Typography noWrap>Message</Typography>\n </TableCell>\n <TableCell>{details.value?.head_commit?.message}</TableCell>\n </TableRow>\n <TableRow>\n <TableCell>\n <Typography noWrap>Commit ID</Typography>\n </TableCell>\n <TableCell>{details.value?.head_commit?.id}</TableCell>\n </TableRow>\n <TableRow>\n <TableCell>\n <Typography noWrap>Workflow</Typography>\n </TableCell>\n <TableCell>{details.value?.name}</TableCell>\n </TableRow>\n <TableRow>\n <TableCell>\n <Typography noWrap>Status</Typography>\n </TableCell>\n <TableCell>\n <WorkflowRunStatus\n status={details.value?.status || undefined}\n conclusion={details.value?.conclusion || undefined}\n />\n </TableCell>\n </TableRow>\n <TableRow>\n <TableCell>\n <Typography noWrap>Author</Typography>\n </TableCell>\n <TableCell>{`${details.value?.head_commit?.author?.name} (${details.value?.head_commit?.author?.email})`}</TableCell>\n </TableRow>\n <TableRow>\n <TableCell>\n <Typography noWrap>Links</Typography>\n </TableCell>\n <TableCell>\n {details.value?.html_url && (\n <Link to={details.value.html_url}>\n Workflow runs on GitHub{' '}\n <ExternalLinkIcon className={classes.externalLinkIcon} />\n </Link>\n )}\n </TableCell>\n </TableRow>\n <TableRow>\n <TableCell colSpan={2}>\n <Typography noWrap>Jobs</Typography>\n {jobs.loading ? (\n <CircularProgress />\n ) : (\n <JobsList jobs={jobs.value} entity={entity} />\n )}\n </TableCell>\n </TableRow>\n </TableBody>\n </Table>\n </TableContainer>\n </div>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
1
2
  import { LogViewer } from '@backstage/core-components';
2
3
  import Accordion from '@material-ui/core/Accordion';
3
4
  import AccordionSummary from '@material-ui/core/AccordionSummary';
@@ -10,7 +11,7 @@ import Zoom from '@material-ui/core/Zoom';
10
11
  import { makeStyles } from '@material-ui/core/styles';
11
12
  import DescriptionIcon from '@material-ui/icons/Description';
12
13
  import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
13
- import React from 'react';
14
+ import { useState } from 'react';
14
15
  import { getProjectNameFromEntity } from '../getProjectNameFromEntity.esm.js';
15
16
  import { useDownloadWorkflowRunLogs } from './useDownloadWorkflowRunLogs.esm.js';
16
17
  import { getHostnameFromEntity } from '../getHostnameFromEntity.esm.js';
@@ -57,49 +58,54 @@ const WorkflowRunLogs = ({
57
58
  id: runId
58
59
  });
59
60
  const logText = jobLogs.value ? String(jobLogs.value) : void 0;
60
- const [open, setOpen] = React.useState(false);
61
+ const [open, setOpen] = useState(false);
61
62
  const handleOpen = () => {
62
63
  setOpen(true);
63
64
  };
64
65
  const handleClose = () => {
65
66
  setOpen(false);
66
67
  };
67
- return /* @__PURE__ */ React.createElement(Accordion, { TransitionProps: { unmountOnExit: true }, disabled: inProgress }, /* @__PURE__ */ React.createElement(
68
- AccordionSummary,
69
- {
70
- expandIcon: /* @__PURE__ */ React.createElement(ExpandMoreIcon, null),
71
- IconButtonProps: {
72
- className: classes.button
73
- }
74
- },
75
- /* @__PURE__ */ React.createElement(Typography, { variant: "button" }, jobLogs.loading ? /* @__PURE__ */ React.createElement(CircularProgress, null) : "Job Log"),
76
- /* @__PURE__ */ React.createElement(Tooltip, { title: "Open Log", TransitionComponent: Zoom, arrow: true }, /* @__PURE__ */ React.createElement(
77
- DescriptionIcon,
68
+ return /* @__PURE__ */ jsxs(Accordion, { TransitionProps: { unmountOnExit: true }, disabled: inProgress, children: [
69
+ /* @__PURE__ */ jsxs(
70
+ AccordionSummary,
78
71
  {
79
- onClick: (event) => {
80
- event.stopPropagation();
81
- handleOpen();
72
+ expandIcon: /* @__PURE__ */ jsx(ExpandMoreIcon, {}),
73
+ IconButtonProps: {
74
+ className: classes.button
82
75
  },
83
- style: { marginLeft: "auto" }
76
+ children: [
77
+ /* @__PURE__ */ jsx(Typography, { variant: "button", children: jobLogs.loading ? /* @__PURE__ */ jsx(CircularProgress, {}) : "Job Log" }),
78
+ /* @__PURE__ */ jsx(Tooltip, { title: "Open Log", TransitionComponent: Zoom, arrow: true, children: /* @__PURE__ */ jsx(
79
+ DescriptionIcon,
80
+ {
81
+ onClick: (event) => {
82
+ event.stopPropagation();
83
+ handleOpen();
84
+ },
85
+ style: { marginLeft: "auto" }
86
+ }
87
+ ) }),
88
+ /* @__PURE__ */ jsx(
89
+ Modal,
90
+ {
91
+ className: classes.modal,
92
+ onClick: (event) => event.stopPropagation(),
93
+ open,
94
+ onClose: handleClose,
95
+ children: /* @__PURE__ */ jsx(Fade, { in: open, children: /* @__PURE__ */ jsx("div", { className: classes.modalLogContainer, children: /* @__PURE__ */ jsx(
96
+ LogViewer,
97
+ {
98
+ text: logText ?? "No Values Found",
99
+ classes: { root: classes.log }
100
+ }
101
+ ) }) })
102
+ }
103
+ )
104
+ ]
84
105
  }
85
- )),
86
- /* @__PURE__ */ React.createElement(
87
- Modal,
88
- {
89
- className: classes.modal,
90
- onClick: (event) => event.stopPropagation(),
91
- open,
92
- onClose: handleClose
93
- },
94
- /* @__PURE__ */ React.createElement(Fade, { in: open }, /* @__PURE__ */ React.createElement("div", { className: classes.modalLogContainer }, /* @__PURE__ */ React.createElement(
95
- LogViewer,
96
- {
97
- text: logText ?? "No Values Found",
98
- classes: { root: classes.log }
99
- }
100
- )))
101
- )
102
- ), logText && /* @__PURE__ */ React.createElement("div", { className: classes.normalLogContainer }, /* @__PURE__ */ React.createElement(LogViewer, { text: logText, classes: { root: classes.log } })));
106
+ ),
107
+ logText && /* @__PURE__ */ jsx("div", { className: classes.normalLogContainer, children: /* @__PURE__ */ jsx(LogViewer, { text: logText, classes: { root: classes.log } }) })
108
+ ] });
103
109
  };
104
110
 
105
111
  export { WorkflowRunLogs };
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowRunLogs.esm.js","sources":["../../../src/components/WorkflowRunLogs/WorkflowRunLogs.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Entity } from '@backstage/catalog-model';\nimport { LogViewer } from '@backstage/core-components';\nimport Accordion from '@material-ui/core/Accordion';\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport Fade from '@material-ui/core/Fade';\nimport Modal from '@material-ui/core/Modal';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport Typography from '@material-ui/core/Typography';\nimport Zoom from '@material-ui/core/Zoom';\nimport { makeStyles } from '@material-ui/core/styles';\nimport DescriptionIcon from '@material-ui/icons/Description';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport React from 'react';\nimport { getProjectNameFromEntity } from '../getProjectNameFromEntity';\nimport { useDownloadWorkflowRunLogs } from './useDownloadWorkflowRunLogs';\nimport { getHostnameFromEntity } from '../getHostnameFromEntity';\n\nconst useStyles = makeStyles(theme => ({\n button: {\n order: -1,\n marginRight: 0,\n marginLeft: '-20px',\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n width: '85%',\n height: '85%',\n justifyContent: 'center',\n margin: 'auto',\n },\n normalLogContainer: {\n height: '75vh',\n width: '100%',\n },\n modalLogContainer: {\n height: '100%',\n width: '100%',\n },\n log: {\n background: theme.palette.background.default,\n },\n}));\n\n/**\n * A component for Run Logs visualization.\n */\nexport const WorkflowRunLogs = ({\n entity,\n runId,\n inProgress,\n}: {\n entity: Entity;\n runId: number;\n inProgress: boolean;\n}) => {\n const classes = useStyles();\n const projectName = getProjectNameFromEntity(entity);\n\n const hostname = getHostnameFromEntity(entity);\n const [owner, repo] = (projectName && projectName.split('/')) || [];\n const jobLogs = useDownloadWorkflowRunLogs({\n hostname,\n owner,\n repo,\n id: runId,\n });\n const logText = jobLogs.value ? String(jobLogs.value) : undefined;\n const [open, setOpen] = React.useState(false);\n\n const handleOpen = () => {\n setOpen(true);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n\n return (\n <Accordion TransitionProps={{ unmountOnExit: true }} disabled={inProgress}>\n <AccordionSummary\n expandIcon={<ExpandMoreIcon />}\n IconButtonProps={{\n className: classes.button,\n }}\n >\n <Typography variant=\"button\">\n {jobLogs.loading ? <CircularProgress /> : 'Job Log'}\n </Typography>\n <Tooltip title=\"Open Log\" TransitionComponent={Zoom} arrow>\n <DescriptionIcon\n onClick={event => {\n event.stopPropagation();\n handleOpen();\n }}\n style={{ marginLeft: 'auto' }}\n />\n </Tooltip>\n <Modal\n className={classes.modal}\n onClick={event => event.stopPropagation()}\n open={open}\n onClose={handleClose}\n >\n <Fade in={open}>\n <div className={classes.modalLogContainer}>\n <LogViewer\n text={logText ?? 'No Values Found'}\n classes={{ root: classes.log }}\n />\n </div>\n </Fade>\n </Modal>\n </AccordionSummary>\n {logText && (\n <div className={classes.normalLogContainer}>\n <LogViewer text={logText} classes={{ root: classes.log }} />\n </div>\n )}\n </Accordion>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkflowRunLogs.esm.js","sources":["../../../src/components/WorkflowRunLogs/WorkflowRunLogs.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Entity } from '@backstage/catalog-model';\nimport { LogViewer } from '@backstage/core-components';\nimport Accordion from '@material-ui/core/Accordion';\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport Fade from '@material-ui/core/Fade';\nimport Modal from '@material-ui/core/Modal';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport Typography from '@material-ui/core/Typography';\nimport Zoom from '@material-ui/core/Zoom';\nimport { makeStyles } from '@material-ui/core/styles';\nimport DescriptionIcon from '@material-ui/icons/Description';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport { useState } from 'react';\nimport { getProjectNameFromEntity } from '../getProjectNameFromEntity';\nimport { useDownloadWorkflowRunLogs } from './useDownloadWorkflowRunLogs';\nimport { getHostnameFromEntity } from '../getHostnameFromEntity';\n\nconst useStyles = makeStyles(theme => ({\n button: {\n order: -1,\n marginRight: 0,\n marginLeft: '-20px',\n },\n modal: {\n display: 'flex',\n alignItems: 'center',\n width: '85%',\n height: '85%',\n justifyContent: 'center',\n margin: 'auto',\n },\n normalLogContainer: {\n height: '75vh',\n width: '100%',\n },\n modalLogContainer: {\n height: '100%',\n width: '100%',\n },\n log: {\n background: theme.palette.background.default,\n },\n}));\n\n/**\n * A component for Run Logs visualization.\n */\nexport const WorkflowRunLogs = ({\n entity,\n runId,\n inProgress,\n}: {\n entity: Entity;\n runId: number;\n inProgress: boolean;\n}) => {\n const classes = useStyles();\n const projectName = getProjectNameFromEntity(entity);\n\n const hostname = getHostnameFromEntity(entity);\n const [owner, repo] = (projectName && projectName.split('/')) || [];\n const jobLogs = useDownloadWorkflowRunLogs({\n hostname,\n owner,\n repo,\n id: runId,\n });\n const logText = jobLogs.value ? String(jobLogs.value) : undefined;\n const [open, setOpen] = useState(false);\n\n const handleOpen = () => {\n setOpen(true);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n\n return (\n <Accordion TransitionProps={{ unmountOnExit: true }} disabled={inProgress}>\n <AccordionSummary\n expandIcon={<ExpandMoreIcon />}\n IconButtonProps={{\n className: classes.button,\n }}\n >\n <Typography variant=\"button\">\n {jobLogs.loading ? <CircularProgress /> : 'Job Log'}\n </Typography>\n <Tooltip title=\"Open Log\" TransitionComponent={Zoom} arrow>\n <DescriptionIcon\n onClick={event => {\n event.stopPropagation();\n handleOpen();\n }}\n style={{ marginLeft: 'auto' }}\n />\n </Tooltip>\n <Modal\n className={classes.modal}\n onClick={event => event.stopPropagation()}\n open={open}\n onClose={handleClose}\n >\n <Fade in={open}>\n <div className={classes.modalLogContainer}>\n <LogViewer\n text={logText ?? 'No Values Found'}\n classes={{ root: classes.log }}\n />\n </div>\n </Fade>\n </Modal>\n </AccordionSummary>\n {logText && (\n <div className={classes.normalLogContainer}>\n <LogViewer text={logText} classes={{ root: classes.log }} />\n </div>\n )}\n </Accordion>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { StatusPending, StatusOK, StatusError, StatusWarning, StatusAborted, StatusRunning } from '@backstage/core-components';
3
3
  import Box from '@material-ui/core/Box';
4
4
  import Typography from '@material-ui/core/Typography';
@@ -13,7 +13,10 @@ const useStyles = makeStyles(() => ({
13
13
  }));
14
14
  const WorkflowRunStatus = (props) => {
15
15
  const classes = useStyles();
16
- return /* @__PURE__ */ React.createElement(Box, { display: "flex", justifyContent: "center", alignItems: "center" }, /* @__PURE__ */ React.createElement(Box, { className: classes.statusIcon }, /* @__PURE__ */ React.createElement(WorkflowIcon, { ...props })), /* @__PURE__ */ React.createElement(Typography, { variant: "body2" }, getStatusDescription(props)));
16
+ return /* @__PURE__ */ jsxs(Box, { display: "flex", justifyContent: "center", alignItems: "center", children: [
17
+ /* @__PURE__ */ jsx(Box, { className: classes.statusIcon, children: /* @__PURE__ */ jsx(WorkflowIcon, { ...props }) }),
18
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", children: getStatusDescription(props) })
19
+ ] });
17
20
  };
18
21
  function WorkflowIcon({
19
22
  status,
@@ -22,23 +25,23 @@ function WorkflowIcon({
22
25
  if (status === void 0) return null;
23
26
  switch (status.toLocaleLowerCase("en-US")) {
24
27
  case "queued":
25
- return /* @__PURE__ */ React.createElement(StatusPending, null);
28
+ return /* @__PURE__ */ jsx(StatusPending, {});
26
29
  case "in_progress":
27
- return /* @__PURE__ */ React.createElement(StatusRunning, null);
30
+ return /* @__PURE__ */ jsx(StatusRunning, {});
28
31
  case "completed":
29
32
  switch (conclusion?.toLocaleLowerCase("en-US")) {
30
33
  case "skipped":
31
34
  case "cancelled":
32
- return /* @__PURE__ */ React.createElement(StatusAborted, null);
35
+ return /* @__PURE__ */ jsx(StatusAborted, {});
33
36
  case "timed_out":
34
- return /* @__PURE__ */ React.createElement(StatusWarning, null);
37
+ return /* @__PURE__ */ jsx(StatusWarning, {});
35
38
  case "failure":
36
- return /* @__PURE__ */ React.createElement(StatusError, null);
39
+ return /* @__PURE__ */ jsx(StatusError, {});
37
40
  default:
38
- return /* @__PURE__ */ React.createElement(StatusOK, null);
41
+ return /* @__PURE__ */ jsx(StatusOK, {});
39
42
  }
40
43
  default:
41
- return /* @__PURE__ */ React.createElement(StatusPending, null);
44
+ return /* @__PURE__ */ jsx(StatusPending, {});
42
45
  }
43
46
  }
44
47
  function getStatusDescription({
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowRunStatus.esm.js","sources":["../../../src/components/WorkflowRunStatus/WorkflowRunStatus.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from 'react';\nimport {\n StatusPending,\n StatusRunning,\n StatusOK,\n StatusWarning,\n StatusAborted,\n StatusError,\n} from '@backstage/core-components';\nimport Box from '@material-ui/core/Box';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(() => ({\n statusIcon: {\n '& svg': {\n position: 'static',\n },\n },\n}));\n\nexport const WorkflowRunStatus = (props: {\n status?: string;\n conclusion?: string;\n}) => {\n const classes = useStyles();\n return (\n <Box display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\n <Box className={classes.statusIcon}>\n <WorkflowIcon {...props} />\n </Box>\n <Typography variant=\"body2\">{getStatusDescription(props)}</Typography>\n </Box>\n );\n};\n\nexport function WorkflowIcon({\n status,\n conclusion,\n}: {\n status?: string;\n conclusion?: string;\n}) {\n if (status === undefined) return null;\n switch (status.toLocaleLowerCase('en-US')) {\n case 'queued':\n return <StatusPending />;\n\n case 'in_progress':\n return <StatusRunning />;\n case 'completed':\n switch (conclusion?.toLocaleLowerCase('en-US')) {\n case 'skipped':\n case 'cancelled':\n return <StatusAborted />;\n\n case 'timed_out':\n return <StatusWarning />;\n case 'failure':\n return <StatusError />;\n default:\n return <StatusOK />;\n }\n default:\n return <StatusPending />;\n }\n}\n\nexport function getStatusDescription({\n status,\n conclusion,\n}: {\n status?: string;\n conclusion?: string;\n}) {\n if (status === undefined) return '';\n switch (status.toLocaleLowerCase('en-US')) {\n case 'queued':\n return 'Queued';\n case 'in_progress':\n return 'In progress';\n case 'completed':\n switch (conclusion?.toLocaleLowerCase('en-US')) {\n case 'skipped':\n case 'cancelled':\n return 'Aborted';\n case 'timed_out':\n return 'Timed out';\n case 'failure':\n return 'Error';\n default:\n return 'Completed';\n }\n default:\n return 'Pending';\n }\n}\n"],"names":[],"mappings":";;;;;;AA6BA,MAAM,SAAA,GAAY,WAAW,OAAO;AAAA,EAClC,UAAY,EAAA;AAAA,IACV,OAAS,EAAA;AAAA,MACP,QAAU,EAAA;AAAA;AACZ;AAEJ,CAAE,CAAA,CAAA;AAEW,MAAA,iBAAA,GAAoB,CAAC,KAG5B,KAAA;AACJ,EAAA,MAAM,UAAU,SAAU,EAAA;AAC1B,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,GAAI,EAAA,EAAA,OAAA,EAAQ,MAAO,EAAA,cAAA,EAAe,QAAS,EAAA,UAAA,EAAW,QACrD,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,GAAI,EAAA,EAAA,SAAA,EAAW,OAAQ,CAAA,UAAA,EAAA,sCACrB,YAAc,EAAA,EAAA,GAAG,KAAO,EAAA,CAC3B,CACA,kBAAA,KAAA,CAAA,aAAA,CAAC,UAAW,EAAA,EAAA,OAAA,EAAQ,OAAS,EAAA,EAAA,oBAAA,CAAqB,KAAK,CAAE,CAC3D,CAAA;AAEJ;AAEO,SAAS,YAAa,CAAA;AAAA,EAC3B,MAAA;AAAA,EACA;AACF,CAGG,EAAA;AACD,EAAI,IAAA,MAAA,KAAW,QAAkB,OAAA,IAAA;AACjC,EAAQ,QAAA,MAAA,CAAO,iBAAkB,CAAA,OAAO,CAAG;AAAA,IACzC,KAAK,QAAA;AACH,MAAA,2CAAQ,aAAc,EAAA,IAAA,CAAA;AAAA,IAExB,KAAK,aAAA;AACH,MAAA,2CAAQ,aAAc,EAAA,IAAA,CAAA;AAAA,IACxB,KAAK,WAAA;AACH,MAAQ,QAAA,UAAA,EAAY,iBAAkB,CAAA,OAAO,CAAG;AAAA,QAC9C,KAAK,SAAA;AAAA,QACL,KAAK,WAAA;AACH,UAAA,2CAAQ,aAAc,EAAA,IAAA,CAAA;AAAA,QAExB,KAAK,WAAA;AACH,UAAA,2CAAQ,aAAc,EAAA,IAAA,CAAA;AAAA,QACxB,KAAK,SAAA;AACH,UAAA,2CAAQ,WAAY,EAAA,IAAA,CAAA;AAAA,QACtB;AACE,UAAA,2CAAQ,QAAS,EAAA,IAAA,CAAA;AAAA;AACrB,IACF;AACE,MAAA,2CAAQ,aAAc,EAAA,IAAA,CAAA;AAAA;AAE5B;AAEO,SAAS,oBAAqB,CAAA;AAAA,EACnC,MAAA;AAAA,EACA;AACF,CAGG,EAAA;AACD,EAAI,IAAA,MAAA,KAAW,QAAkB,OAAA,EAAA;AACjC,EAAQ,QAAA,MAAA,CAAO,iBAAkB,CAAA,OAAO,CAAG;AAAA,IACzC,KAAK,QAAA;AACH,MAAO,OAAA,QAAA;AAAA,IACT,KAAK,aAAA;AACH,MAAO,OAAA,aAAA;AAAA,IACT,KAAK,WAAA;AACH,MAAQ,QAAA,UAAA,EAAY,iBAAkB,CAAA,OAAO,CAAG;AAAA,QAC9C,KAAK,SAAA;AAAA,QACL,KAAK,WAAA;AACH,UAAO,OAAA,SAAA;AAAA,QACT,KAAK,WAAA;AACH,UAAO,OAAA,WAAA;AAAA,QACT,KAAK,SAAA;AACH,UAAO,OAAA,OAAA;AAAA,QACT;AACE,UAAO,OAAA,WAAA;AAAA;AACX,IACF;AACE,MAAO,OAAA,SAAA;AAAA;AAEb;;;;"}
1
+ {"version":3,"file":"WorkflowRunStatus.esm.js","sources":["../../../src/components/WorkflowRunStatus/WorkflowRunStatus.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n StatusPending,\n StatusRunning,\n StatusOK,\n StatusWarning,\n StatusAborted,\n StatusError,\n} from '@backstage/core-components';\nimport Box from '@material-ui/core/Box';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(() => ({\n statusIcon: {\n '& svg': {\n position: 'static',\n },\n },\n}));\n\nexport const WorkflowRunStatus = (props: {\n status?: string;\n conclusion?: string;\n}) => {\n const classes = useStyles();\n return (\n <Box display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\n <Box className={classes.statusIcon}>\n <WorkflowIcon {...props} />\n </Box>\n <Typography variant=\"body2\">{getStatusDescription(props)}</Typography>\n </Box>\n );\n};\n\nexport function WorkflowIcon({\n status,\n conclusion,\n}: {\n status?: string;\n conclusion?: string;\n}) {\n if (status === undefined) return null;\n switch (status.toLocaleLowerCase('en-US')) {\n case 'queued':\n return <StatusPending />;\n\n case 'in_progress':\n return <StatusRunning />;\n case 'completed':\n switch (conclusion?.toLocaleLowerCase('en-US')) {\n case 'skipped':\n case 'cancelled':\n return <StatusAborted />;\n\n case 'timed_out':\n return <StatusWarning />;\n case 'failure':\n return <StatusError />;\n default:\n return <StatusOK />;\n }\n default:\n return <StatusPending />;\n }\n}\n\nexport function getStatusDescription({\n status,\n conclusion,\n}: {\n status?: string;\n conclusion?: string;\n}) {\n if (status === undefined) return '';\n switch (status.toLocaleLowerCase('en-US')) {\n case 'queued':\n return 'Queued';\n case 'in_progress':\n return 'In progress';\n case 'completed':\n switch (conclusion?.toLocaleLowerCase('en-US')) {\n case 'skipped':\n case 'cancelled':\n return 'Aborted';\n case 'timed_out':\n return 'Timed out';\n case 'failure':\n return 'Error';\n default:\n return 'Completed';\n }\n default:\n return 'Pending';\n }\n}\n"],"names":[],"mappings":";;;;;;AA4BA,MAAM,SAAA,GAAY,WAAW,OAAO;AAAA,EAClC,UAAY,EAAA;AAAA,IACV,OAAS,EAAA;AAAA,MACP,QAAU,EAAA;AAAA;AACZ;AAEJ,CAAE,CAAA,CAAA;AAEW,MAAA,iBAAA,GAAoB,CAAC,KAG5B,KAAA;AACJ,EAAA,MAAM,UAAU,SAAU,EAAA;AAC1B,EAAA,4BACG,GAAI,EAAA,EAAA,OAAA,EAAQ,QAAO,cAAe,EAAA,QAAA,EAAS,YAAW,QACrD,EAAA,QAAA,EAAA;AAAA,oBAAC,GAAA,CAAA,GAAA,EAAA,EAAI,WAAW,OAAQ,CAAA,UAAA,EACtB,8BAAC,YAAc,EAAA,EAAA,GAAG,OAAO,CAC3B,EAAA,CAAA;AAAA,wBACC,UAAW,EAAA,EAAA,OAAA,EAAQ,OAAS,EAAA,QAAA,EAAA,oBAAA,CAAqB,KAAK,CAAE,EAAA;AAAA,GAC3D,EAAA,CAAA;AAEJ;AAEO,SAAS,YAAa,CAAA;AAAA,EAC3B,MAAA;AAAA,EACA;AACF,CAGG,EAAA;AACD,EAAI,IAAA,MAAA,KAAW,QAAkB,OAAA,IAAA;AACjC,EAAQ,QAAA,MAAA,CAAO,iBAAkB,CAAA,OAAO,CAAG;AAAA,IACzC,KAAK,QAAA;AACH,MAAA,2BAAQ,aAAc,EAAA,EAAA,CAAA;AAAA,IAExB,KAAK,aAAA;AACH,MAAA,2BAAQ,aAAc,EAAA,EAAA,CAAA;AAAA,IACxB,KAAK,WAAA;AACH,MAAQ,QAAA,UAAA,EAAY,iBAAkB,CAAA,OAAO,CAAG;AAAA,QAC9C,KAAK,SAAA;AAAA,QACL,KAAK,WAAA;AACH,UAAA,2BAAQ,aAAc,EAAA,EAAA,CAAA;AAAA,QAExB,KAAK,WAAA;AACH,UAAA,2BAAQ,aAAc,EAAA,EAAA,CAAA;AAAA,QACxB,KAAK,SAAA;AACH,UAAA,2BAAQ,WAAY,EAAA,EAAA,CAAA;AAAA,QACtB;AACE,UAAA,2BAAQ,QAAS,EAAA,EAAA,CAAA;AAAA;AACrB,IACF;AACE,MAAA,2BAAQ,aAAc,EAAA,EAAA,CAAA;AAAA;AAE5B;AAEO,SAAS,oBAAqB,CAAA;AAAA,EACnC,MAAA;AAAA,EACA;AACF,CAGG,EAAA;AACD,EAAI,IAAA,MAAA,KAAW,QAAkB,OAAA,EAAA;AACjC,EAAQ,QAAA,MAAA,CAAO,iBAAkB,CAAA,OAAO,CAAG;AAAA,IACzC,KAAK,QAAA;AACH,MAAO,OAAA,QAAA;AAAA,IACT,KAAK,aAAA;AACH,MAAO,OAAA,aAAA;AAAA,IACT,KAAK,WAAA;AACH,MAAQ,QAAA,UAAA,EAAY,iBAAkB,CAAA,OAAO,CAAG;AAAA,QAC9C,KAAK,SAAA;AAAA,QACL,KAAK,WAAA;AACH,UAAO,OAAA,SAAA;AAAA,QACT,KAAK,WAAA;AACH,UAAO,OAAA,WAAA;AAAA,QACT,KAAK,SAAA;AACH,UAAO,OAAA,OAAA;AAAA,QACT;AACE,UAAO,OAAA,WAAA;AAAA;AACX,IACF;AACE,MAAO,OAAA,SAAA;AAAA;AAEb;;;;"}