locking now checks lock folder exists in s3

pull/437/head
Frostebite 2022-10-22 16:03:23 +01:00
parent b29ab91ea0
commit ecec58fe7d
3 changed files with 18 additions and 9 deletions

11
dist/index.js vendored
View File

@ -5161,8 +5161,12 @@ class SharedWorkspaceLocking {
} }
static DoesWorkspaceTopLevelExist(buildParametersContext) { static DoesWorkspaceTopLevelExist(buildParametersContext) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
const results = (yield SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}`)).map((x) => x.replace(`/`, ``)); return ((yield SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceBucketRoot}`))
return results.includes(buildParametersContext.cacheKey); .map((x) => x.replace(`/`, ``))
.includes(`locks`) &&
(yield SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}`))
.map((x) => x.replace(`/`, ``))
.includes(buildParametersContext.cacheKey));
}); });
} }
static GetAllLocks(workspace, buildParametersContext) { static GetAllLocks(workspace, buildParametersContext) {
@ -5336,7 +5340,8 @@ class SharedWorkspaceLocking {
} }
} }
exports.SharedWorkspaceLocking = SharedWorkspaceLocking; exports.SharedWorkspaceLocking = SharedWorkspaceLocking;
SharedWorkspaceLocking.workspaceRoot = `s3://game-ci-test-storage/locks/`; SharedWorkspaceLocking.workspaceBucketRoot = `s3://game-ci-test-storage/`;
SharedWorkspaceLocking.workspaceRoot = `${SharedWorkspaceLocking.workspaceBucketRoot}/locks/`;
exports["default"] = SharedWorkspaceLocking; exports["default"] = SharedWorkspaceLocking;

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -5,7 +5,8 @@ import CloudRunnerOptions from '../cloud-runner-options';
import BuildParameters from '../../build-parameters'; import BuildParameters from '../../build-parameters';
import CloudRunner from '../cloud-runner'; import CloudRunner from '../cloud-runner';
export class SharedWorkspaceLocking { export class SharedWorkspaceLocking {
private static readonly workspaceRoot = `s3://game-ci-test-storage/locks/`; private static readonly workspaceBucketRoot = `s3://game-ci-test-storage/`;
private static readonly workspaceRoot = `${SharedWorkspaceLocking.workspaceBucketRoot}/locks/`;
public static async GetAllWorkspaces(buildParametersContext: BuildParameters): Promise<string[]> { public static async GetAllWorkspaces(buildParametersContext: BuildParameters): Promise<string[]> {
if (!(await SharedWorkspaceLocking.DoesWorkspaceTopLevelExist(buildParametersContext))) { if (!(await SharedWorkspaceLocking.DoesWorkspaceTopLevelExist(buildParametersContext))) {
return []; return [];
@ -18,11 +19,14 @@ export class SharedWorkspaceLocking {
).map((x) => x.replace(`/`, ``)); ).map((x) => x.replace(`/`, ``));
} }
public static async DoesWorkspaceTopLevelExist(buildParametersContext: BuildParameters) { public static async DoesWorkspaceTopLevelExist(buildParametersContext: BuildParameters) {
const results = (await SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}`)).map( return (
(x) => x.replace(`/`, ``), (await SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceBucketRoot}`))
.map((x) => x.replace(`/`, ``))
.includes(`locks`) &&
(await SharedWorkspaceLocking.ReadLines(`aws s3 ls ${SharedWorkspaceLocking.workspaceRoot}`))
.map((x) => x.replace(`/`, ``))
.includes(buildParametersContext.cacheKey)
); );
return results.includes(buildParametersContext.cacheKey);
} }
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))) {