retained workspace for k8s
parent
0db50a063f
commit
e4b6a149f2
|
|
@ -896,6 +896,8 @@ const test_1 = __importDefault(__nccwpck_require__(63007));
|
||||||
const local_1 = __importDefault(__nccwpck_require__(66575));
|
const local_1 = __importDefault(__nccwpck_require__(66575));
|
||||||
const local_docker_1 = __importDefault(__nccwpck_require__(55723));
|
const local_docker_1 = __importDefault(__nccwpck_require__(55723));
|
||||||
const github_1 = __importDefault(__nccwpck_require__(83654));
|
const github_1 = __importDefault(__nccwpck_require__(83654));
|
||||||
|
const cloud_runner_options_1 = __importDefault(__nccwpck_require__(96552));
|
||||||
|
const shared_workspace_locking_1 = __importDefault(__nccwpck_require__(87562));
|
||||||
class CloudRunner {
|
class CloudRunner {
|
||||||
static setup(buildParameters) {
|
static setup(buildParameters) {
|
||||||
cloud_runner_logger_1.default.setup();
|
cloud_runner_logger_1.default.setup();
|
||||||
|
|
@ -939,6 +941,16 @@ 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) {
|
||||||
|
const workspace = (yield shared_workspace_locking_1.default.GetOrCreateLockedWorkspace(`test-workspace-${CloudRunner.buildParameters.buildGuid}`, CloudRunner.buildParameters.buildGuid, CloudRunner.buildParameters)) || CloudRunner.buildParameters.buildGuid;
|
||||||
|
process.env.LOCKED_WORKSPACE = workspace;
|
||||||
|
CloudRunner.lockedWorkspace = workspace;
|
||||||
|
cloud_runner_logger_1.default.logLine(`Using workspace ${workspace}`);
|
||||||
|
CloudRunner.cloudRunnerEnvironmentVariables = [
|
||||||
|
...CloudRunner.cloudRunnerEnvironmentVariables,
|
||||||
|
{ name: `LOCKED_WORKSPACE`, value: workspace },
|
||||||
|
];
|
||||||
|
}
|
||||||
if (!CloudRunner.buildParameters.isCliMode)
|
if (!CloudRunner.buildParameters.isCliMode)
|
||||||
core.startGroup('Setup shared cloud runner resources');
|
core.startGroup('Setup shared cloud runner resources');
|
||||||
yield CloudRunner.Provider.setup(CloudRunner.buildParameters.buildGuid, CloudRunner.buildParameters, CloudRunner.buildParameters.branch, CloudRunner.defaultSecrets);
|
yield CloudRunner.Provider.setup(CloudRunner.buildParameters.buildGuid, CloudRunner.buildParameters, CloudRunner.buildParameters.branch, CloudRunner.defaultSecrets);
|
||||||
|
|
@ -951,6 +963,10 @@ class CloudRunner {
|
||||||
cloud_runner_logger_1.default.log(`Cleanup complete`);
|
cloud_runner_logger_1.default.log(`Cleanup complete`);
|
||||||
if (!CloudRunner.buildParameters.isCliMode)
|
if (!CloudRunner.buildParameters.isCliMode)
|
||||||
core.endGroup();
|
core.endGroup();
|
||||||
|
if (cloud_runner_options_1.default.retainWorkspaces) {
|
||||||
|
yield shared_workspace_locking_1.default.ReleaseWorkspace(`test-workspace-${CloudRunner.buildParameters.buildGuid}`, CloudRunner.buildParameters.buildGuid, CloudRunner.buildParameters);
|
||||||
|
CloudRunner.lockedWorkspace = undefined;
|
||||||
|
}
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
|
|
@ -2816,7 +2832,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
const k8s = __importStar(__nccwpck_require__(89679));
|
const k8s = __importStar(__nccwpck_require__(89679));
|
||||||
const __1 = __nccwpck_require__(41359);
|
|
||||||
const core = __importStar(__nccwpck_require__(42186));
|
const core = __importStar(__nccwpck_require__(42186));
|
||||||
const kubernetes_storage_1 = __importDefault(__nccwpck_require__(49043));
|
const kubernetes_storage_1 = __importDefault(__nccwpck_require__(49043));
|
||||||
const kubernetes_task_runner_1 = __importDefault(__nccwpck_require__(70801));
|
const kubernetes_task_runner_1 = __importDefault(__nccwpck_require__(70801));
|
||||||
|
|
@ -2825,6 +2840,7 @@ const async_wait_until_1 = __importDefault(__nccwpck_require__(41299));
|
||||||
const kubernetes_job_spec_factory_1 = __importDefault(__nccwpck_require__(3610));
|
const kubernetes_job_spec_factory_1 = __importDefault(__nccwpck_require__(3610));
|
||||||
const kubernetes_service_account_1 = __importDefault(__nccwpck_require__(47319));
|
const kubernetes_service_account_1 = __importDefault(__nccwpck_require__(47319));
|
||||||
const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855));
|
const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855));
|
||||||
|
const cloud_runner_1 = __importDefault(__nccwpck_require__(79144));
|
||||||
class Kubernetes {
|
class Kubernetes {
|
||||||
constructor(buildParameters) {
|
constructor(buildParameters) {
|
||||||
this.buildGuid = '';
|
this.buildGuid = '';
|
||||||
|
|
@ -2866,8 +2882,8 @@ class Kubernetes {
|
||||||
defaultSecretsArray) {
|
defaultSecretsArray) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
try {
|
try {
|
||||||
const id = buildParameters.retainWorkspace && __1.CloudRunner.lockedWorkspace
|
const id = buildParameters.retainWorkspace && cloud_runner_1.default.lockedWorkspace
|
||||||
? __1.CloudRunner.lockedWorkspace
|
? cloud_runner_1.default.lockedWorkspace
|
||||||
: buildParameters.buildGuid;
|
: buildParameters.buildGuid;
|
||||||
this.pvcName = `unity-builder-pvc-${id}`;
|
this.pvcName = `unity-builder-pvc-${id}`;
|
||||||
this.cleanupCronJobName = `unity-builder-cronjob-${id}`;
|
this.cleanupCronJobName = `unity-builder-cronjob-${id}`;
|
||||||
|
|
@ -5474,7 +5490,6 @@ const cloud_runner_custom_hooks_1 = __nccwpck_require__(58873);
|
||||||
const path_1 = __importDefault(__nccwpck_require__(71017));
|
const path_1 = __importDefault(__nccwpck_require__(71017));
|
||||||
const cloud_runner_1 = __importDefault(__nccwpck_require__(79144));
|
const cloud_runner_1 = __importDefault(__nccwpck_require__(79144));
|
||||||
const cloud_runner_options_1 = __importDefault(__nccwpck_require__(96552));
|
const cloud_runner_options_1 = __importDefault(__nccwpck_require__(96552));
|
||||||
const shared_workspace_locking_1 = __importDefault(__nccwpck_require__(87562));
|
|
||||||
const cloud_runner_custom_steps_1 = __nccwpck_require__(96455);
|
const cloud_runner_custom_steps_1 = __nccwpck_require__(96455);
|
||||||
class BuildAutomationWorkflow {
|
class BuildAutomationWorkflow {
|
||||||
run(cloudRunnerStepState) {
|
run(cloudRunnerStepState) {
|
||||||
|
|
@ -5492,16 +5507,6 @@ class BuildAutomationWorkflow {
|
||||||
// TODO accept post and pre build steps as yaml files in the repo
|
// TODO accept post and pre build steps as yaml files in the repo
|
||||||
try {
|
try {
|
||||||
cloud_runner_logger_1.default.log(`Cloud Runner is running standard build automation`);
|
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.GetOrCreateLockedWorkspace(`test-workspace-${cloud_runner_1.default.buildParameters.buildGuid}`, cloud_runner_1.default.buildParameters.buildGuid, cloud_runner_1.default.buildParameters)) || cloud_runner_1.default.buildParameters.buildGuid;
|
|
||||||
process.env.LOCKED_WORKSPACE = workspace;
|
|
||||||
cloud_runner_1.default.lockedWorkspace = workspace;
|
|
||||||
cloud_runner_logger_1.default.logLine(`Using workspace ${workspace}`);
|
|
||||||
cloudRunnerStepState.environment = [
|
|
||||||
...cloudRunnerStepState.environment,
|
|
||||||
{ name: `LOCKED_WORKSPACE`, value: workspace },
|
|
||||||
];
|
|
||||||
}
|
|
||||||
let output = '';
|
let output = '';
|
||||||
output += yield cloud_runner_custom_steps_1.CloudRunnerCustomSteps.RunPreBuildSteps(cloudRunnerStepState);
|
output += yield cloud_runner_custom_steps_1.CloudRunnerCustomSteps.RunPreBuildSteps(cloudRunnerStepState);
|
||||||
cloud_runner_logger_1.default.logWithTime('Configurable pre build step(s) time');
|
cloud_runner_logger_1.default.logWithTime('Configurable pre build step(s) time');
|
||||||
|
|
@ -5516,10 +5521,6 @@ class BuildAutomationWorkflow {
|
||||||
cloud_runner_logger_1.default.logWithTime('Build time');
|
cloud_runner_logger_1.default.logWithTime('Build time');
|
||||||
output += yield cloud_runner_custom_steps_1.CloudRunnerCustomSteps.RunPostBuildSteps(cloudRunnerStepState);
|
output += yield cloud_runner_custom_steps_1.CloudRunnerCustomSteps.RunPostBuildSteps(cloudRunnerStepState);
|
||||||
cloud_runner_logger_1.default.logWithTime('Configurable post build step(s) time');
|
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_1.default.buildParameters);
|
|
||||||
cloud_runner_1.default.lockedWorkspace = undefined;
|
|
||||||
}
|
|
||||||
cloud_runner_logger_1.default.log(`Cloud Runner finished running standard build automation`);
|
cloud_runner_logger_1.default.log(`Cloud Runner finished running standard build automation`);
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -14,6 +14,8 @@ import TestCloudRunner from './providers/test';
|
||||||
import LocalCloudRunner from './providers/local';
|
import LocalCloudRunner from './providers/local';
|
||||||
import LocalDockerCloudRunner from './providers/local-docker';
|
import LocalDockerCloudRunner from './providers/local-docker';
|
||||||
import GitHub from '../github';
|
import GitHub from '../github';
|
||||||
|
import CloudRunnerOptions from './cloud-runner-options';
|
||||||
|
import SharedWorkspaceLocking from './services/shared-workspace-locking';
|
||||||
|
|
||||||
class CloudRunner {
|
class CloudRunner {
|
||||||
public static Provider: ProviderInterface;
|
public static Provider: ProviderInterface;
|
||||||
|
|
@ -64,6 +66,23 @@ 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) {
|
||||||
|
const workspace =
|
||||||
|
(await SharedWorkspaceLocking.GetOrCreateLockedWorkspace(
|
||||||
|
`test-workspace-${CloudRunner.buildParameters.buildGuid}`,
|
||||||
|
CloudRunner.buildParameters.buildGuid,
|
||||||
|
CloudRunner.buildParameters,
|
||||||
|
)) || CloudRunner.buildParameters.buildGuid;
|
||||||
|
|
||||||
|
process.env.LOCKED_WORKSPACE = workspace;
|
||||||
|
CloudRunner.lockedWorkspace = workspace;
|
||||||
|
|
||||||
|
CloudRunnerLogger.logLine(`Using workspace ${workspace}`);
|
||||||
|
CloudRunner.cloudRunnerEnvironmentVariables = [
|
||||||
|
...CloudRunner.cloudRunnerEnvironmentVariables,
|
||||||
|
{ name: `LOCKED_WORKSPACE`, value: workspace },
|
||||||
|
];
|
||||||
|
}
|
||||||
if (!CloudRunner.buildParameters.isCliMode) core.startGroup('Setup shared cloud runner resources');
|
if (!CloudRunner.buildParameters.isCliMode) core.startGroup('Setup shared cloud runner resources');
|
||||||
await CloudRunner.Provider.setup(
|
await CloudRunner.Provider.setup(
|
||||||
CloudRunner.buildParameters.buildGuid,
|
CloudRunner.buildParameters.buildGuid,
|
||||||
|
|
@ -85,6 +104,15 @@ class CloudRunner {
|
||||||
CloudRunnerLogger.log(`Cleanup complete`);
|
CloudRunnerLogger.log(`Cleanup complete`);
|
||||||
if (!CloudRunner.buildParameters.isCliMode) core.endGroup();
|
if (!CloudRunner.buildParameters.isCliMode) core.endGroup();
|
||||||
|
|
||||||
|
if (CloudRunnerOptions.retainWorkspaces) {
|
||||||
|
await SharedWorkspaceLocking.ReleaseWorkspace(
|
||||||
|
`test-workspace-${CloudRunner.buildParameters.buildGuid}`,
|
||||||
|
CloudRunner.buildParameters.buildGuid,
|
||||||
|
CloudRunner.buildParameters,
|
||||||
|
);
|
||||||
|
CloudRunner.lockedWorkspace = undefined;
|
||||||
|
}
|
||||||
|
|
||||||
return output;
|
return output;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (!CloudRunner.buildParameters.isCliMode) core.endGroup();
|
if (!CloudRunner.buildParameters.isCliMode) core.endGroup();
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import * as k8s from '@kubernetes/client-node';
|
import * as k8s from '@kubernetes/client-node';
|
||||||
import { BuildParameters, CloudRunner } from '../../..';
|
import { BuildParameters } from '../../..';
|
||||||
import * as core from '@actions/core';
|
import * as core from '@actions/core';
|
||||||
import { ProviderInterface } from '../provider-interface';
|
import { ProviderInterface } from '../provider-interface';
|
||||||
import CloudRunnerSecret from '../../services/cloud-runner-secret';
|
import CloudRunnerSecret from '../../services/cloud-runner-secret';
|
||||||
|
|
@ -12,6 +12,7 @@ import KubernetesJobSpecFactory from './kubernetes-job-spec-factory';
|
||||||
import KubernetesServiceAccount from './kubernetes-service-account';
|
import KubernetesServiceAccount from './kubernetes-service-account';
|
||||||
import CloudRunnerLogger from '../../services/cloud-runner-logger';
|
import CloudRunnerLogger from '../../services/cloud-runner-logger';
|
||||||
import { CoreV1Api } from '@kubernetes/client-node';
|
import { CoreV1Api } from '@kubernetes/client-node';
|
||||||
|
import CloudRunner from '../../cloud-runner';
|
||||||
|
|
||||||
class Kubernetes implements ProviderInterface {
|
class Kubernetes implements ProviderInterface {
|
||||||
private kubeConfig: k8s.KubeConfig;
|
private kubeConfig: k8s.KubeConfig;
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ import { CloudRunnerCustomHooks } from '../services/cloud-runner-custom-hooks';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import CloudRunner from '../cloud-runner';
|
import CloudRunner from '../cloud-runner';
|
||||||
import CloudRunnerOptions from '../cloud-runner-options';
|
import CloudRunnerOptions from '../cloud-runner-options';
|
||||||
import SharedWorkspaceLocking from '../services/shared-workspace-locking';
|
|
||||||
import { CloudRunnerCustomSteps } from '../services/cloud-runner-custom-steps';
|
import { CloudRunnerCustomSteps } from '../services/cloud-runner-custom-steps';
|
||||||
|
|
||||||
export class BuildAutomationWorkflow implements WorkflowInterface {
|
export class BuildAutomationWorkflow implements WorkflowInterface {
|
||||||
|
|
@ -24,24 +23,6 @@ export class BuildAutomationWorkflow implements WorkflowInterface {
|
||||||
try {
|
try {
|
||||||
CloudRunnerLogger.log(`Cloud Runner is running standard build automation`);
|
CloudRunnerLogger.log(`Cloud Runner is running standard build automation`);
|
||||||
|
|
||||||
if (CloudRunnerOptions.retainWorkspaces) {
|
|
||||||
const workspace =
|
|
||||||
(await SharedWorkspaceLocking.GetOrCreateLockedWorkspace(
|
|
||||||
`test-workspace-${CloudRunner.buildParameters.buildGuid}`,
|
|
||||||
CloudRunner.buildParameters.buildGuid,
|
|
||||||
CloudRunner.buildParameters,
|
|
||||||
)) || CloudRunner.buildParameters.buildGuid;
|
|
||||||
|
|
||||||
process.env.LOCKED_WORKSPACE = workspace;
|
|
||||||
CloudRunner.lockedWorkspace = workspace;
|
|
||||||
|
|
||||||
CloudRunnerLogger.logLine(`Using workspace ${workspace}`);
|
|
||||||
cloudRunnerStepState.environment = [
|
|
||||||
...cloudRunnerStepState.environment,
|
|
||||||
{ name: `LOCKED_WORKSPACE`, value: workspace },
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
let output = '';
|
let output = '';
|
||||||
|
|
||||||
output += await CloudRunnerCustomSteps.RunPreBuildSteps(cloudRunnerStepState);
|
output += await CloudRunnerCustomSteps.RunPreBuildSteps(cloudRunnerStepState);
|
||||||
|
|
@ -67,15 +48,6 @@ export class BuildAutomationWorkflow implements WorkflowInterface {
|
||||||
output += await CloudRunnerCustomSteps.RunPostBuildSteps(cloudRunnerStepState);
|
output += await CloudRunnerCustomSteps.RunPostBuildSteps(cloudRunnerStepState);
|
||||||
CloudRunnerLogger.logWithTime('Configurable post build step(s) time');
|
CloudRunnerLogger.logWithTime('Configurable post build step(s) time');
|
||||||
|
|
||||||
if (CloudRunnerOptions.retainWorkspaces) {
|
|
||||||
await SharedWorkspaceLocking.ReleaseWorkspace(
|
|
||||||
`test-workspace-${CloudRunner.buildParameters.buildGuid}`,
|
|
||||||
CloudRunner.buildParameters.buildGuid,
|
|
||||||
CloudRunner.buildParameters,
|
|
||||||
);
|
|
||||||
CloudRunner.lockedWorkspace = undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
CloudRunnerLogger.log(`Cloud Runner finished running standard build automation`);
|
CloudRunnerLogger.log(`Cloud Runner finished running standard build automation`);
|
||||||
|
|
||||||
return output;
|
return output;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue