pr feedback - cleanup images before job creation and use IfNotPresent

pull/767/head
Frostebite 2025-12-29 18:50:36 +00:00
parent 4b182a065a
commit e025c13d92
4 changed files with 40 additions and 1 deletions

15
dist/index.js vendored
View File

@ -3751,6 +3751,20 @@ class Kubernetes {
this.jobName = `unity-builder-job-${this.buildGuid}`;
this.containerName = `main`;
await kubernetes_secret_1.default.createSecret(secrets, this.secretName, this.namespace, this.kubeClient);
// For tests, clean up old images before creating job to free space for image pull
if (process.env['cloudRunnerTests'] === 'true') {
try {
cloud_runner_logger_1.default.log('Cleaning up old images in k3d node before pulling new image...');
const { CloudRunnerSystem } = await Promise.resolve().then(() => __importStar(__nccwpck_require__(4197)));
// Clean up unused images in k3d node using containerd
await CloudRunnerSystem.Run('docker exec k3d-unity-builder-agent-0 sh -c "crictl rmi --prune 2>/dev/null || true" || true', true, true);
await CloudRunnerSystem.Run('docker exec k3d-unity-builder-agent-0 sh -c "crictl images -q | head -n -1 | xargs -r crictl rmi 2>/dev/null || true" || true', true, true);
}
catch (cleanupError) {
cloud_runner_logger_1.default.logWarning(`Failed to cleanup images before job creation: ${cleanupError}`);
// Continue anyway - image might already be cached
}
}
let output = '';
try {
cloud_runner_logger_1.default.log('Job does not exist');
@ -3946,6 +3960,7 @@ class KubernetesJobSpecFactory {
ttlSecondsAfterFinished: 9999,
name: containerName,
image,
imagePullPolicy: process.env['cloudRunnerTests'] === 'true' ? 'IfNotPresent' : 'Always',
command: ['/bin/sh'],
args: [
'-c',

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -155,6 +155,29 @@ class Kubernetes implements ProviderInterface {
this.jobName = `unity-builder-job-${this.buildGuid}`;
this.containerName = `main`;
await KubernetesSecret.createSecret(secrets, this.secretName, this.namespace, this.kubeClient);
// For tests, clean up old images before creating job to free space for image pull
if (process.env['cloudRunnerTests'] === 'true') {
try {
CloudRunnerLogger.log('Cleaning up old images in k3d node before pulling new image...');
const { CloudRunnerSystem } = await import('../../services/core/cloud-runner-system');
// Clean up unused images in k3d node using containerd
await CloudRunnerSystem.Run(
'docker exec k3d-unity-builder-agent-0 sh -c "crictl rmi --prune 2>/dev/null || true" || true',
true,
true,
);
await CloudRunnerSystem.Run(
'docker exec k3d-unity-builder-agent-0 sh -c "crictl images -q | head -n -1 | xargs -r crictl rmi 2>/dev/null || true" || true',
true,
true,
);
} catch (cleanupError) {
CloudRunnerLogger.logWarning(`Failed to cleanup images before job creation: ${cleanupError}`);
// Continue anyway - image might already be cached
}
}
let output = '';
try {
CloudRunnerLogger.log('Job does not exist');

View File

@ -81,6 +81,7 @@ class KubernetesJobSpecFactory {
ttlSecondsAfterFinished: 9999,
name: containerName,
image,
imagePullPolicy: process.env['cloudRunnerTests'] === 'true' ? 'IfNotPresent' : 'Always',
command: ['/bin/sh'],
args: [
'-c',