Use retained workspace :O
parent
c7881bc2cd
commit
a3c0d81ac8
|
|
@ -669,7 +669,7 @@ class SharedWorkspaceLocking {
|
|||
}
|
||||
static CleanupWorkspace(workspace) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
yield cloud_runner_system_1.CloudRunnerSystem.Run(`aws s3 rm ${SharedWorkspaceLocking.workspaceRoot}/${workspace} --recursive`, false, true);
|
||||
yield cloud_runner_system_1.CloudRunnerSystem.Run(`aws s3 rm ${SharedWorkspaceLocking.workspaceRoot}${workspace} --recursive`, false, true);
|
||||
});
|
||||
}
|
||||
static GetFreeWorkspaces() {
|
||||
|
|
@ -694,7 +694,7 @@ class SharedWorkspaceLocking {
|
|||
if (!(yield SharedWorkspaceLocking.DoesWorkspaceExist(workspace))) {
|
||||
throw new Error("Workspace doesn't exist, can't call get all locks");
|
||||
}
|
||||
return (yield SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}/${workspace}/`)).map((x) => x.replace(`/`, ``));
|
||||
return (yield SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}${workspace}/`)).map((x) => x.replace(`/`, ``));
|
||||
});
|
||||
}
|
||||
static ReadLines(command) {
|
||||
|
|
@ -714,7 +714,7 @@ class SharedWorkspaceLocking {
|
|||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const file = `${Date.now()}_${runId}_lock`;
|
||||
fs.writeFileSync(file, '');
|
||||
yield cloud_runner_system_1.CloudRunnerSystem.Run(`aws s3 cp ./${file} ${SharedWorkspaceLocking.workspaceRoot}/${workspace}/${file}`, false, true);
|
||||
yield cloud_runner_system_1.CloudRunnerSystem.Run(`aws s3 cp ./${file} ${SharedWorkspaceLocking.workspaceRoot}${workspace}/${file}`, false, true);
|
||||
fs.rmSync(file);
|
||||
return SharedWorkspaceLocking.HasWorkspaceLock(workspace, runId);
|
||||
});
|
||||
|
|
@ -727,8 +727,8 @@ class SharedWorkspaceLocking {
|
|||
const file = (yield SharedWorkspaceLocking.GetAllLocks(workspace)).filter((x) => x.includes(`_${runId}_lock`));
|
||||
cloud_runner_logger_1.default.log(`${JSON.stringify(yield SharedWorkspaceLocking.GetAllLocks(workspace))}`);
|
||||
cloud_runner_logger_1.default.log(`Deleting file ${file}`);
|
||||
cloud_runner_logger_1.default.log(`aws s3 rm ${SharedWorkspaceLocking.workspaceRoot}/${workspace}/${file}`);
|
||||
yield cloud_runner_system_1.CloudRunnerSystem.Run(`aws s3 rm ${SharedWorkspaceLocking.workspaceRoot}/${workspace}/${file}`, false, true);
|
||||
cloud_runner_logger_1.default.log(`aws s3 rm ${SharedWorkspaceLocking.workspaceRoot}${workspace}/${file}`);
|
||||
yield cloud_runner_system_1.CloudRunnerSystem.Run(`aws s3 rm ${SharedWorkspaceLocking.workspaceRoot}${workspace}/${file}`, false, true);
|
||||
return !SharedWorkspaceLocking.HasWorkspaceLock(workspace, runId);
|
||||
});
|
||||
}
|
||||
|
|
@ -745,7 +745,7 @@ class SharedWorkspaceLocking {
|
|||
if (!(yield SharedWorkspaceLocking.DoesWorkspaceExist(workspace))) {
|
||||
return false;
|
||||
}
|
||||
const files = yield SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}/${workspace}/`);
|
||||
const files = yield SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}${workspace}/`);
|
||||
// 1 Because we expect 1 workspace file to exist in every workspace folder
|
||||
return files.length > 1;
|
||||
});
|
||||
|
|
@ -754,7 +754,7 @@ class SharedWorkspaceLocking {
|
|||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const file = `${Date.now()}_workspace`;
|
||||
fs.writeFileSync(file, '');
|
||||
yield cloud_runner_system_1.CloudRunnerSystem.Run(`aws s3 cp ./${file} ${SharedWorkspaceLocking.workspaceRoot}/${workspace}/${file}`, false, true);
|
||||
yield cloud_runner_system_1.CloudRunnerSystem.Run(`aws s3 cp ./${file} ${SharedWorkspaceLocking.workspaceRoot}${workspace}/${file}`, false, true);
|
||||
fs.rmSync(file);
|
||||
return workspace;
|
||||
});
|
||||
|
|
@ -763,7 +763,7 @@ class SharedWorkspaceLocking {
|
|||
static ReleaseLock(workspace) { }
|
||||
}
|
||||
exports.SharedWorkspaceLocking = SharedWorkspaceLocking;
|
||||
SharedWorkspaceLocking.workspaceRoot = `s3://game-ci-test-storage/locks`;
|
||||
SharedWorkspaceLocking.workspaceRoot = `s3://game-ci-test-storage/locks/`;
|
||||
exports["default"] = SharedWorkspaceLocking;
|
||||
|
||||
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -3,7 +3,7 @@ import * as fs from 'fs';
|
|||
import CloudRunnerLogger from '../cloud-runner/services/cloud-runner-logger';
|
||||
import CloudRunnerOptions from '../cloud-runner/cloud-runner-options';
|
||||
export class SharedWorkspaceLocking {
|
||||
private static readonly workspaceRoot = `s3://game-ci-test-storage/locks`;
|
||||
private static readonly workspaceRoot = `s3://game-ci-test-storage/locks/`;
|
||||
public static async GetLockedWorkspace(workspaceIfCreated: string, runId: string) {
|
||||
if (!CloudRunnerOptions.retainWorkspaces) {
|
||||
return;
|
||||
|
|
@ -25,7 +25,7 @@ export class SharedWorkspaceLocking {
|
|||
|
||||
public static async CleanupWorkspace(workspace: string) {
|
||||
await CloudRunnerSystem.Run(
|
||||
`aws s3 rm ${SharedWorkspaceLocking.workspaceRoot}/${workspace} --recursive`,
|
||||
`aws s3 rm ${SharedWorkspaceLocking.workspaceRoot}${workspace} --recursive`,
|
||||
false,
|
||||
true,
|
||||
);
|
||||
|
|
@ -53,7 +53,7 @@ export class SharedWorkspaceLocking {
|
|||
}
|
||||
|
||||
return (
|
||||
await SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}/${workspace}/`)
|
||||
await SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}${workspace}/`)
|
||||
).map((x) => x.replace(`/`, ``));
|
||||
}
|
||||
|
||||
|
|
@ -75,7 +75,7 @@ export class SharedWorkspaceLocking {
|
|||
const file = `${Date.now()}_${runId}_lock`;
|
||||
fs.writeFileSync(file, '');
|
||||
await CloudRunnerSystem.Run(
|
||||
`aws s3 cp ./${file} ${SharedWorkspaceLocking.workspaceRoot}/${workspace}/${file}`,
|
||||
`aws s3 cp ./${file} ${SharedWorkspaceLocking.workspaceRoot}${workspace}/${file}`,
|
||||
false,
|
||||
true,
|
||||
);
|
||||
|
|
@ -91,8 +91,8 @@ export class SharedWorkspaceLocking {
|
|||
const file = (await SharedWorkspaceLocking.GetAllLocks(workspace)).filter((x) => x.includes(`_${runId}_lock`));
|
||||
CloudRunnerLogger.log(`${JSON.stringify(await SharedWorkspaceLocking.GetAllLocks(workspace))}`);
|
||||
CloudRunnerLogger.log(`Deleting file ${file}`);
|
||||
CloudRunnerLogger.log(`aws s3 rm ${SharedWorkspaceLocking.workspaceRoot}/${workspace}/${file}`);
|
||||
await CloudRunnerSystem.Run(`aws s3 rm ${SharedWorkspaceLocking.workspaceRoot}/${workspace}/${file}`, false, true);
|
||||
CloudRunnerLogger.log(`aws s3 rm ${SharedWorkspaceLocking.workspaceRoot}${workspace}/${file}`);
|
||||
await CloudRunnerSystem.Run(`aws s3 rm ${SharedWorkspaceLocking.workspaceRoot}${workspace}/${file}`, false, true);
|
||||
|
||||
return !SharedWorkspaceLocking.HasWorkspaceLock(workspace, runId);
|
||||
}
|
||||
|
|
@ -109,7 +109,7 @@ export class SharedWorkspaceLocking {
|
|||
return false;
|
||||
}
|
||||
const files = await SharedWorkspaceLocking.ReadLines(
|
||||
`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}/${workspace}/`,
|
||||
`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}${workspace}/`,
|
||||
);
|
||||
|
||||
// 1 Because we expect 1 workspace file to exist in every workspace folder
|
||||
|
|
@ -120,7 +120,7 @@ export class SharedWorkspaceLocking {
|
|||
const file = `${Date.now()}_workspace`;
|
||||
fs.writeFileSync(file, '');
|
||||
await CloudRunnerSystem.Run(
|
||||
`aws s3 cp ./${file} ${SharedWorkspaceLocking.workspaceRoot}/${workspace}/${file}`,
|
||||
`aws s3 cp ./${file} ${SharedWorkspaceLocking.workspaceRoot}${workspace}/${file}`,
|
||||
false,
|
||||
true,
|
||||
);
|
||||
|
|
|
|||
Loading…
Reference in New Issue