Max workspaces and strong consistency locks
parent
b8daa46233
commit
ff30712eb9
|
|
@ -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(`/`, ``))
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -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');
|
||||
|
|
|
|||
|
|
@ -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}`);
|
||||
|
|
|
|||
|
|
@ -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 (
|
||||
|
|
|
|||
Loading…
Reference in New Issue