fixes
parent
9a87a67415
commit
66b320318f
|
|
@ -734,8 +734,8 @@ class AWSBuildRunner {
|
||||||
try {
|
try {
|
||||||
yield ECS.waitFor('tasksRunning', { tasks: [taskArn], cluster }).promise();
|
yield ECS.waitFor('tasksRunning', { tasks: [taskArn], cluster }).promise();
|
||||||
}
|
}
|
||||||
catch (errorUntyped) {
|
catch (error_) {
|
||||||
const error = errorUntyped;
|
const error = error_;
|
||||||
yield new Promise((resolve) => setTimeout(resolve, 3000));
|
yield new Promise((resolve) => setTimeout(resolve, 3000));
|
||||||
const describeTasks = yield ECS.describeTasks({
|
const describeTasks = yield ECS.describeTasks({
|
||||||
tasks: [taskArn],
|
tasks: [taskArn],
|
||||||
|
|
@ -1609,7 +1609,7 @@ class KubernetesJobSpecFactory {
|
||||||
image: 'alpine',
|
image: 'alpine',
|
||||||
command: ['/bin/sh'],
|
command: ['/bin/sh'],
|
||||||
args: ['-c', 'echo "test"'],
|
args: ['-c', 'echo "test"'],
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
restartPolicy: 'Never',
|
restartPolicy: 'Never',
|
||||||
},
|
},
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -29,7 +29,7 @@ async function run() {
|
||||||
// Set output
|
// Set output
|
||||||
await Output.setBuildVersion(buildParameters.buildVersion);
|
await Output.setBuildVersion(buildParameters.buildVersion);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
core.setFailed(error.message);
|
core.setFailed((error as Error).message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -53,13 +53,15 @@ class AWSBuildRunner {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await ECS.waitFor('tasksRunning', { tasks: [taskArn], cluster }).promise();
|
await ECS.waitFor('tasksRunning', { tasks: [taskArn], cluster }).promise();
|
||||||
} catch (error) {
|
} catch (error_) {
|
||||||
|
const error = error_ as Error;
|
||||||
await new Promise((resolve) => setTimeout(resolve, 3000));
|
await new Promise((resolve) => setTimeout(resolve, 3000));
|
||||||
const describeTasks = await ECS.describeTasks({
|
const describeTasks = await ECS.describeTasks({
|
||||||
tasks: [taskArn],
|
tasks: [taskArn],
|
||||||
cluster,
|
cluster,
|
||||||
}).promise();
|
}).promise();
|
||||||
core.info(`Cloud runner job has ended ${describeTasks.tasks?.[0].containers?.[0].lastStatus}`);
|
core.info(`Cloud runner job has ended ${describeTasks.tasks?.[0].containers?.[0].lastStatus}`);
|
||||||
|
|
||||||
core.setFailed(error);
|
core.setFailed(error);
|
||||||
core.error(error);
|
core.error(error);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@ import KubernetesSecret from './kubernetes-secret';
|
||||||
import KubernetesUtilities from './kubernetes-utils';
|
import KubernetesUtilities from './kubernetes-utils';
|
||||||
import waitUntil from 'async-wait-until';
|
import waitUntil from 'async-wait-until';
|
||||||
import KubernetesJobSpecFactory from './kubernetes-job-spec-factory';
|
import KubernetesJobSpecFactory from './kubernetes-job-spec-factory';
|
||||||
import KubernetesCleanupCronJob from './kubernetes-cleanup-cronjob';
|
|
||||||
import KubernetesServiceAccount from './kubernetes-service-account';
|
import KubernetesServiceAccount from './kubernetes-service-account';
|
||||||
|
|
||||||
class Kubernetes implements CloudRunnerProviderInterface {
|
class Kubernetes implements CloudRunnerProviderInterface {
|
||||||
|
|
@ -60,12 +59,6 @@ class Kubernetes implements CloudRunnerProviderInterface {
|
||||||
);
|
);
|
||||||
|
|
||||||
await KubernetesServiceAccount.createServiceAccount(this.serviceAccountName, this.namespace, this.kubeClient);
|
await KubernetesServiceAccount.createServiceAccount(this.serviceAccountName, this.namespace, this.kubeClient);
|
||||||
await KubernetesCleanupCronJob.createCleanupCronJob(
|
|
||||||
this.kubeClientBatchBeta,
|
|
||||||
this.cleanupCronJobName,
|
|
||||||
this.serviceAccountName,
|
|
||||||
this.namespace,
|
|
||||||
);
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
|
|
@ -168,7 +161,6 @@ class Kubernetes implements CloudRunnerProviderInterface {
|
||||||
defaultSecretsArray: { ParameterKey: string; EnvironmentVariable: string; ParameterValue: string }[],
|
defaultSecretsArray: { ParameterKey: string; EnvironmentVariable: string; ParameterValue: string }[],
|
||||||
) {
|
) {
|
||||||
await this.kubeClient.deleteNamespacedPersistentVolumeClaim(this.pvcName, this.namespace);
|
await this.kubeClient.deleteNamespacedPersistentVolumeClaim(this.pvcName, this.namespace);
|
||||||
await KubernetesCleanupCronJob.cleanup(this.kubeClientBatchBeta, this.cleanupCronJobName, this.namespace);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
export default Kubernetes;
|
export default Kubernetes;
|
||||||
|
|
|
||||||
|
|
@ -1,59 +0,0 @@
|
||||||
import { BatchV1beta1Api, V1beta1CronJob } from '@kubernetes/client-node';
|
|
||||||
import * as core from '@actions/core';
|
|
||||||
class KubernetesCleanupCronJob {
|
|
||||||
static async cleanup(api: BatchV1beta1Api, name: string, namespace: string) {
|
|
||||||
await api.deleteNamespacedCronJob('name', namespace);
|
|
||||||
}
|
|
||||||
static async createCleanupCronJob(
|
|
||||||
kubeClientBatch: BatchV1beta1Api,
|
|
||||||
name: string,
|
|
||||||
serviceAccountName: string,
|
|
||||||
namespace: string,
|
|
||||||
) {
|
|
||||||
try {
|
|
||||||
const batchJob = new V1beta1CronJob();
|
|
||||||
batchJob.kind = 'CronJob';
|
|
||||||
batchJob.metadata = {
|
|
||||||
name,
|
|
||||||
labels: {
|
|
||||||
app: 'unity-builder',
|
|
||||||
},
|
|
||||||
};
|
|
||||||
const spec = {
|
|
||||||
restartPolicy: 'Never',
|
|
||||||
serviceAccountName,
|
|
||||||
containers: [
|
|
||||||
{
|
|
||||||
name: 'main',
|
|
||||||
image: 'bitnami/kubectl',
|
|
||||||
imagePullPolicy: '',
|
|
||||||
command: ['/bin/sh'],
|
|
||||||
args: [
|
|
||||||
'-c',
|
|
||||||
`
|
|
||||||
echo "delete the kubernetes resources"
|
|
||||||
kubectl get pods
|
|
||||||
`,
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
const hours = new Date().getUTCHours() + 3;
|
|
||||||
batchJob.spec = {
|
|
||||||
schedule: `0 ${hours > 23 ? hours - 23 : hours} * * *`,
|
|
||||||
jobTemplate: {
|
|
||||||
spec: {
|
|
||||||
template: { spec },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
core.info('creating cron job');
|
|
||||||
await kubeClientBatch.createNamespacedCronJob(namespace, batchJob);
|
|
||||||
core.info('created cron job');
|
|
||||||
} catch (error) {
|
|
||||||
throw error;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
export default KubernetesCleanupCronJob;
|
|
||||||
|
|
@ -139,6 +139,12 @@ class KubernetesJobSpecFactory {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: 'controller-cleanup',
|
||||||
|
image: 'alpine',
|
||||||
|
command: ['/bin/sh'],
|
||||||
|
args: ['-c', 'echo "test"'],
|
||||||
|
},
|
||||||
],
|
],
|
||||||
restartPolicy: 'Never',
|
restartPolicy: 'Never',
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue