Max workspaces and strong consistency locks
parent
b8daa46233
commit
ff30712eb9
|
|
@ -942,7 +942,7 @@ class CloudRunner {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
CloudRunner.setup(buildParameters);
|
CloudRunner.setup(buildParameters);
|
||||||
try {
|
try {
|
||||||
if (cloud_runner_options_1.default.retainWorkspaces) {
|
if (buildParameters.retainWorkspace) {
|
||||||
const workspace = `test-workspace-${CloudRunner.buildParameters.buildGuid}`;
|
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;
|
const result = (yield shared_workspace_locking_1.default.GetOrCreateLockedWorkspace(workspace, CloudRunner.buildParameters.buildGuid, CloudRunner.buildParameters)) || CloudRunner.buildParameters.buildGuid;
|
||||||
if (result) {
|
if (result) {
|
||||||
|
|
@ -953,6 +953,9 @@ class CloudRunner {
|
||||||
{ name: `LOCKED_WORKSPACE`, value: workspace },
|
{ name: `LOCKED_WORKSPACE`, value: workspace },
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
buildParameters.retainWorkspace = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!CloudRunner.buildParameters.isCliMode)
|
if (!CloudRunner.buildParameters.isCliMode)
|
||||||
core.startGroup('Setup shared cloud runner resources');
|
core.startGroup('Setup shared cloud runner resources');
|
||||||
|
|
@ -4166,7 +4169,7 @@ class RemoteClient {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
static handleRetainedWorkspace() {
|
static handleRetainedWorkspace() {
|
||||||
if (!cloud_runner_1.default.buildParameters.retainWorkspace || !cloud_runner_1.default.lockedWorkspace) {
|
if (!cloud_runner_1.default.buildParameters.retainWorkspace) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
remote_client_logger_1.RemoteClientLogger.log(`Retained Workspace: ${cloud_runner_1.default.lockedWorkspace}`);
|
remote_client_logger_1.RemoteClientLogger.log(`Retained Workspace: ${cloud_runner_1.default.lockedWorkspace}`);
|
||||||
|
|
@ -5128,7 +5131,7 @@ class SharedWorkspaceLocking {
|
||||||
static GetAllLocks(workspace, buildParametersContext) {
|
static GetAllLocks(workspace, buildParametersContext) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
if (!(yield SharedWorkspaceLocking.DoesWorkspaceExist(workspace, buildParametersContext))) {
|
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}/`))
|
return (yield SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}${buildParametersContext.cacheKey}/${workspace}/`))
|
||||||
.map((x) => x.replace(`/`, ``))
|
.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) {
|
static async run(buildParameters: BuildParameters, baseImage: string) {
|
||||||
CloudRunner.setup(buildParameters);
|
CloudRunner.setup(buildParameters);
|
||||||
try {
|
try {
|
||||||
if (CloudRunnerOptions.retainWorkspaces) {
|
if (buildParameters.retainWorkspace) {
|
||||||
const workspace = `test-workspace-${CloudRunner.buildParameters.buildGuid}`;
|
const workspace = `test-workspace-${CloudRunner.buildParameters.buildGuid}`;
|
||||||
const result =
|
const result =
|
||||||
(await SharedWorkspaceLocking.GetOrCreateLockedWorkspace(
|
(await SharedWorkspaceLocking.GetOrCreateLockedWorkspace(
|
||||||
|
|
@ -83,6 +83,8 @@ class CloudRunner {
|
||||||
...CloudRunner.cloudRunnerEnvironmentVariables,
|
...CloudRunner.cloudRunnerEnvironmentVariables,
|
||||||
{ name: `LOCKED_WORKSPACE`, value: workspace },
|
{ name: `LOCKED_WORKSPACE`, value: workspace },
|
||||||
];
|
];
|
||||||
|
} else {
|
||||||
|
buildParameters.retainWorkspace = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!CloudRunner.buildParameters.isCliMode) core.startGroup('Setup shared cloud runner resources');
|
if (!CloudRunner.buildParameters.isCliMode) core.startGroup('Setup shared cloud runner resources');
|
||||||
|
|
|
||||||
|
|
@ -154,7 +154,7 @@ export class RemoteClient {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
static handleRetainedWorkspace() {
|
static handleRetainedWorkspace() {
|
||||||
if (!CloudRunner.buildParameters.retainWorkspace || !CloudRunner.lockedWorkspace) {
|
if (!CloudRunner.buildParameters.retainWorkspace) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
RemoteClientLogger.log(`Retained Workspace: ${CloudRunner.lockedWorkspace}`);
|
RemoteClientLogger.log(`Retained Workspace: ${CloudRunner.lockedWorkspace}`);
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ export class SharedWorkspaceLocking {
|
||||||
}
|
}
|
||||||
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))) {
|
||||||
throw new Error("Workspace doesn't exist, can't call get all locks");
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue