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) { static DoesWorkspaceTopLevelExist(buildParametersContext) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
try {
yield SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceBucketRoot}`); yield SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceBucketRoot}`);
return (yield SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}`)) return (yield SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}`))
.map((x) => x.replace(`/`, ``)) .map((x) => x.replace(`/`, ``))
.includes(buildParametersContext.cacheKey); .includes(buildParametersContext.cacheKey);
}
catch (_a) {
return false;
}
}); });
} }
static GetAllLocks(workspace, buildParametersContext) { static GetAllLocks(workspace, buildParametersContext) {
@ -5563,6 +5558,7 @@ class SharedWorkspaceLocking {
if (!cloud_runner_options_1.default.retainWorkspaces) { if (!cloud_runner_options_1.default.retainWorkspaces) {
return; return;
} }
try {
if (yield SharedWorkspaceLocking.DoesWorkspaceTopLevelExist(buildParametersContext)) { if (yield SharedWorkspaceLocking.DoesWorkspaceTopLevelExist(buildParametersContext)) {
const workspaces = yield SharedWorkspaceLocking.GetFreeWorkspaces(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)}`); 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); 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}`); cloud_runner_logger_1.default.log(`run agent ${runId} didn't find a free workspace so created: ${workspace} createWorkspaceSuccess: ${createResult}`);
return 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(`/`, ``)); ).map((x) => x.replace(`/`, ``));
} }
public static async DoesWorkspaceTopLevelExist(buildParametersContext: BuildParameters) { public static async DoesWorkspaceTopLevelExist(buildParametersContext: BuildParameters) {
try {
await SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceBucketRoot}`); await SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceBucketRoot}`);
return (await SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}`)) return (await SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}`))
.map((x) => x.replace(`/`, ``)) .map((x) => x.replace(`/`, ``))
.includes(buildParametersContext.cacheKey); .includes(buildParametersContext.cacheKey);
} catch {
return false;
}
} }
public static async GetAllLocks(workspace: string, buildParametersContext: BuildParameters): Promise<string[]> { public static async GetAllLocks(workspace: string, buildParametersContext: BuildParameters): Promise<string[]> {
if (!(await SharedWorkspaceLocking.DoesWorkspaceExist(workspace, buildParametersContext))) { if (!(await SharedWorkspaceLocking.DoesWorkspaceExist(workspace, buildParametersContext))) {
@ -54,9 +50,13 @@ export class SharedWorkspaceLocking {
if (!CloudRunnerOptions.retainWorkspaces) { if (!CloudRunnerOptions.retainWorkspaces) {
return; return;
} }
try {
if (await SharedWorkspaceLocking.DoesWorkspaceTopLevelExist(buildParametersContext)) { if (await SharedWorkspaceLocking.DoesWorkspaceTopLevelExist(buildParametersContext)) {
const workspaces = await SharedWorkspaceLocking.GetFreeWorkspaces(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) { for (const element of workspaces) {
await new Promise((promise) => setTimeout(promise, 1000)); await new Promise((promise) => setTimeout(promise, 1000));
const lockResult = await SharedWorkspaceLocking.LockWorkspace(element, runId, buildParametersContext); 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); const createResult = await SharedWorkspaceLocking.CreateWorkspace(workspace, buildParametersContext, runId);
CloudRunnerLogger.log( CloudRunnerLogger.log(