Max workspaces and strong consistency locks
parent
333efe3660
commit
6beb4d0ba9
|
|
@ -5113,12 +5113,15 @@ const cloud_runner_options_1 = __importDefault(__nccwpck_require__(96552));
|
||||||
class SharedWorkspaceLocking {
|
class SharedWorkspaceLocking {
|
||||||
static GetAllWorkspaces(buildParametersContext) {
|
static GetAllWorkspaces(buildParametersContext) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
if (!(yield SharedWorkspaceLocking.DoesWorkspaceTopLevelExist(buildParametersContext))) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
return (yield SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}${buildParametersContext.cacheKey}/`)).map((x) => x.replace(`/`, ``));
|
return (yield SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}${buildParametersContext.cacheKey}/`)).map((x) => x.replace(`/`, ``));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
static DoesWorkspaceTopLevelExist(buildParametersContext) {
|
static DoesWorkspaceTopLevelExist(buildParametersContext) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const results = (yield SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}${buildParametersContext.cacheKey}`)).map((x) => x.replace(`/`, ``));
|
const results = (yield SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}`)).map((x) => x.replace(`/`, ``));
|
||||||
return results.includes(buildParametersContext.cacheKey);
|
return results.includes(buildParametersContext.cacheKey);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -6,6 +6,10 @@ import BuildParameters from '../../build-parameters';
|
||||||
export class SharedWorkspaceLocking {
|
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 GetAllWorkspaces(buildParametersContext: BuildParameters): Promise<string[]> {
|
public static async GetAllWorkspaces(buildParametersContext: BuildParameters): Promise<string[]> {
|
||||||
|
if (!(await SharedWorkspaceLocking.DoesWorkspaceTopLevelExist(buildParametersContext))) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
await SharedWorkspaceLocking.ReadLines(
|
await SharedWorkspaceLocking.ReadLines(
|
||||||
`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}${buildParametersContext.cacheKey}/`,
|
`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}${buildParametersContext.cacheKey}/`,
|
||||||
|
|
@ -13,11 +17,9 @@ export class SharedWorkspaceLocking {
|
||||||
).map((x) => x.replace(`/`, ``));
|
).map((x) => x.replace(`/`, ``));
|
||||||
}
|
}
|
||||||
public static async DoesWorkspaceTopLevelExist(buildParametersContext: BuildParameters) {
|
public static async DoesWorkspaceTopLevelExist(buildParametersContext: BuildParameters) {
|
||||||
const results = (
|
const results = (await SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}`)).map(
|
||||||
await SharedWorkspaceLocking.ReadLines(
|
(x) => x.replace(`/`, ``),
|
||||||
`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}${buildParametersContext.cacheKey}`,
|
);
|
||||||
)
|
|
||||||
).map((x) => x.replace(`/`, ``));
|
|
||||||
|
|
||||||
return results.includes(buildParametersContext.cacheKey);
|
return results.includes(buildParametersContext.cacheKey);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue