Skip to content

Commit 604593e

Browse files
committed
feat: add handling for deployment failure messages and enhance GraphQL queries for job and application statuses
1 parent 7ecfd61 commit 604593e

File tree

6 files changed

+45
-6
lines changed

6 files changed

+45
-6
lines changed

src/routes/+page.svelte

+2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323

2424
<svelte:head><title>Console</title></svelte:head>
2525

26+
<!-- ?naisdevice=connected -->
27+
2628
{#if userTeams === 0}
2729
<div class="page">
2830
<Onboarding {tenantName} />

src/routes/Login.svelte

+2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
</style>
1919
</svelte:head>
2020

21+
<!-- ?naisdevice=connected -->
22+
2123
<div class="wrapper">
2224
<div class="login">
2325
<h1>

src/routes/Onboarding.svelte

+2
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@
103103
);
104104
</script>
105105

106+
<!--- ?naisdevice=connected -->
107+
106108
<div class="onboarding">
107109
<Heading level="1" size="xlarge" spacing>Welcome to Nais Console! 🎉</Heading>
108110
{#if $teamsQuery.fetching}

src/routes/team/[team]/[env]/app/[app]/+page.svelte

+5-5
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
};
5959
6060
let deployFailed = $derived(
61-
$App.data?.team.environment.application.deployments.nodes[0].statuses.nodes[0].state ===
61+
$App.data?.team.environment.application.deployments.nodes.at(0)?.statuses.nodes.at(0)?.state ===
6262
'FAILURE'
6363
);
6464
</script>
@@ -83,11 +83,11 @@
8383
<Heading level="2" size="small" spacing>Last deployment failed</Heading>
8484
<BodyShort spacing>
8585
<strong>Error message:</strong>
86-
{$App.data?.team.environment.application.deployments.nodes[0].statuses.nodes[0]
87-
.message}
86+
{$App.data?.team.environment.application.deployments.nodes.at(0)?.statuses.nodes.at(0)
87+
?.message}
8888
</BodyShort>
89-
{#if $App.data?.team.environment.application.deployments.nodes[0].triggerUrl}
90-
<a href={$App.data?.team.environment.application.deployments.nodes[0].triggerUrl}
89+
{#if $App.data?.team.environment.application.deployments.nodes.at(0)?.triggerUrl}
90+
<a href={$App.data?.team.environment.application.deployments.nodes.at(0)?.triggerUrl}
9191
>Github action <ExternalLinkIcon /></a
9292
>
9393
{/if}

src/routes/team/[team]/[env]/job/[job]/+page.gql

+12
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,18 @@ query Job($job: String!, $team: Slug!, $env: String!) @cache(policy: NetworkOnly
99
expression
1010
timeZone
1111
}
12+
deployments(first: 1) {
13+
nodes {
14+
triggerUrl
15+
statuses {
16+
nodes {
17+
state
18+
message
19+
createdAt
20+
}
21+
}
22+
}
23+
}
1224
...JobRuns
1325
...JobStatus
1426
...Persistence

src/routes/team/[team]/[env]/job/[job]/+page.svelte

+22-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
import WorkloadDeploy from '$lib/components/WorkloadDeploy.svelte';
1010
import GraphErrors from '$lib/GraphErrors.svelte';
1111
import Time from '$lib/Time.svelte';
12-
import { Alert, Button, Heading } from '@nais/ds-svelte-community';
12+
import { Alert, BodyShort, Button, Heading } from '@nais/ds-svelte-community';
13+
import { ExternalLinkIcon } from '@nais/ds-svelte-community/icons';
1314
import type { PageData } from './$houdini';
1415
import Runs from './Runs.svelte';
1516
import Schedule from './Schedule.svelte';
@@ -63,6 +64,11 @@
6364
jobId: $Job.data!.team.environment.job.id
6465
});
6566
};
67+
68+
let deployFailed = $derived(
69+
$Job.data?.team.environment.job.deployments.nodes.at(0)?.statuses.nodes.at(0)?.state ===
70+
'FAILURE'
71+
);
6672
</script>
6773

6874
<GraphErrors errors={$Job.errors} />
@@ -80,6 +86,21 @@
8086
</Alert>
8187
{/if}
8288

89+
{#if deployFailed}
90+
<Alert variant="error" fullWidth={false}>
91+
<Heading level="2" size="small" spacing>Last deployment failed</Heading>
92+
<BodyShort spacing>
93+
<strong>Error message:</strong>
94+
{$Job.data?.team.environment.job.deployments.nodes.at(0)?.statuses.nodes.at(0)?.message}
95+
</BodyShort>
96+
{#if $Job.data?.team.environment.job.deployments.nodes[0].triggerUrl}
97+
<a href={$Job.data?.team.environment.job.deployments.nodes.at(0)?.triggerUrl}
98+
>Github action <ExternalLinkIcon /></a
99+
>
100+
{/if}
101+
</Alert>
102+
{/if}
103+
83104
<div style="display:flex; flex-direction: column; gap:0.5rem;">
84105
<div class="runs-header">
85106
<Heading level="2" size="medium">Runs</Heading>

0 commit comments

Comments
 (0)