Skip to content

Commit 0cce497

Browse files
authored
Try to get response body message and log entire error response in debug mode (#123)
1 parent 46c92fe commit 0cce497

File tree

3 files changed

+32
-6
lines changed

3 files changed

+32
-6
lines changed

packages/k8s/src/hooks/prepare-job.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,9 @@ export async function prepareJob(
7979
)
8080
} catch (err) {
8181
await prunePods()
82-
throw new Error(`failed to create job pod: ${err}`)
82+
core.debug(`createPod failed: ${JSON.stringify(err)}`)
83+
const message = (err as any)?.response?.body?.message || err
84+
throw new Error(`failed to create job pod: ${message}`)
8385
}
8486

8587
if (!createdPod?.metadata?.name) {
@@ -98,7 +100,7 @@ export async function prepareJob(
98100
)
99101
} catch (err) {
100102
await prunePods()
101-
throw new Error(`Pod failed to come online with error: ${err}`)
103+
throw new Error(`pod failed to come online with error: ${err}`)
102104
}
103105

104106
core.debug('Job pod is ready for traffic')
@@ -110,7 +112,11 @@ export async function prepareJob(
110112
JOB_CONTAINER_NAME
111113
)
112114
} catch (err) {
113-
throw new Error(`Failed to determine if the pod is alpine: ${err}`)
115+
core.debug(
116+
`Failed to determine if the pod is alpine: ${JSON.stringify(err)}`
117+
)
118+
const message = (err as any)?.response?.body?.message || err
119+
throw new Error(`failed to determine if the pod is alpine: ${message}`)
114120
}
115121
core.debug(`Setting isAlpine to ${isAlpine}`)
116122
generateResponseFile(responseFile, createdPod, isAlpine)

packages/k8s/src/hooks/run-container-step.ts

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,15 @@ export async function runContainerStep(
3636
core.debug(`Created secret ${secretName} for container job envs`)
3737
const container = createContainerSpec(stepContainer, secretName, extension)
3838

39-
const job = await createJob(container, extension)
39+
let job: k8s.V1Job
40+
try {
41+
job = await createJob(container, extension)
42+
} catch (err) {
43+
core.debug(`createJob failed: ${JSON.stringify(err)}`)
44+
const message = (err as any)?.response?.body?.message || err
45+
throw new Error(`failed to run script step: ${message}`)
46+
}
47+
4048
if (!job.metadata?.name) {
4149
throw new Error(
4250
`Expected job ${JSON.stringify(
@@ -46,7 +54,15 @@ export async function runContainerStep(
4654
}
4755
core.debug(`Job created, waiting for pod to start: ${job.metadata?.name}`)
4856

49-
const podName = await getContainerJobPodName(job.metadata.name)
57+
let podName: string
58+
try {
59+
podName = await getContainerJobPodName(job.metadata.name)
60+
} catch (err) {
61+
core.debug(`getContainerJobPodName failed: ${JSON.stringify(err)}`)
62+
const message = (err as any)?.response?.body?.message || err
63+
throw new Error(`failed to get container job pod name: ${message}`)
64+
}
65+
5066
await waitForPodPhases(
5167
podName,
5268
new Set([PodPhase.COMPLETED, PodPhase.RUNNING, PodPhase.SUCCEEDED]),
@@ -58,6 +74,7 @@ export async function runContainerStep(
5874

5975
core.debug('Waiting for container job to complete')
6076
await waitForJobToComplete(job.metadata.name)
77+
6178
// pod has failed so pull the status code from the container
6279
const status = await getPodStatus(podName)
6380
if (status?.phase === 'Succeeded') {

packages/k8s/src/hooks/run-script-step.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/* eslint-disable @typescript-eslint/no-unused-vars */
22
import * as fs from 'fs'
3+
import * as core from '@actions/core'
34
import { RunScriptStepArgs } from 'hooklib'
45
import { execPodStep } from '../k8s'
56
import { writeEntryPointScript } from '../k8s/utils'
@@ -28,7 +29,9 @@ export async function runScriptStep(
2829
JOB_CONTAINER_NAME
2930
)
3031
} catch (err) {
31-
throw new Error(`failed to run script step: ${err}`)
32+
core.debug(`execPodStep failed: ${JSON.stringify(err)}`)
33+
const message = (err as any)?.response?.body?.message || err
34+
throw new Error(`failed to run script step: ${message}`)
3235
} finally {
3336
fs.rmSync(runnerPath)
3437
}

0 commit comments

Comments
 (0)