parameterize s3

pull/479/head
Frostebite 2023-01-20 16:49:46 +00:00
parent 563193a61f
commit a80ebf6ac7
3 changed files with 41 additions and 38 deletions

10
dist/index.js vendored
View File

@ -5537,15 +5537,10 @@ class SharedWorkspaceLocking {
}
static DoesWorkspaceTopLevelExist(buildParametersContext) {
return __awaiter(this, void 0, void 0, function* () {
try {
yield SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceBucketRoot}`);
return (yield SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}`))
.map((x) => x.replace(`/`, ``))
.includes(buildParametersContext.cacheKey);
}
catch (_a) {
return false;
}
});
}
static GetAllLocks(workspace, buildParametersContext) {
@ -5563,6 +5558,7 @@ class SharedWorkspaceLocking {
if (!cloud_runner_options_1.default.retainWorkspaces) {
return;
}
try {
if (yield SharedWorkspaceLocking.DoesWorkspaceTopLevelExist(buildParametersContext)) {
const workspaces = yield SharedWorkspaceLocking.GetFreeWorkspaces(buildParametersContext);
cloud_runner_logger_1.default.log(`run agent ${runId} is trying to access a workspace, free: ${JSON.stringify(workspaces)}`);
@ -5576,6 +5572,10 @@ class SharedWorkspaceLocking {
}
}
}
}
catch (_a) {
return;
}
const createResult = yield SharedWorkspaceLocking.CreateWorkspace(workspace, buildParametersContext, runId);
cloud_runner_logger_1.default.log(`run agent ${runId} didn't find a free workspace so created: ${workspace} createWorkspaceSuccess: ${createResult}`);
return createResult;

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -23,15 +23,11 @@ export class SharedWorkspaceLocking {
).map((x) => x.replace(`/`, ``));
}
public static async DoesWorkspaceTopLevelExist(buildParametersContext: BuildParameters) {
try {
await SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceBucketRoot}`);
return (await SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}`))
.map((x) => x.replace(`/`, ``))
.includes(buildParametersContext.cacheKey);
} catch {
return false;
}
}
public static async GetAllLocks(workspace: string, buildParametersContext: BuildParameters): Promise<string[]> {
if (!(await SharedWorkspaceLocking.DoesWorkspaceExist(workspace, buildParametersContext))) {
@ -54,9 +50,13 @@ export class SharedWorkspaceLocking {
if (!CloudRunnerOptions.retainWorkspaces) {
return;
}
try {
if (await SharedWorkspaceLocking.DoesWorkspaceTopLevelExist(buildParametersContext)) {
const workspaces = await SharedWorkspaceLocking.GetFreeWorkspaces(buildParametersContext);
CloudRunnerLogger.log(`run agent ${runId} is trying to access a workspace, free: ${JSON.stringify(workspaces)}`);
CloudRunnerLogger.log(
`run agent ${runId} is trying to access a workspace, free: ${JSON.stringify(workspaces)}`,
);
for (const element of workspaces) {
await new Promise((promise) => setTimeout(promise, 1000));
const lockResult = await SharedWorkspaceLocking.LockWorkspace(element, runId, buildParametersContext);
@ -69,6 +69,9 @@ export class SharedWorkspaceLocking {
}
}
}
} catch {
return;
}
const createResult = await SharedWorkspaceLocking.CreateWorkspace(workspace, buildParametersContext, runId);
CloudRunnerLogger.log(