({
+ id: name,
+ name,
+ value:
+ resourceRef && resourceRef.name ? (
+
+ {resourceRef.name}
+
+ ) : (
+
+ )
+ }))}
+ headers={[
+ {
+ key: 'name',
+ header: intl.formatMessage({
+ id: 'dashboard.tableHeader.name',
+ defaultMessage: 'Name'
+ })
+ },
+ {
+ key: 'value',
+ header: intl.formatMessage({
+ id: 'dashboard.tableHeader.value',
+ defaultMessage: 'Value'
+ })
+ }
+ ]}
+ />
+ );
+}
const TaskRunDetails = ({
intl,
@@ -206,6 +213,7 @@ const TaskRunDetails = ({
diff --git a/packages/components/src/components/TaskRunDetails/TaskRunDetails.stories.js b/packages/components/src/components/TaskRunDetails/TaskRunDetails.stories.js
index e961583e6..82abdec8d 100644
--- a/packages/components/src/components/TaskRunDetails/TaskRunDetails.stories.js
+++ b/packages/components/src/components/TaskRunDetails/TaskRunDetails.stories.js
@@ -62,6 +62,40 @@ export const Base = () => (
/>
);
+export const WithWarning = () => (
+
+);
+
export const Pod = () => (
{
const { reason, status } = getStatus(taskRun);
- return ;
+ return (
+
+ );
},
getTaskRunStatusTooltip = (taskRun, intl) => {
const { message } = getStatus(taskRun);
diff --git a/packages/utils/src/utils/index.js b/packages/utils/src/utils/index.js
index e0d9d8369..3377bf503 100644
--- a/packages/utils/src/utils/index.js
+++ b/packages/utils/src/utils/index.js
@@ -529,3 +529,16 @@ export function getTaskRunsWithPlaceholders({
return taskRunsToDisplay;
}
+
+export function taskRunHasWarning(taskRun) {
+ const { reason, status } = getStatus(taskRun);
+ if (status !== 'True' || reason !== 'Succeeded') {
+ return false;
+ }
+
+ const onErrorContinueStep = taskRun.status?.steps?.find(
+ step =>
+ step.terminated?.reason === 'Completed' && step.terminated?.exitCode !== 0
+ );
+ return !!onErrorContinueStep;
+}
diff --git a/packages/utils/src/utils/index.test.js b/packages/utils/src/utils/index.test.js
index b5288e435..73685a88e 100644
--- a/packages/utils/src/utils/index.test.js
+++ b/packages/utils/src/utils/index.test.js
@@ -34,6 +34,7 @@ import {
getTaskRunsWithPlaceholders,
getTaskSpecFromTaskRef,
isRunning,
+ taskRunHasWarning,
updateUnexecutedSteps
} from '.';
@@ -850,3 +851,46 @@ describe('getTaskRunsWithPlaceholders', () => {
expect(runs).toEqual([taskRun, finallyTaskRun]);
});
});
+
+describe('taskRunHasWarning', () => {
+ it('should return false for a TaskRun that has not completed', () => {
+ expect(
+ taskRunHasWarning({
+ status: {
+ conditions: [
+ { type: 'Succeeded', reason: 'Running', status: 'Unknown' }
+ ]
+ }
+ })
+ ).toBe(false);
+ });
+
+ it('should return false for a TaskRun with steps that all completed with exit code 0', () => {
+ expect(
+ taskRunHasWarning({
+ status: {
+ conditions: [
+ { type: 'Succeeded', reason: 'Succeeded', status: 'True' }
+ ],
+ steps: [{ terminated: { exitCode: 0, reason: 'Completed' } }]
+ }
+ })
+ ).toBe(false);
+ });
+
+ it('should return true for a successful TaskRun with at least one step that completed with non-zero exit code', () => {
+ expect(
+ taskRunHasWarning({
+ status: {
+ conditions: [
+ { type: 'Succeeded', reason: 'Succeeded', status: 'True' }
+ ],
+ steps: [
+ { terminated: { exitCode: 1, reason: 'Completed' } },
+ { terminated: { exitCode: 0, reason: 'Completed' } }
+ ]
+ }
+ })
+ ).toBe(true);
+ });
+});
diff --git a/src/nls/messages_de.json b/src/nls/messages_de.json
index 45d8831dc..465607efb 100644
--- a/src/nls/messages_de.json
+++ b/src/nls/messages_de.json
@@ -239,6 +239,7 @@
"dashboard.taskRun.status.pending": "Anstehend",
"dashboard.taskRun.status.running": "Wird ausgeführt",
"dashboard.taskRun.status.succeeded": "Abgeschlossen",
+ "dashboard.taskRun.status.succeeded.warning": "",
"dashboard.taskRun.status.waiting": "Wartestatus",
"dashboard.taskRun.unavailable": "",
"dashboard.taskRunParams.name": "",
diff --git a/src/nls/messages_en.json b/src/nls/messages_en.json
index 1490f4b8f..cba865c52 100644
--- a/src/nls/messages_en.json
+++ b/src/nls/messages_en.json
@@ -239,6 +239,7 @@
"dashboard.taskRun.status.pending": "Pending",
"dashboard.taskRun.status.running": "Running",
"dashboard.taskRun.status.succeeded": "Completed",
+ "dashboard.taskRun.status.succeeded.warning": "Completed with exit code {exitCode}",
"dashboard.taskRun.status.waiting": "Waiting",
"dashboard.taskRun.unavailable": "TaskRun not available",
"dashboard.taskRunParams.name": "Name",
diff --git a/src/nls/messages_es.json b/src/nls/messages_es.json
index 1afe1ce31..45b69e575 100644
--- a/src/nls/messages_es.json
+++ b/src/nls/messages_es.json
@@ -239,6 +239,7 @@
"dashboard.taskRun.status.pending": "Pendiente",
"dashboard.taskRun.status.running": "En ejecución",
"dashboard.taskRun.status.succeeded": "Completado",
+ "dashboard.taskRun.status.succeeded.warning": "",
"dashboard.taskRun.status.waiting": "En espera",
"dashboard.taskRun.unavailable": "",
"dashboard.taskRunParams.name": "",
diff --git a/src/nls/messages_fr.json b/src/nls/messages_fr.json
index 570ab8d52..2b3b1b08f 100644
--- a/src/nls/messages_fr.json
+++ b/src/nls/messages_fr.json
@@ -239,6 +239,7 @@
"dashboard.taskRun.status.pending": "En attente",
"dashboard.taskRun.status.running": "En cours d'exécution",
"dashboard.taskRun.status.succeeded": "Terminé",
+ "dashboard.taskRun.status.succeeded.warning": "",
"dashboard.taskRun.status.waiting": "En attente",
"dashboard.taskRun.unavailable": "",
"dashboard.taskRunParams.name": "",
diff --git a/src/nls/messages_it.json b/src/nls/messages_it.json
index a72127934..ff6b0d89e 100644
--- a/src/nls/messages_it.json
+++ b/src/nls/messages_it.json
@@ -239,6 +239,7 @@
"dashboard.taskRun.status.pending": "In attesa",
"dashboard.taskRun.status.running": "In esecuzione",
"dashboard.taskRun.status.succeeded": "Completato",
+ "dashboard.taskRun.status.succeeded.warning": "",
"dashboard.taskRun.status.waiting": "In attesa",
"dashboard.taskRun.unavailable": "",
"dashboard.taskRunParams.name": "",
diff --git a/src/nls/messages_ja.json b/src/nls/messages_ja.json
index c73e9b82a..0ba3369be 100644
--- a/src/nls/messages_ja.json
+++ b/src/nls/messages_ja.json
@@ -239,6 +239,7 @@
"dashboard.taskRun.status.pending": "保留中",
"dashboard.taskRun.status.running": "実行中",
"dashboard.taskRun.status.succeeded": "完了",
+ "dashboard.taskRun.status.succeeded.warning": "",
"dashboard.taskRun.status.waiting": "待機中",
"dashboard.taskRun.unavailable": "TaskRunは使用できません",
"dashboard.taskRunParams.name": "名前",
diff --git a/src/nls/messages_ko.json b/src/nls/messages_ko.json
index 59d4fcae0..71f2bc21b 100644
--- a/src/nls/messages_ko.json
+++ b/src/nls/messages_ko.json
@@ -239,6 +239,7 @@
"dashboard.taskRun.status.pending": "보류 중",
"dashboard.taskRun.status.running": "실행 중",
"dashboard.taskRun.status.succeeded": "완료됨",
+ "dashboard.taskRun.status.succeeded.warning": "",
"dashboard.taskRun.status.waiting": "대기 중",
"dashboard.taskRun.unavailable": "",
"dashboard.taskRunParams.name": "",
diff --git a/src/nls/messages_pt.json b/src/nls/messages_pt.json
index 2f073a392..ccecc3b00 100644
--- a/src/nls/messages_pt.json
+++ b/src/nls/messages_pt.json
@@ -239,6 +239,7 @@
"dashboard.taskRun.status.pending": "Pendente",
"dashboard.taskRun.status.running": "Executando",
"dashboard.taskRun.status.succeeded": "Concluído",
+ "dashboard.taskRun.status.succeeded.warning": "",
"dashboard.taskRun.status.waiting": "Aguardando",
"dashboard.taskRun.unavailable": "",
"dashboard.taskRunParams.name": "",
diff --git a/src/nls/messages_zh-Hans.json b/src/nls/messages_zh-Hans.json
index 87f777f3d..c577abaf9 100644
--- a/src/nls/messages_zh-Hans.json
+++ b/src/nls/messages_zh-Hans.json
@@ -239,6 +239,7 @@
"dashboard.taskRun.status.pending": "暂挂中",
"dashboard.taskRun.status.running": "运行中",
"dashboard.taskRun.status.succeeded": "已完成",
+ "dashboard.taskRun.status.succeeded.warning": "",
"dashboard.taskRun.status.waiting": "等待中",
"dashboard.taskRun.unavailable": "TaskRun 不可用",
"dashboard.taskRunParams.name": "名称",
diff --git a/src/nls/messages_zh-Hant.json b/src/nls/messages_zh-Hant.json
index 0cc69a26c..2e60f18a8 100644
--- a/src/nls/messages_zh-Hant.json
+++ b/src/nls/messages_zh-Hant.json
@@ -239,6 +239,7 @@
"dashboard.taskRun.status.pending": "擱置中",
"dashboard.taskRun.status.running": "執行中",
"dashboard.taskRun.status.succeeded": "已完成",
+ "dashboard.taskRun.status.succeeded.warning": "",
"dashboard.taskRun.status.waiting": "等待中",
"dashboard.taskRun.unavailable": "",
"dashboard.taskRunParams.name": "",