@backstage-community/plugin-tekton-react 0.1.0 → 0.1.2

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @backstage-community/plugin-tekton-react
2
2
 
3
+ ## 0.1.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 536b783: Updated dependency `@kubernetes/client-node` to `1.4.0`.
8
+
9
+ ## 0.1.1
10
+
11
+ ### Patch Changes
12
+
13
+ - 2f3a66b: Add missing Topology shared-react usage to tekton-react
14
+
3
15
  ## 0.1.0
4
16
 
5
17
  ### Minor Changes
package/dist/index.d.ts CHANGED
@@ -228,6 +228,17 @@ type Condition = {
228
228
  message?: string;
229
229
  lastTransitionTime?: string;
230
230
  };
231
+ /**
232
+ * The kind for the pipeline.
233
+ *
234
+ * @public
235
+ */
236
+ type PipelineKind = {
237
+ apiVersion?: string;
238
+ kind?: string;
239
+ metadata?: V1ObjectMeta;
240
+ spec: PipelineSpec;
241
+ };
231
242
 
232
243
  /**
233
244
  * The reasons for the terminated status.
@@ -580,6 +591,12 @@ declare const TaskStatusTooltip: ({ taskStatus }: TaskStatusToolTipProps) => rea
580
591
  * @public
581
592
  */
582
593
  declare const getRunStatusColor: (status: string) => StatusMessage;
594
+ /**
595
+ * The function to get the latest pipeline run.
596
+ *
597
+ * @public
598
+ */
599
+ declare const getLatestPipelineRun: (runs: PipelineRunKind[], field: string) => PipelineRunKind | null;
583
600
  /**
584
601
  * The function to get the status for the pipeline run.
585
602
  *
@@ -598,6 +615,18 @@ declare const pipelineRunFilterReducer: (pipelineRun: PipelineRunKind | TaskRunK
598
615
  * @public
599
616
  */
600
617
  declare const updateTaskStatus: (pipelinerun: PipelineRunKind | null, taskRuns: TaskRunKind[]) => TaskStatusTypes;
618
+ /**
619
+ * The function to get the total number of tasks in the pipeline run.
620
+ *
621
+ * @public
622
+ */
623
+ declare const totalPipelineRunTasks: (pipelinerun: PipelineRunKind | null) => number;
624
+ /**
625
+ * The function to get the task status.
626
+ *
627
+ * @public
628
+ */
629
+ declare const getTaskStatus: (pipelinerun: PipelineRunKind, taskRuns: TaskRunKind[]) => TaskStatusTypes;
601
630
 
602
631
  /**
603
632
  * The function to get the task runs for the pipeline run.
@@ -606,5 +635,5 @@ declare const updateTaskStatus: (pipelinerun: PipelineRunKind | null, taskRuns:
606
635
  */
607
636
  declare const getTaskRunsForPipelineRun: (pipelinerun: PipelineRunKind | null, taskRuns: TaskRunKind[]) => TaskRunKind[];
608
637
 
609
- export { ComputedStatus, HorizontalStackedBars, SucceedConditionReason, TaskStatusTooltip, TerminatedReasons, getRunStatusColor, getTaskRunsForPipelineRun, pipelineRunFilterReducer, pipelineRunStatus, updateTaskStatus };
610
- export type { Condition, HorizontalStackedBarsProps, PLRTaskRunData, PLRTaskRunStep, PLRTaskRuns, PipelineResult, PipelineRunEmbeddedResource, PipelineRunEmbeddedResourceParam, PipelineRunKind, PipelineRunParam, PipelineRunReferenceResource, PipelineRunResource, PipelineRunStatus, PipelineRunWorkspace, PipelineSpec, PipelineTask, PipelineTaskParam, PipelineTaskRef, PipelineTaskResource, PipelineTaskWithStatus, PipelineTaskWorkspace, StackedValue, StatusMessage, TaskResult, TaskRunKind, TaskRunStatus, TaskRunWorkspace, TaskStatusToolTipProps, TaskStatusTypes, TektonParam, TektonResource, TektonResourceGroup, TektonResultsRun, TektonTaskSpec, TektonTaskSteps, TektonWorkspace, VolumeTypePVC, WhenExpression };
638
+ export { ComputedStatus, HorizontalStackedBars, SucceedConditionReason, TaskStatusTooltip, TerminatedReasons, getLatestPipelineRun, getRunStatusColor, getTaskRunsForPipelineRun, getTaskStatus, pipelineRunFilterReducer, pipelineRunStatus, totalPipelineRunTasks, updateTaskStatus };
639
+ export type { Condition, HorizontalStackedBarsProps, PLRTaskRunData, PLRTaskRunStep, PLRTaskRuns, PipelineKind, PipelineResult, PipelineRunEmbeddedResource, PipelineRunEmbeddedResourceParam, PipelineRunKind, PipelineRunParam, PipelineRunReferenceResource, PipelineRunResource, PipelineRunStatus, PipelineRunWorkspace, PipelineSpec, PipelineTask, PipelineTaskParam, PipelineTaskRef, PipelineTaskResource, PipelineTaskWithStatus, PipelineTaskWorkspace, StackedValue, StatusMessage, TaskResult, TaskRunKind, TaskRunStatus, TaskRunWorkspace, TaskStatusToolTipProps, TaskStatusTypes, TektonParam, TektonResource, TektonResourceGroup, TektonResultsRun, TektonTaskSpec, TektonTaskSteps, TektonWorkspace, VolumeTypePVC, WhenExpression };
package/dist/index.esm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export { HorizontalStackedBars } from './components/pipeline/HorizontalStackedBars.esm.js';
2
2
  export { TaskStatusTooltip } from './components/pipeline/TaskStatusTooltip.esm.js';
