improve locking naming
parent
a34b82de82
commit
e3b1e975ad
|
|
@ -207,7 +207,7 @@ const cli_1 = __nccwpck_require__(55651);
|
|||
const github_1 = __importDefault(__nccwpck_require__(83654));
|
||||
const cloud_runner_options_1 = __importDefault(__nccwpck_require__(96552));
|
||||
class BuildParameters {
|
||||
static useRetainedWorkspaceMode(buildParameters) {
|
||||
static shouldUseRetainedWorkspaceMode(buildParameters) {
|
||||
return buildParameters.maxRetainedWorkspaces > 0;
|
||||
}
|
||||
static async create() {
|
||||
|
|
@ -548,7 +548,7 @@ class Cli {
|
|||
${JSON.stringify(buildParameter, undefined, 4)}
|
||||
`);
|
||||
__1.CloudRunner.buildParameters = buildParameter;
|
||||
__1.CloudRunner.lockedWorkspace = process.env.CI_LOCKED_WORKSPACE;
|
||||
__1.CloudRunner.lockedWorkspace = process.env.CI_LOCKED_WORKSPACE || ``;
|
||||
await __1.CloudRunner.setup(buildParameter);
|
||||
return await results.target[results.propertyKey](Cli.options);
|
||||
}
|
||||
|
|
@ -618,7 +618,7 @@ class Cli {
|
|||
core.info(`Running POST build tasks`);
|
||||
await caching_1.Caching.PushToCache(cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(`${cloud_runner_folders_1.CloudRunnerFolders.cacheFolderForCacheKeyFull}/Library`), cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.libraryFolderAbsolute), `lib-${__1.CloudRunner.buildParameters.buildGuid}`);
|
||||
await caching_1.Caching.PushToCache(cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(`${cloud_runner_folders_1.CloudRunnerFolders.cacheFolderForCacheKeyFull}/build`), cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.projectBuildFolderAbsolute), `build-${__1.CloudRunner.buildParameters.buildGuid}`);
|
||||
if (!__1.BuildParameters.useRetainedWorkspaceMode(__1.CloudRunner.buildParameters)) {
|
||||
if (!__1.BuildParameters.shouldUseRetainedWorkspaceMode(__1.CloudRunner.buildParameters)) {
|
||||
await cloud_runner_system_1.CloudRunnerSystem.Run(`rm -r ${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute)}`);
|
||||
}
|
||||
await remote_client_1.RemoteClient.runCustomHookFiles(`after-build`);
|
||||
|
|
@ -1050,7 +1050,7 @@ class CloudRunner {
|
|||
if (!CloudRunner.buildParameters.isCliMode)
|
||||
core.endGroup();
|
||||
try {
|
||||
if (__1.BuildParameters.useRetainedWorkspaceMode(buildParameters)) {
|
||||
if (__1.BuildParameters.shouldUseRetainedWorkspaceMode(buildParameters)) {
|
||||
CloudRunner.lockedWorkspace = shared_workspace_locking_1.default.NewWorkspaceName();
|
||||
const result = await shared_workspace_locking_1.default.GetLockedWorkspace(CloudRunner.lockedWorkspace, CloudRunner.buildParameters.buildGuid, CloudRunner.buildParameters);
|
||||
if (result) {
|
||||
|
|
@ -1063,7 +1063,7 @@ class CloudRunner {
|
|||
else {
|
||||
cloud_runner_logger_1.default.log(`Max retained workspaces reached ${buildParameters.maxRetainedWorkspaces}`);
|
||||
buildParameters.maxRetainedWorkspaces = 0;
|
||||
CloudRunner.lockedWorkspace = undefined;
|
||||
CloudRunner.lockedWorkspace = ``;
|
||||
}
|
||||
}
|
||||
const content = { ...CloudRunner.buildParameters };
|
||||
|
|
@ -1079,14 +1079,14 @@ class CloudRunner {
|
|||
if (!CloudRunner.buildParameters.isCliMode)
|
||||
core.endGroup();
|
||||
await github_1.default.updateGitHubCheck(CloudRunner.buildParameters.buildGuid, `success`, `success`, `completed`);
|
||||
if (__1.BuildParameters.useRetainedWorkspaceMode(buildParameters)) {
|
||||
if (__1.BuildParameters.shouldUseRetainedWorkspaceMode(buildParameters)) {
|
||||
const workspace = CloudRunner.lockedWorkspace || ``;
|
||||
await shared_workspace_locking_1.default.ReleaseWorkspace(workspace, CloudRunner.buildParameters.buildGuid, CloudRunner.buildParameters);
|
||||
const isLocked = await shared_workspace_locking_1.default.IsWorkspaceLocked(workspace, CloudRunner.buildParameters);
|
||||
if (isLocked) {
|
||||
throw new Error(`still locked after releasing ${await shared_workspace_locking_1.default.GetAllLocksForWorkspace(workspace, buildParameters)}`);
|
||||
}
|
||||
CloudRunner.lockedWorkspace = undefined;
|
||||
CloudRunner.lockedWorkspace = ``;
|
||||
}
|
||||
await github_1.default.triggerWorkflowOnComplete(CloudRunner.buildParameters.finalHooks);
|
||||
if (buildParameters.constantGarbageCollection) {
|
||||
|
|
@ -1104,6 +1104,7 @@ class CloudRunner {
|
|||
}
|
||||
}
|
||||
}
|
||||
CloudRunner.lockedWorkspace = ``;
|
||||
CloudRunner.retainedWorkspacePrefix = `retained-workspace`;
|
||||
exports["default"] = CloudRunner;
|
||||
|
||||
|
|
@ -3115,7 +3116,7 @@ class Kubernetes {
|
|||
defaultSecretsArray) {
|
||||
try {
|
||||
this.buildParameters = buildParameters;
|
||||
const id = __1.BuildParameters.useRetainedWorkspaceMode(buildParameters)
|
||||
const id = __1.BuildParameters.shouldUseRetainedWorkspaceMode(buildParameters)
|
||||
? cloud_runner_1.default.lockedWorkspace
|
||||
: buildParameters.buildGuid;
|
||||
this.pvcName = `unity-builder-pvc-${id}`;
|
||||
|
|
@ -3278,7 +3279,7 @@ class Kubernetes {
|
|||
branchName,
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
defaultSecretsArray) {
|
||||
if (__1.BuildParameters.useRetainedWorkspaceMode(buildParameters)) {
|
||||
if (__1.BuildParameters.shouldUseRetainedWorkspaceMode(buildParameters)) {
|
||||
return;
|
||||
}
|
||||
cloud_runner_logger_1.default.log(`deleting PVC`);
|
||||
|
|
@ -4249,10 +4250,10 @@ class RemoteClient {
|
|||
}
|
||||
static async cloneRepoWithoutLFSFiles() {
|
||||
process.chdir(`${cloud_runner_folders_1.CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute}`);
|
||||
if (build_parameters_1.default.useRetainedWorkspaceMode(cloud_runner_1.default.buildParameters)) {
|
||||
if (build_parameters_1.default.shouldUseRetainedWorkspaceMode(cloud_runner_1.default.buildParameters)) {
|
||||
if (node_fs_1.default.existsSync(node_path_1.default.join(cloud_runner_folders_1.CloudRunnerFolders.repoPathAbsolute, `.git`))) {
|
||||
process.chdir(cloud_runner_folders_1.CloudRunnerFolders.repoPathAbsolute);
|
||||
remote_client_logger_1.RemoteClientLogger.log(`${cloud_runner_folders_1.CloudRunnerFolders.repoPathAbsolute} repo exists - skipping clone - retained workspace mode ${build_parameters_1.default.useRetainedWorkspaceMode(cloud_runner_1.default.buildParameters)}`);
|
||||
remote_client_logger_1.RemoteClientLogger.log(`${cloud_runner_folders_1.CloudRunnerFolders.repoPathAbsolute} repo exists - skipping clone - retained workspace mode ${build_parameters_1.default.shouldUseRetainedWorkspaceMode(cloud_runner_1.default.buildParameters)}`);
|
||||
await cloud_runner_system_1.CloudRunnerSystem.Run(`git fetch && git reset --hard ${cloud_runner_1.default.buildParameters.gitSha}`);
|
||||
return;
|
||||
}
|
||||
|
|
@ -4309,7 +4310,7 @@ class RemoteClient {
|
|||
}
|
||||
}
|
||||
static async handleRetainedWorkspace() {
|
||||
if (!build_parameters_1.default.useRetainedWorkspaceMode(cloud_runner_1.default.buildParameters)) {
|
||||
if (!build_parameters_1.default.shouldUseRetainedWorkspaceMode(cloud_runner_1.default.buildParameters)) {
|
||||
return;
|
||||
}
|
||||
remote_client_logger_1.RemoteClientLogger.log(`Retained Workspace: ${cloud_runner_1.default.lockedWorkspace !== undefined}`);
|
||||
|
|
@ -4823,8 +4824,8 @@ class CloudRunnerFolders {
|
|||
// Only the following paths that do not start a path.join with another "Full" suffixed property need to start with an absolute /
|
||||
static get uniqueCloudRunnerJobFolderAbsolute() {
|
||||
return cloud_runner_1.default.buildParameters &&
|
||||
build_parameters_1.default.useRetainedWorkspaceMode(cloud_runner_1.default.buildParameters) &&
|
||||
cloud_runner_1.default.lockedWorkspace
|
||||
build_parameters_1.default.shouldUseRetainedWorkspaceMode(cloud_runner_1.default.buildParameters) &&
|
||||
cloud_runner_1.default.lockedWorkspace !== ``
|
||||
? node_path_1.default.join(`/`, CloudRunnerFolders.buildVolumeFolder, cloud_runner_1.default.lockedWorkspace)
|
||||
: node_path_1.default.join(`/`, CloudRunnerFolders.buildVolumeFolder, cloud_runner_1.default.buildParameters.buildGuid);
|
||||
}
|
||||
|
|
@ -5331,7 +5332,7 @@ class SharedWorkspaceLocking {
|
|||
.filter((x) => x.includes(workspace) && x.endsWith(`_lock`));
|
||||
}
|
||||
static async GetLockedWorkspace(workspace, runId, buildParametersContext) {
|
||||
if (!build_parameters_1.default.useRetainedWorkspaceMode(buildParametersContext)) {
|
||||
if (!build_parameters_1.default.shouldUseRetainedWorkspaceMode(buildParametersContext)) {
|
||||
return false;
|
||||
}
|
||||
if (await SharedWorkspaceLocking.DoesCacheKeyTopLevelExist(buildParametersContext)) {
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -81,7 +81,7 @@ class BuildParameters {
|
|||
public skipCache!: boolean;
|
||||
public cacheUnityInstallationOnMac!: boolean;
|
||||
public unityHubVersionOnMac!: string;
|
||||
public static useRetainedWorkspaceMode(buildParameters: BuildParameters) {
|
||||
public static shouldUseRetainedWorkspaceMode(buildParameters: BuildParameters) {
|
||||
return buildParameters.maxRetainedWorkspaces > 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ export class Cli {
|
|||
${JSON.stringify(buildParameter, undefined, 4)}
|
||||
`);
|
||||
CloudRunner.buildParameters = buildParameter;
|
||||
CloudRunner.lockedWorkspace = process.env.CI_LOCKED_WORKSPACE;
|
||||
CloudRunner.lockedWorkspace = process.env.CI_LOCKED_WORKSPACE || ``;
|
||||
await CloudRunner.setup(buildParameter);
|
||||
|
||||
return await results.target[results.propertyKey](Cli.options);
|
||||
|
|
@ -191,7 +191,7 @@ export class Cli {
|
|||
`build-${CloudRunner.buildParameters.buildGuid}`,
|
||||
);
|
||||
|
||||
if (!BuildParameters.useRetainedWorkspaceMode(CloudRunner.buildParameters)) {
|
||||
if (!BuildParameters.shouldUseRetainedWorkspaceMode(CloudRunner.buildParameters)) {
|
||||
await CloudRunnerSystem.Run(
|
||||
`rm -r ${CloudRunnerFolders.ToLinuxFolder(CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute)}`,
|
||||
);
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ class CloudRunner {
|
|||
public static buildParameters: BuildParameters;
|
||||
private static defaultSecrets: CloudRunnerSecret[];
|
||||
private static cloudRunnerEnvironmentVariables: CloudRunnerEnvironmentVariable[];
|
||||
static lockedWorkspace: string | undefined;
|
||||
static lockedWorkspace: string = ``;
|
||||
public static readonly retainedWorkspacePrefix: string = `retained-workspace`;
|
||||
public static get isCloudRunnerEnvironment() {
|
||||
return process.env[`GITHUB_ACTIONS`] !== `true`;
|
||||
|
|
@ -91,7 +91,7 @@ class CloudRunner {
|
|||
);
|
||||
if (!CloudRunner.buildParameters.isCliMode) core.endGroup();
|
||||
try {
|
||||
if (BuildParameters.useRetainedWorkspaceMode(buildParameters)) {
|
||||
if (BuildParameters.shouldUseRetainedWorkspaceMode(buildParameters)) {
|
||||
CloudRunner.lockedWorkspace = SharedWorkspaceLocking.NewWorkspaceName();
|
||||
|
||||
const result = await SharedWorkspaceLocking.GetLockedWorkspace(
|
||||
|
|
@ -109,7 +109,7 @@ class CloudRunner {
|
|||
} else {
|
||||
CloudRunnerLogger.log(`Max retained workspaces reached ${buildParameters.maxRetainedWorkspaces}`);
|
||||
buildParameters.maxRetainedWorkspaces = 0;
|
||||
CloudRunner.lockedWorkspace = undefined;
|
||||
CloudRunner.lockedWorkspace = ``;
|
||||
}
|
||||
}
|
||||
const content = { ...CloudRunner.buildParameters };
|
||||
|
|
@ -131,7 +131,7 @@ class CloudRunner {
|
|||
if (!CloudRunner.buildParameters.isCliMode) core.endGroup();
|
||||
await GitHub.updateGitHubCheck(CloudRunner.buildParameters.buildGuid, `success`, `success`, `completed`);
|
||||
|
||||
if (BuildParameters.useRetainedWorkspaceMode(buildParameters)) {
|
||||
if (BuildParameters.shouldUseRetainedWorkspaceMode(buildParameters)) {
|
||||
const workspace = CloudRunner.lockedWorkspace || ``;
|
||||
await SharedWorkspaceLocking.ReleaseWorkspace(
|
||||
workspace,
|
||||
|
|
@ -147,7 +147,7 @@ class CloudRunner {
|
|||
)}`,
|
||||
);
|
||||
}
|
||||
CloudRunner.lockedWorkspace = undefined;
|
||||
CloudRunner.lockedWorkspace = ``;
|
||||
}
|
||||
|
||||
await GitHub.triggerWorkflowOnComplete(CloudRunner.buildParameters.finalHooks);
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ class Kubernetes implements ProviderInterface {
|
|||
) {
|
||||
try {
|
||||
this.buildParameters = buildParameters;
|
||||
const id = BuildParameters.useRetainedWorkspaceMode(buildParameters)
|
||||
const id = BuildParameters.shouldUseRetainedWorkspaceMode(buildParameters)
|
||||
? CloudRunner.lockedWorkspace
|
||||
: buildParameters.buildGuid;
|
||||
this.pvcName = `unity-builder-pvc-${id}`;
|
||||
|
|
@ -334,7 +334,7 @@ class Kubernetes implements ProviderInterface {
|
|||
// eslint-disable-next-line no-unused-vars
|
||||
defaultSecretsArray: { ParameterKey: string; EnvironmentVariable: string; ParameterValue: string }[],
|
||||
) {
|
||||
if (BuildParameters.useRetainedWorkspaceMode(buildParameters)) {
|
||||
if (BuildParameters.shouldUseRetainedWorkspaceMode(buildParameters)) {
|
||||
return;
|
||||
}
|
||||
CloudRunnerLogger.log(`deleting PVC`);
|
||||
|
|
|
|||
|
|
@ -91,13 +91,13 @@ export class RemoteClient {
|
|||
private static async cloneRepoWithoutLFSFiles() {
|
||||
process.chdir(`${CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute}`);
|
||||
|
||||
if (BuildParameters.useRetainedWorkspaceMode(CloudRunner.buildParameters)) {
|
||||
if (BuildParameters.shouldUseRetainedWorkspaceMode(CloudRunner.buildParameters)) {
|
||||
if (fs.existsSync(path.join(CloudRunnerFolders.repoPathAbsolute, `.git`))) {
|
||||
process.chdir(CloudRunnerFolders.repoPathAbsolute);
|
||||
RemoteClientLogger.log(
|
||||
`${
|
||||
CloudRunnerFolders.repoPathAbsolute
|
||||
} repo exists - skipping clone - retained workspace mode ${BuildParameters.useRetainedWorkspaceMode(
|
||||
} repo exists - skipping clone - retained workspace mode ${BuildParameters.shouldUseRetainedWorkspaceMode(
|
||||
CloudRunner.buildParameters,
|
||||
)}`,
|
||||
);
|
||||
|
|
@ -162,7 +162,7 @@ export class RemoteClient {
|
|||
}
|
||||
}
|
||||
static async handleRetainedWorkspace() {
|
||||
if (!BuildParameters.useRetainedWorkspaceMode(CloudRunner.buildParameters)) {
|
||||
if (!BuildParameters.shouldUseRetainedWorkspaceMode(CloudRunner.buildParameters)) {
|
||||
return;
|
||||
}
|
||||
RemoteClientLogger.log(`Retained Workspace: ${CloudRunner.lockedWorkspace !== undefined}`);
|
||||
|
|
|
|||
|
|
@ -14,8 +14,8 @@ export class CloudRunnerFolders {
|
|||
|
||||
public static get uniqueCloudRunnerJobFolderAbsolute(): string {
|
||||
return CloudRunner.buildParameters &&
|
||||
BuildParameters.useRetainedWorkspaceMode(CloudRunner.buildParameters) &&
|
||||
CloudRunner.lockedWorkspace
|
||||
BuildParameters.shouldUseRetainedWorkspaceMode(CloudRunner.buildParameters) &&
|
||||
CloudRunner.lockedWorkspace !== ``
|
||||
? path.join(`/`, CloudRunnerFolders.buildVolumeFolder, CloudRunner.lockedWorkspace)
|
||||
: path.join(`/`, CloudRunnerFolders.buildVolumeFolder, CloudRunner.buildParameters.buildGuid);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ export class SharedWorkspaceLocking {
|
|||
.filter((x) => x.includes(workspace) && x.endsWith(`_lock`));
|
||||
}
|
||||
public static async GetLockedWorkspace(workspace: string, runId: string, buildParametersContext: BuildParameters) {
|
||||
if (!BuildParameters.useRetainedWorkspaceMode(buildParametersContext)) {
|
||||
if (!BuildParameters.shouldUseRetainedWorkspaceMode(buildParametersContext)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue