Max workspaces and strong consistency locks

pull/437/head
Frostebite 2022-10-18 20:48:10 +01:00
parent b8daa46233
commit ff30712eb9
5 changed files with 12 additions and 7 deletions

9
dist/index.js vendored
View File

@ -942,7 +942,7 @@ class CloudRunner {
return __awaiter(this, void 0, void 0, function* () {
CloudRunner.setup(buildParameters);
try {
if (cloud_runner_options_1.default.retainWorkspaces) {
if (buildParameters.retainWorkspace) {
const workspace = `test-workspace-${CloudRunner.buildParameters.buildGuid}`;
const result = (yield shared_workspace_locking_1.default.GetOrCreateLockedWorkspace(workspace, CloudRunner.buildParameters.buildGuid, CloudRunner.buildParameters)) || CloudRunner.buildParameters.buildGuid;
if (result) {
@ -953,6 +953,9 @@ class CloudRunner {
{ name: `LOCKED_WORKSPACE`, value: workspace },
];
}
else {
buildParameters.retainWorkspace = false;
}
}
if (!CloudRunner.buildParameters.isCliMode)
core.startGroup('Setup shared cloud runner resources');
@ -4166,7 +4169,7 @@ class RemoteClient {
});
}
static handleRetainedWorkspace() {
if (!cloud_runner_1.default.buildParameters.retainWorkspace || !cloud_runner_1.default.lockedWorkspace) {
if (!cloud_runner_1.default.buildParameters.retainWorkspace) {
return;
}
remote_client_logger_1.RemoteClientLogger.log(`Retained Workspace: ${cloud_runner_1.default.lockedWorkspace}`);
@ -5128,7 +5131,7 @@ class SharedWorkspaceLocking {
static GetAllLocks(workspace, buildParametersContext) {
return __awaiter(this, void 0, void 0, function* () {
if (!(yield SharedWorkspaceLocking.DoesWorkspaceExist(workspace, buildParametersContext))) {
throw new Error("Workspace doesn't exist, can't call get all locks");
return [];
}
return (yield SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}${buildParametersContext.cacheKey}/${workspace}/`))
.map((x) => x.replace(`/`, ``))

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -66,7 +66,7 @@ class CloudRunner {
static async run(buildParameters: BuildParameters, baseImage: string) {
CloudRunner.setup(buildParameters);
try {
if (CloudRunnerOptions.retainWorkspaces) {
if (buildParameters.retainWorkspace) {
const workspace = `test-workspace-${CloudRunner.buildParameters.buildGuid}`;
const result =
(await SharedWorkspaceLocking.GetOrCreateLockedWorkspace(
@ -83,6 +83,8 @@ class CloudRunner {
...CloudRunner.cloudRunnerEnvironmentVariables,
{ name: `LOCKED_WORKSPACE`, value: workspace },
];
} else {
buildParameters.retainWorkspace = false;
}
}
if (!CloudRunner.buildParameters.isCliMode) core.startGroup('Setup shared cloud runner resources');

View File

@ -154,7 +154,7 @@ export class RemoteClient {
}
}
static handleRetainedWorkspace() {
if (!CloudRunner.buildParameters.retainWorkspace || !CloudRunner.lockedWorkspace) {
if (!CloudRunner.buildParameters.retainWorkspace) {
return;
}
RemoteClientLogger.log(`Retained Workspace: ${CloudRunner.lockedWorkspace}`);

View File

@ -25,7 +25,7 @@ export class SharedWorkspaceLocking {
}
public static async GetAllLocks(workspace: string, buildParametersContext: BuildParameters): Promise<string[]> {
if (!(await SharedWorkspaceLocking.DoesWorkspaceExist(workspace, buildParametersContext))) {
throw new Error("Workspace doesn't exist, can't call get all locks");
return [];
}
return (