mirror of
https://github.com/actions/runner-container-hooks.git
synced 2025-12-18 19:06:44 +00:00
fix
This commit is contained in:
@@ -26,7 +26,20 @@ export async function runScriptStep(
|
|||||||
const runnerTemp = `${workdir}/_temp`
|
const runnerTemp = `${workdir}/_temp`
|
||||||
const containerTemp = '/__w/_temp'
|
const containerTemp = '/__w/_temp'
|
||||||
const containerTempSrc = '/__w/_temp_pre'
|
const containerTempSrc = '/__w/_temp_pre'
|
||||||
// Stage runner temp inside container, then merge into /__w/_temp
|
// Ensure base and staging dirs exist before copying
|
||||||
|
try {
|
||||||
|
await execPodStep(
|
||||||
|
[
|
||||||
|
'sh',
|
||||||
|
'-c',
|
||||||
|
'mkdir -p /__w && mkdir -p /__w/_temp && mkdir -p /__w/_temp_pre'
|
||||||
|
],
|
||||||
|
state.jobPod,
|
||||||
|
JOB_CONTAINER_NAME
|
||||||
|
)
|
||||||
|
} catch (err) {
|
||||||
|
core.debug(`Failed to create temp dirs in container: ${JSON.stringify(err)}`)
|
||||||
|
}
|
||||||
await execCpToPod(state.jobPod, runnerTemp, containerTempSrc)
|
await execCpToPod(state.jobPod, runnerTemp, containerTempSrc)
|
||||||
|
|
||||||
// Copy GitHub directories from temp to /github
|
// Copy GitHub directories from temp to /github
|
||||||
@@ -46,7 +59,7 @@ export async function runScriptStep(
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
await execPodStep(
|
await execPodStep(
|
||||||
['sh', '-c', shlex.quote(mergeCommands.join(' && '))],
|
['sh', '-c', mergeCommands.join(' && ')],
|
||||||
state.jobPod,
|
state.jobPod,
|
||||||
JOB_CONTAINER_NAME
|
JOB_CONTAINER_NAME
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -342,7 +342,6 @@ export async function execCalculateOutputHashSorted(
|
|||||||
|
|
||||||
const hash = createHash('sha256')
|
const hash = createHash('sha256')
|
||||||
hash.update(sortedOutput)
|
hash.update(sortedOutput)
|
||||||
console.log(`sortedOutput: ${sortedOutput}`)
|
|
||||||
return hash.digest('hex')
|
return hash.digest('hex')
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -371,7 +370,6 @@ export async function localCalculateOutputHashSorted(
|
|||||||
|
|
||||||
const hash = createHash('sha256')
|
const hash = createHash('sha256')
|
||||||
hash.update(sortedOutput)
|
hash.update(sortedOutput)
|
||||||
console.log(`sortedOutput: ${sortedOutput}`)
|
|
||||||
resolve(hash.digest('hex'))
|
resolve(hash.digest('hex'))
|
||||||
} else {
|
} else {
|
||||||
reject(new Error(`child process exited with code ${code}`))
|
reject(new Error(`child process exited with code ${code}`))
|
||||||
@@ -833,7 +831,7 @@ export async function isPodContainerAlpine(
|
|||||||
[
|
[
|
||||||
'sh',
|
'sh',
|
||||||
'-c',
|
'-c',
|
||||||
`'[ $(cat /etc/*release* | grep -i -e "^ID=*alpine*" -c) != 0 ] || exit 1'`
|
`[ $(cat /etc/*release* | grep -i -e "^ID=*alpine*" -c) != 0 ] || exit 1`
|
||||||
],
|
],
|
||||||
podName,
|
podName,
|
||||||
containerName
|
containerName
|
||||||
|
|||||||
@@ -288,6 +288,11 @@ function mergeLists<T>(base?: T[], from?: T[]): T[] {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function fixArgs(args: string[]): string[] {
|
export function fixArgs(args: string[]): string[] {
|
||||||
|
// Preserve shell command strings passed via `sh -c` without re-tokenizing.
|
||||||
|
// Retokenizing would split the script into multiple args, breaking `sh -c`.
|
||||||
|
if (args.length >= 2 && args[0] === 'sh' && args[1] === '-c') {
|
||||||
|
return args
|
||||||
|
}
|
||||||
return shlex.split(args.join(' '))
|
return shlex.split(args.join(' '))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user