Max workspaces and strong consistency locks

pull/437/head
Frostebite 2022-10-18 18:37:23 +01:00
parent 641958ea44
commit 141bfef2fd
3 changed files with 13 additions and 3 deletions

7
dist/index.js vendored
View File

@ -5127,7 +5127,9 @@ class SharedWorkspaceLocking {
if (!(yield SharedWorkspaceLocking.DoesWorkspaceExist(workspace, buildParametersContext))) {
throw new Error("Workspace doesn't exist, can't call get all locks");
}
return (yield SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}${buildParametersContext.cacheKey}/${workspace}/`)).map((x) => x.replace(`/`, ``));
return (yield SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}${buildParametersContext.cacheKey}/${workspace}/`))
.map((x) => x.replace(`/`, ``))
.filter((x) => x.includes(`_lock`));
});
}
static GetOrCreateLockedWorkspace(workspace, runId, buildParametersContext) {
@ -5190,6 +5192,9 @@ class SharedWorkspaceLocking {
}
static IsWorkspaceBelowMax(workspace, buildParametersContext) {
return __awaiter(this, void 0, void 0, function* () {
if (!(yield SharedWorkspaceLocking.DoesWorkspaceTopLevelExist(buildParametersContext))) {
return true;
}
const workspaces = yield SharedWorkspaceLocking.GetAllWorkspaces(buildParametersContext);
const ordered = [];
for (const ws of workspaces) {

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -28,7 +28,9 @@ export class SharedWorkspaceLocking {
await SharedWorkspaceLocking.ReadLines(
`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}${buildParametersContext.cacheKey}/${workspace}/`,
)
).map((x) => x.replace(`/`, ``));
)
.map((x) => x.replace(`/`, ``))
.filter((x) => x.includes(`_lock`));
}
public static async GetOrCreateLockedWorkspace(
workspace: string,
@ -112,6 +114,9 @@ export class SharedWorkspaceLocking {
workspace: string,
buildParametersContext: BuildParameters,
): Promise<boolean> {
if (!(await SharedWorkspaceLocking.DoesWorkspaceTopLevelExist(buildParametersContext))) {
return true;
}
const workspaces = await SharedWorkspaceLocking.GetAllWorkspaces(buildParametersContext);
const ordered: any[] = [];
for (const ws of workspaces) {