Only use locking in build workflow if retained workspaces is enabled

pull/461/head
Frostebite 2022-10-01 00:40:44 +01:00
parent 7bfb341904
commit 03aae52afe
3 changed files with 32 additions and 16 deletions

10
dist/index.js vendored
View File

@ -5012,8 +5012,14 @@ class BuildAutomationWorkflow {
// TODO accept post and pre build steps as yaml files in the repo
try {
cloud_runner_logger_1.default.log(`Cloud Runner is running standard build automation`);
if (cloud_runner_options_1.default.retainWorkspaces) {
const workspace = (yield shared_workspace_locking_1.default.GetLockedWorkspace(`test-workspace-${cloud_runner_1.default.buildParameters.buildGuid}`, cloud_runner_1.default.buildParameters.buildGuid)) || cloud_runner_1.default.buildParameters.buildGuid;
cloud_runner_logger_1.default.logLine(`Using workspace ${workspace}`);
cloudRunnerStepState.environment = [
...cloudRunnerStepState.environment,
{ name: `LOCKED_WORKSPACE`, value: workspace },
];
}
if (!cloud_runner_1.default.buildParameters.isCliMode)
core.startGroup('pre build steps');
let output = '';
@ -5028,7 +5034,7 @@ class BuildAutomationWorkflow {
cloud_runner_logger_1.default.log(baseImage.toString());
cloud_runner_logger_1.default.logLine(` `);
cloud_runner_logger_1.default.logLine('Starting build automation job');
output += yield cloud_runner_1.default.Provider.runTask(cloud_runner_1.default.buildParameters.buildGuid, baseImage.toString(), BuildAutomationWorkflow.BuildWorkflow, `/${cloud_runner_folders_1.CloudRunnerFolders.buildVolumeFolder}`, `/${cloud_runner_folders_1.CloudRunnerFolders.buildVolumeFolder}/`, [...cloudRunnerStepState.environment, { name: `LOCKED_WORKSPACE`, value: workspace }], cloudRunnerStepState.secrets);
output += yield cloud_runner_1.default.Provider.runTask(cloud_runner_1.default.buildParameters.buildGuid, baseImage.toString(), BuildAutomationWorkflow.BuildWorkflow, `/${cloud_runner_folders_1.CloudRunnerFolders.buildVolumeFolder}`, `/${cloud_runner_folders_1.CloudRunnerFolders.buildVolumeFolder}/`, cloudRunnerStepState.environment, cloudRunnerStepState.secrets);
if (!cloud_runner_1.default.buildParameters.isCliMode)
core.endGroup();
cloud_runner_logger_1.default.logWithTime('Build time');
@ -5040,7 +5046,9 @@ class BuildAutomationWorkflow {
if (!cloud_runner_1.default.buildParameters.isCliMode)
core.endGroup();
cloud_runner_logger_1.default.logWithTime('Configurable post build step(s) time');
if (cloud_runner_options_1.default.retainWorkspaces) {
yield shared_workspace_locking_1.default.ReleaseWorkspace(`test-workspace-${cloud_runner_1.default.buildParameters.buildGuid}`, cloud_runner_1.default.buildParameters.buildGuid);
}
cloud_runner_logger_1.default.log(`Cloud Runner finished running standard build automation`);
return output;
}

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -24,6 +24,7 @@ export class BuildAutomationWorkflow implements WorkflowInterface {
try {
CloudRunnerLogger.log(`Cloud Runner is running standard build automation`);
if (CloudRunnerOptions.retainWorkspaces) {
const workspace =
(await SharedWorkspaceLocking.GetLockedWorkspace(
`test-workspace-${CloudRunner.buildParameters.buildGuid}`,
@ -31,6 +32,11 @@ export class BuildAutomationWorkflow implements WorkflowInterface {
)) || CloudRunner.buildParameters.buildGuid;
CloudRunnerLogger.logLine(`Using workspace ${workspace}`);
cloudRunnerStepState.environment = [
...cloudRunnerStepState.environment,
{ name: `LOCKED_WORKSPACE`, value: workspace },
];
}
if (!CloudRunner.buildParameters.isCliMode) core.startGroup('pre build steps');
let output = '';
@ -55,7 +61,7 @@ export class BuildAutomationWorkflow implements WorkflowInterface {
BuildAutomationWorkflow.BuildWorkflow,
`/${CloudRunnerFolders.buildVolumeFolder}`,
`/${CloudRunnerFolders.buildVolumeFolder}/`,
[...cloudRunnerStepState.environment, { name: `LOCKED_WORKSPACE`, value: workspace }],
cloudRunnerStepState.environment,
cloudRunnerStepState.secrets,
);
if (!CloudRunner.buildParameters.isCliMode) core.endGroup();
@ -72,10 +78,12 @@ export class BuildAutomationWorkflow implements WorkflowInterface {
if (!CloudRunner.buildParameters.isCliMode) core.endGroup();
CloudRunnerLogger.logWithTime('Configurable post build step(s) time');
if (CloudRunnerOptions.retainWorkspaces) {
await SharedWorkspaceLocking.ReleaseWorkspace(
`test-workspace-${CloudRunner.buildParameters.buildGuid}`,
CloudRunner.buildParameters.buildGuid,
);
}
CloudRunnerLogger.log(`Cloud Runner finished running standard build automation`);