3
3
  export { ComputedStatus, SucceedConditionReason, TerminatedReasons } from './types/pipeline/computedStatus.esm.js';
4
- export { getRunStatusColor, pipelineRunFilterReducer, pipelineRunStatus, updateTaskStatus } from './utils/pipeline/pipeline.esm.js';
4
+ export { getLatestPipelineRun, getRunStatusColor, getTaskStatus, pipelineRunFilterReducer, pipelineRunStatus, totalPipelineRunTasks, updateTaskStatus } from './utils/pipeline/pipeline.esm.js';
5
5
  export { getTaskRunsForPipelineRun } from './utils/pipeline/task-run.esm.js';
6
6
  //# sourceMappingURL=index.esm.js.map
@@ -32,6 +32,34 @@ const getRunStatusColor = (status) => {
32
32
  };
33
33
  }
34
34
  };
35
+ const getDate = (run, field) => {
36
+ if (field === "creationTimestamp") {
37
+ return run?.metadata?.creationTimestamp ?? "";
38
+ }
39
+ if (field === "startTime" || field === "completionTime") {
40
+ return run?.status?.[field] ?? "";
41
+ }
42
+ return "";
43
+ };
44
+ const getLatestRun = (runs, field) => {
45
+ let latestRun = runs[0];
46
+ for (let i = 1; i < runs.length; i++) {
47
+ latestRun = new Date(getDate(runs?.[i], field)) > new Date(getDate(latestRun, field)) ? runs[i] : latestRun;
48
+ }
49
+ return latestRun;
50
+ };
51
+ const getLatestPipelineRun = (runs, field) => {
52
+ if (runs?.length > 0 && field) {
53
+ let latestRun;
54
+ if (field === "completionTime" || field === "startTime" || field === "creationTimestamp") {
55
+ latestRun = getLatestRun(runs, field);
56
+ } else {
57
+ latestRun = runs[runs.length - 1];
58
+ }
59
+ return latestRun;
60
+ }
61
+ return null;
62
+ };
35
63
  const getSucceededStatus = (status) => {
36
64
  if (status === "True") {
37
65
  return ComputedStatus.Succeeded;
@@ -120,6 +148,37 @@ const updateTaskStatus = (pipelinerun, taskRuns) => {
120
148
  ...taskStatus
121
149
  };
122
150
  };
151
+ const totalPipelineRunTasks = (pipelinerun) => {
152
+ if (!pipelinerun?.status?.pipelineSpec) {
153
+ return 0;
154
+ }
155
+ const totalTasks = (pipelinerun.status.pipelineSpec?.tasks || []).length;
156
+ const finallyTasks = (pipelinerun.status.pipelineSpec?.finally || []).length ?? 0;
157
+ return totalTasks + finallyTasks;
158
+ };
159
+ const getTaskStatus = (pipelinerun, taskRuns) => {
160
+ const totalTasks = totalPipelineRunTasks(pipelinerun);
161
+ const plrTaskLength = taskRuns.length;
162
+ const skippedTaskLength = pipelinerun?.status?.skippedTasks?.length || 0;
163
+ const taskStatus = updateTaskStatus(pipelinerun, taskRuns);
164
+ if (taskRuns?.length > 0) {
165
+ const pipelineRunHasFailure = taskStatus[ComputedStatus.Failed] > 0;
166
+ const pipelineRunIsCancelled = pipelineRunFilterReducer(pipelinerun) === ComputedStatus.Cancelled;
167
+ const unhandledTasks = totalTasks >= plrTaskLength ? totalTasks - plrTaskLength - skippedTaskLength : totalTasks;
168
+ if (pipelineRunHasFailure || pipelineRunIsCancelled) {
169
+ taskStatus[ComputedStatus.Cancelled] += unhandledTasks;
170
+ } else {
171
+ taskStatus[ComputedStatus.Pending] += unhandledTasks;
172
+ }
173
+ } else if (pipelinerun?.status?.conditions?.[0]?.status === "False" || pipelinerun?.spec.status === SucceedConditionReason.PipelineRunCancelled) {
174
+ taskStatus[ComputedStatus.Cancelled] = totalTasks;
175
+ } else if (pipelinerun?.spec.status === SucceedConditionReason.PipelineRunPending) {
176
+ taskStatus[ComputedStatus.Pending] += totalTasks;
177
+ } else {
178
+ taskStatus[ComputedStatus.PipelineNotStarted]++;
179
+ }
180
+ return taskStatus;
181
+ };
123
182
 
124
- export { getRunStatusColor, pipelineRunFilterReducer, pipelineRunStatus, updateTaskStatus };
183
+ export { getLatestPipelineRun, getRunStatusColor, getTaskStatus, pipelineRunFilterReducer, pipelineRunStatus, totalPipelineRunTasks, updateTaskStatus };
125
184
  //# sourceMappingURL=pipeline.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.esm.js","sources":["../../../src/utils/pipeline/pipeline.ts"],"sourcesContent":["/*\n * Copyright 2025 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 { colors } from '../../constants';\nimport {\n ComputedStatus,\n PipelineRunKind,\n PipelineTaskWithStatus,\n StatusMessage,\n SucceedConditionReason,\n TaskRunKind,\n TaskStatusTypes,\n} from '../../types';\nimport { getTaskRunsForPipelineRun } from './task-run';\n\n/**\n * The function to get the status color for the run.\n *\n * @public\n */\nexport const getRunStatusColor = (status: string): StatusMessage => {\n switch (status) {\n case ComputedStatus.Succeeded:\n return { message: 'Succeeded', color: colors.success };\n case ComputedStatus.Failed:\n return { message: 'Failed', color: colors.failure };\n case ComputedStatus.FailedToStart:\n return {\n message: 'PipelineRun failed to start',\n color: colors.failure,\n };\n case ComputedStatus.Running:\n case ComputedStatus['In Progress']:\n return { message: 'Running', color: colors.running };\n\n case ComputedStatus.Skipped:\n return { message: 'Skipped', color: colors.skipped };\n case ComputedStatus.Cancelled:\n return { message: 'Cancelled', color: colors.cancelled };\n case ComputedStatus.Cancelling:\n return { message: 'Cancelling', color: colors.cancelled };\n case ComputedStatus.Idle:\n case ComputedStatus.Pending:\n return { message: 'Pending', color: colors.pending };\n default:\n return {\n message: 'PipelineRun not started yet',\n color: colors.pending,\n };\n }\n};\n\nconst getSucceededStatus = (status: string): ComputedStatus => {\n if (status === 'True') {\n return ComputedStatus.Succeeded;\n } else if (status === 'False') {\n return ComputedStatus.Failed;\n }\n return ComputedStatus.Running;\n};\n\n/**\n * The function to get the status for the pipeline run.\n *\n * @public\n */\nexport const pipelineRunStatus = (\n pipelineRun: PipelineRunKind | TaskRunKind | PipelineTaskWithStatus | null,\n) => {\n const conditions = pipelineRun?.status?.conditions || [];\n if (conditions.length === 0) return null;\n\n const succeedCondition = conditions.find((c: any) => c.type === 'Succeeded');\n const cancelledCondition = conditions.find(\n (c: any) => c.reason === 'Cancelled',\n );\n const failedCondition = conditions.find((c: any) => c.reason === 'Failed');\n\n if (\n [\n SucceedConditionReason.PipelineRunStopped,\n SucceedConditionReason.PipelineRunCancelled,\n ].includes(\n (pipelineRun as PipelineRunKind)?.spec?.status as SucceedConditionReason,\n ) &&\n !cancelledCondition &&\n !failedCondition\n ) {\n return ComputedStatus.Cancelling;\n }\n\n if (!succeedCondition?.status) {\n return null;\n }\n\n const status = getSucceededStatus(succeedCondition.status);\n\n if (succeedCondition.reason && succeedCondition.reason !== status) {\n switch (succeedCondition.reason) {\n case SucceedConditionReason.PipelineRunCancelled:\n case SucceedConditionReason.TaskRunCancelled:\n case SucceedConditionReason.Cancelled:\n case SucceedConditionReason.PipelineRunStopped:\n return ComputedStatus.Cancelled;\n case SucceedConditionReason.PipelineRunStopping:\n case SucceedConditionReason.TaskRunStopping:\n return ComputedStatus.Failed;\n case SucceedConditionReason.CreateContainerConfigError:\n case SucceedConditionReason.ExceededNodeResources:\n case SucceedConditionReason.ExceededResourceQuota:\n case SucceedConditionReason.PipelineRunPending:\n return ComputedStatus.Pending;\n case SucceedConditionReason.ConditionCheckFailed:\n return ComputedStatus.Skipped;\n default:\n return status;\n }\n }\n return status;\n};\n\n/**\n * The function to filter the pipeline run.\n *\n * @public\n */\nexport const pipelineRunFilterReducer = (\n pipelineRun: PipelineRunKind | TaskRunKind,\n): ComputedStatus => {\n const status = pipelineRunStatus(pipelineRun);\n return status || ComputedStatus.Other;\n};\n\n/**\n * The function to update the task status.\n *\n * @public\n */\nexport const updateTaskStatus = (\n pipelinerun: PipelineRunKind | null,\n taskRuns: TaskRunKind[],\n): TaskStatusTypes => {\n const skippedTaskLength = pipelinerun?.status?.skippedTasks?.length || 0;\n const PLRTaskRuns = getTaskRunsForPipelineRun(pipelinerun, taskRuns);\n const taskStatus: TaskStatusTypes = {\n PipelineNotStarted: 0,\n Pending: 0,\n Running: 0,\n Succeeded: 0,\n Failed: 0,\n Cancelled: 0,\n Skipped: skippedTaskLength,\n };\n\n if (!PLRTaskRuns || PLRTaskRuns.length === 0) {\n return taskStatus;\n }\n\n PLRTaskRuns.forEach((taskRun: TaskRunKind) => {\n const status = taskRun && pipelineRunFilterReducer(taskRun);\n if (status === 'Succeeded') {\n taskStatus[ComputedStatus.Succeeded]++;\n } else if (status === 'Running') {\n taskStatus[ComputedStatus.Running]++;\n } else if (status === 'Failed') {\n taskStatus[ComputedStatus.Failed]++;\n } else if (status === 'Cancelled') {\n taskStatus[ComputedStatus.Cancelled]++;\n } else {\n taskStatus[ComputedStatus.Pending]++;\n }\n });\n\n return {\n ...taskStatus,\n };\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.esm.js","sources":["../../../src/utils/pipeline/pipeline.ts"],"sourcesContent":["/*\n * Copyright 2025 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 { colors } from '../../constants';\nimport {\n ComputedStatus,\n PipelineRunKind,\n PipelineTaskWithStatus,\n StatusMessage,\n SucceedConditionReason,\n TaskRunKind,\n TaskStatusTypes,\n} from '../../types';\nimport { getTaskRunsForPipelineRun } from './task-run';\n\n/**\n * The function to get the status color for the run.\n *\n * @public\n */\nexport const getRunStatusColor = (status: string): StatusMessage => {\n switch (status) {\n case ComputedStatus.Succeeded:\n return { message: 'Succeeded', color: colors.success };\n case ComputedStatus.Failed:\n return { message: 'Failed', color: colors.failure };\n case ComputedStatus.FailedToStart:\n return {\n message: 'PipelineRun failed to start',\n color: colors.failure,\n };\n case ComputedStatus.Running:\n case ComputedStatus['In Progress']:\n return { message: 'Running', color: colors.running };\n\n case ComputedStatus.Skipped:\n return { message: 'Skipped', color: colors.skipped };\n case ComputedStatus.Cancelled:\n return { message: 'Cancelled', color: colors.cancelled };\n case ComputedStatus.Cancelling:\n return { message: 'Cancelling', color: colors.cancelled };\n case ComputedStatus.Idle:\n case ComputedStatus.Pending:\n return { message: 'Pending', color: colors.pending };\n default:\n return {\n message: 'PipelineRun not started yet',\n color: colors.pending,\n };\n }\n};\n\nconst getDate = (\n run: PipelineRunKind,\n field: 'completionTime' | 'startTime' | 'creationTimestamp',\n) => {\n if (field === 'creationTimestamp') {\n return run?.metadata?.creationTimestamp ?? '';\n }\n if (field === 'startTime' || field === 'completionTime') {\n return run?.status?.[field] ?? '';\n }\n return '';\n};\n\nconst getLatestRun = (\n runs: PipelineRunKind[],\n field: 'completionTime' | 'startTime' | 'creationTimestamp',\n) => {\n let latestRun = runs[0];\n for (let i = 1; i < runs.length; i++) {\n latestRun =\n new Date(getDate(runs?.[i], field)) > new Date(getDate(latestRun, field))\n ? runs[i]\n : latestRun;\n }\n return latestRun;\n};\n\n/**\n * The function to get the latest pipeline run.\n *\n * @public\n */\nexport const getLatestPipelineRun = (\n runs: PipelineRunKind[],\n field: string,\n): PipelineRunKind | null => {\n if (runs?.length > 0 && field) {\n let latestRun;\n if (\n field === 'completionTime' ||\n field === 'startTime' ||\n field === 'creationTimestamp'\n ) {\n latestRun = getLatestRun(runs, field);\n } else {\n latestRun = runs[runs.length - 1];\n }\n return latestRun;\n }\n return null;\n};\n\nconst getSucceededStatus = (status: string): ComputedStatus => {\n if (status === 'True') {\n return ComputedStatus.Succeeded;\n } else if (status === 'False') {\n return ComputedStatus.Failed;\n }\n return ComputedStatus.Running;\n};\n\n/**\n * The function to get the status for the pipeline run.\n *\n * @public\n */\nexport const pipelineRunStatus = (\n pipelineRun: PipelineRunKind | TaskRunKind | PipelineTaskWithStatus | null,\n) => {\n const conditions = pipelineRun?.status?.conditions || [];\n if (conditions.length === 0) return null;\n\n const succeedCondition = conditions.find((c: any) => c.type === 'Succeeded');\n const cancelledCondition = conditions.find(\n (c: any) => c.reason === 'Cancelled',\n );\n const failedCondition = conditions.find((c: any) => c.reason === 'Failed');\n\n if (\n [\n SucceedConditionReason.PipelineRunStopped,\n SucceedConditionReason.PipelineRunCancelled,\n ].includes(\n (pipelineRun as PipelineRunKind)?.spec?.status as SucceedConditionReason,\n ) &&\n !cancelledCondition &&\n !failedCondition\n ) {\n return ComputedStatus.Cancelling;\n }\n\n if (!succeedCondition?.status) {\n return null;\n }\n\n const status = getSucceededStatus(succeedCondition.status);\n\n if (succeedCondition.reason && succeedCondition.reason !== status) {\n switch (succeedCondition.reason) {\n case SucceedConditionReason.PipelineRunCancelled:\n case SucceedConditionReason.TaskRunCancelled:\n case SucceedConditionReason.Cancelled:\n case SucceedConditionReason.PipelineRunStopped:\n return ComputedStatus.Cancelled;\n case SucceedConditionReason.PipelineRunStopping:\n case SucceedConditionReason.TaskRunStopping:\n return ComputedStatus.Failed;\n case SucceedConditionReason.CreateContainerConfigError:\n case SucceedConditionReason.ExceededNodeResources:\n case SucceedConditionReason.ExceededResourceQuota:\n case SucceedConditionReason.PipelineRunPending:\n return ComputedStatus.Pending;\n case SucceedConditionReason.ConditionCheckFailed:\n return ComputedStatus.Skipped;\n default:\n return status;\n }\n }\n return status;\n};\n\n/**\n * The function to filter the pipeline run.\n *\n * @public\n */\nexport const pipelineRunFilterReducer = (\n pipelineRun: PipelineRunKind | TaskRunKind,\n): ComputedStatus => {\n const status = pipelineRunStatus(pipelineRun);\n return status || ComputedStatus.Other;\n};\n\n/**\n * The function to update the task status.\n *\n * @public\n */\nexport const updateTaskStatus = (\n pipelinerun: PipelineRunKind | null,\n taskRuns: TaskRunKind[],\n): TaskStatusTypes => {\n const skippedTaskLength = pipelinerun?.status?.skippedTasks?.length || 0;\n const PLRTaskRuns = getTaskRunsForPipelineRun(pipelinerun, taskRuns);\n const taskStatus: TaskStatusTypes = {\n PipelineNotStarted: 0,\n Pending: 0,\n Running: 0,\n Succeeded: 0,\n Failed: 0,\n Cancelled: 0,\n Skipped: skippedTaskLength,\n };\n\n if (!PLRTaskRuns || PLRTaskRuns.length === 0) {\n return taskStatus;\n }\n\n PLRTaskRuns.forEach((taskRun: TaskRunKind) => {\n const status = taskRun && pipelineRunFilterReducer(taskRun);\n if (status === 'Succeeded') {\n taskStatus[ComputedStatus.Succeeded]++;\n } else if (status === 'Running') {\n taskStatus[ComputedStatus.Running]++;\n } else if (status === 'Failed') {\n taskStatus[ComputedStatus.Failed]++;\n } else if (status === 'Cancelled') {\n taskStatus[ComputedStatus.Cancelled]++;\n } else {\n taskStatus[ComputedStatus.Pending]++;\n }\n });\n\n return {\n ...taskStatus,\n };\n};\n\n/**\n * The function to get the total number of tasks in the pipeline run.\n *\n * @public\n */\nexport const totalPipelineRunTasks = (\n pipelinerun: PipelineRunKind | null,\n): number => {\n if (!pipelinerun?.status?.pipelineSpec) {\n return 0;\n }\n const totalTasks = (pipelinerun.status.pipelineSpec?.tasks || []).length;\n const finallyTasks =\n (pipelinerun.status.pipelineSpec?.finally || []).length ?? 0;\n return totalTasks + finallyTasks;\n};\n\n/**\n * The function to get the task status.\n *\n * @public\n */\nexport const getTaskStatus = (\n pipelinerun: PipelineRunKind,\n taskRuns: TaskRunKind[],\n) => {\n const totalTasks = totalPipelineRunTasks(pipelinerun);\n const plrTaskLength = taskRuns.length;\n const skippedTaskLength = pipelinerun?.status?.skippedTasks?.length || 0;\n\n const taskStatus: TaskStatusTypes = updateTaskStatus(pipelinerun, taskRuns);\n\n if (taskRuns?.length > 0) {\n const pipelineRunHasFailure = taskStatus[ComputedStatus.Failed] > 0;\n const pipelineRunIsCancelled =\n pipelineRunFilterReducer(pipelinerun) === ComputedStatus.Cancelled;\n const unhandledTasks =\n totalTasks >= plrTaskLength\n ? totalTasks - plrTaskLength - skippedTaskLength\n : totalTasks;\n\n if (pipelineRunHasFailure || pipelineRunIsCancelled) {\n taskStatus[ComputedStatus.Cancelled] += unhandledTasks;\n } else {\n taskStatus[ComputedStatus.Pending] += unhandledTasks;\n }\n } else if (\n pipelinerun?.status?.conditions?.[0]?.status === 'False' ||\n pipelinerun?.spec.status === SucceedConditionReason.PipelineRunCancelled\n ) {\n taskStatus[ComputedStatus.Cancelled] = totalTasks;\n } else if (\n pipelinerun?.spec.status === SucceedConditionReason.PipelineRunPending\n ) {\n taskStatus[ComputedStatus.Pending] += totalTasks;\n } else {\n taskStatus[ComputedStatus.PipelineNotStarted]++;\n }\n return taskStatus;\n};\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage-community/plugin-tekton-react",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "license": "Apache-2.0",
5
5
  "description": "Web library for the tekton plugin",
6
6
  "main": "dist/index.esm.js",
@@ -36,7 +36,7 @@
36
36
  },
37
37
  "dependencies": {
38
38
  "@backstage/core-plugin-api": "^1.12.0",
39
- "@kubernetes/client-node": "1.0.0-rc7",
39
+ "@kubernetes/client-node": "1.4.0",
40
40
  "@material-ui/core": "^4.9.13"
41
41
  },
42
42
  "peerDependencies": {