fixed prepare-job for docker to allow for no job container

This commit is contained in:
Nikola Jokic
2022-06-10 11:56:10 +02:00
parent 7ae8942b3d
commit bf362ba0dd
3 changed files with 30 additions and 14 deletions

View File

@@ -94,7 +94,10 @@ export async function prepareJob(
) )
} }
const isAlpine = await isContainerAlpine(containerMetadata!.id) let isAlpine = false
if (containerMetadata?.id) {
isAlpine = await isContainerAlpine(containerMetadata.id)
}
if (containerMetadata?.id) { if (containerMetadata?.id) {
containerMetadata.ports = await containerPorts(containerMetadata.id) containerMetadata.ports = await containerPorts(containerMetadata.id)
@@ -105,7 +108,10 @@ export async function prepareJob(
} }
} }
const healthChecks: Promise<void>[] = [healthCheck(containerMetadata!)] const healthChecks: Promise<void>[] = []
if (containerMetadata) {
healthChecks.push(healthCheck(containerMetadata))
}
for (const service of servicesMetadata) { for (const service of servicesMetadata) {
healthChecks.push(healthCheck(service)) healthChecks.push(healthCheck(service))
} }

View File

@@ -118,4 +118,14 @@ describe('prepare job', () => {
expect(redisServicePorts['80']).toBe('8080') expect(redisServicePorts['80']).toBe('8080')
expect(redisServicePorts['8080']).toBe('8088') expect(redisServicePorts['8080']).toBe('8088')
}) })
it('should run prepare job without job container without exception', async () => {
prepareJobDefinition.args.container = null
const prepareJobOutput = testSetup.createOutputFile(
'prepare-job-output.json'
)
await expect(
prepareJob(prepareJobDefinition.args, prepareJobOutput)
).resolves.not.toThrow()
})
}) })

View File

@@ -72,6 +72,10 @@ export async function prepareJob(
new Set([PodPhase.PENDING]) new Set([PodPhase.PENDING])
) )
core.debug('Job pod is ready for traffic') core.debug('Job pod is ready for traffic')
} catch (err) {
await prunePods()
throw new Error(`Pod failed to come online with error: ${err}`)
}
let isAlpine = false let isAlpine = false
try { try {
@@ -84,10 +88,6 @@ export async function prepareJob(
} }
core.debug(`Setting isAlpine to ${isAlpine}`) core.debug(`Setting isAlpine to ${isAlpine}`)
generateResponseFile(responseFile, createdPod, isAlpine) generateResponseFile(responseFile, createdPod, isAlpine)
} catch (err) {
await prunePods()
throw new Error(`Pod failed to come online with error: ${err}`)
}
} }
function generateResponseFile( function generateResponseFile(