Refactor state and steps out of cloud-runner main class

pull/310/head
Frostebite 2021-10-05 00:23:49 +01:00
parent c121a1f2f6
commit c3e7ba5704
29 changed files with 629 additions and 629 deletions

1128
dist/index.js vendored

File diff suppressed because it is too large Load Diff

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
import CloudRunnerLogger from '../cloud-runner-services/cloud-runner-logger';
import CloudRunnerLogger from '../services/cloud-runner-logger';
import * as core from '@actions/core';
import * as SDK from 'aws-sdk';
import * as fs from 'fs';

View File

@ -1,11 +1,11 @@
import * as SDK from 'aws-sdk';
import CloudRunnerSecret from '../cloud-runner-services/cloud-runner-secret';
import CloudRunnerEnvironmentVariable from '../cloud-runner-services/cloud-runner-environment-variable';
import CloudRunnerTaskDef from '../cloud-runner-services/cloud-runner-task-def';
import CloudRunnerSecret from '../services/cloud-runner-secret';
import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment-variable';
import CloudRunnerTaskDef from '../services/cloud-runner-task-def';
import AWSBuildRunner from './aws-build-runner';
import { CloudRunnerProviderInterface } from '../cloud-runner-services/cloud-runner-provider-interface';
import { CloudRunnerProviderInterface } from '../services/cloud-runner-provider-interface';
import BuildParameters from '../../build-parameters';
import CloudRunnerLogger from '../cloud-runner-services/cloud-runner-logger';
import CloudRunnerLogger from '../services/cloud-runner-logger';
import { AWSJobStack } from './aws-job-stack';
class AWSBuildEnvironment implements CloudRunnerProviderInterface {

View File

@ -1,9 +1,9 @@
import * as AWS from 'aws-sdk';
import CloudRunnerEnvironmentVariable from '../cloud-runner-services/cloud-runner-environment-variable';
import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment-variable';
import * as core from '@actions/core';
import CloudRunnerTaskDef from '../cloud-runner-services/cloud-runner-task-def';
import CloudRunnerTaskDef from '../services/cloud-runner-task-def';
import * as zlib from 'zlib';
import CloudRunnerLogger from '../cloud-runner-services/cloud-runner-logger';
import CloudRunnerLogger from '../services/cloud-runner-logger';
class AWSBuildRunner {
static async runTask(

View File

@ -1,5 +1,5 @@
import CloudRunnerLogger from '../cloud-runner-services/cloud-runner-logger';
import CloudRunnerSecret from '../cloud-runner-services/cloud-runner-secret';
import CloudRunnerLogger from '../services/cloud-runner-logger';
import CloudRunnerSecret from '../services/cloud-runner-secret';
import * as SDK from 'aws-sdk';
import * as core from '@actions/core';

View File

@ -1,11 +1,11 @@
import * as SDK from 'aws-sdk';
import CloudRunnerTaskDef from '../cloud-runner-services/cloud-runner-task-def';
import CloudRunnerSecret from '../cloud-runner-services/cloud-runner-secret';
import CloudRunnerConstants from '../cloud-runner-services/cloud-runner-constants';
import CloudRunnerTaskDef from '../services/cloud-runner-task-def';
import CloudRunnerSecret from '../services/cloud-runner-secret';
import CloudRunnerConstants from '../services/cloud-runner-constants';
import { customAlphabet } from 'nanoid';
import { AWSBaseStack } from './aws-base-stack';
import { AWSTemplates } from './aws-templates';
import CloudRunnerLogger from '../cloud-runner-services/cloud-runner-logger';
import CloudRunnerLogger from '../services/cloud-runner-logger';
import * as fs from 'fs';
import { AWSError } from './aws-error';

View File

@ -1,16 +1,16 @@
import AWSBuildPlatform from './aws/aws-build-platform';
import * as core from '@actions/core';
import { BuildParameters } from '..';
import CloudRunnerNamespace from './cloud-runner-services/cloud-runner-namespace';
import { CloudRunnerState } from './cloud-runner-state/cloud-runner-state';
import CloudRunnerNamespace from './services/cloud-runner-namespace';
import { CloudRunnerState } from './state/cloud-runner-state';
import Kubernetes from './k8s/kubernetes-build-platform';
import CloudRunnerLogger from './cloud-runner-services/cloud-runner-logger';
import { BuildStep } from './cloud-runner-steps/build-step';
import { CompressionStep } from './cloud-runner-steps/compression-step';
import { DownloadRepositoryStep } from './cloud-runner-steps/download-repository-step';
import { CustomStep } from './cloud-runner-steps/custom-step';
import { EphemeralGitHubRunnerStep } from './cloud-runner-steps/ephemeral-github-runner-step';
import { CloudRunnerStepState } from './cloud-runner-state/cloud-runner-step-state';
import CloudRunnerLogger from './services/cloud-runner-logger';
import { BuildStep } from './steps/build-step';
import { CompressionStep } from './steps/compression-step';
import { DownloadRepositoryStep } from './steps/download-repository-step';
import { CustomStep } from './steps/custom-step';
import { EphemeralGitHubRunnerStep } from './steps/ephemeral-github-runner-step';
import { CloudRunnerStepState } from './state/cloud-runner-step-state';
class CloudRunner {
private static setup(buildParameters: BuildParameters) {

View File

@ -1,17 +1,17 @@
import * as k8s from '@kubernetes/client-node';
import { BuildParameters } from '../..';
import * as core from '@actions/core';
import { CloudRunnerProviderInterface } from '../cloud-runner-services/cloud-runner-provider-interface';
import CloudRunnerSecret from '../cloud-runner-services/cloud-runner-secret';
import { CloudRunnerProviderInterface } from '../services/cloud-runner-provider-interface';
import CloudRunnerSecret from '../services/cloud-runner-secret';
import KubernetesStorage from './kubernetes-storage';
import CloudRunnerEnvironmentVariable from '../cloud-runner-services/cloud-runner-environment-variable';
import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment-variable';
import KubernetesLogging from './kubernetes-logging';
import KubernetesSecret from './kubernetes-secret';
import KubernetesUtilities from './kubernetes-utils';
import waitUntil from 'async-wait-until';
import KubernetesJobSpecFactory from './kubernetes-job-spec-factory';
import KubernetesServiceAccount from './kubernetes-service-account';
import CloudRunnerLogger from '../cloud-runner-services/cloud-runner-logger';
import CloudRunnerLogger from '../services/cloud-runner-logger';
class Kubernetes implements CloudRunnerProviderInterface {
private kubeConfig: k8s.KubeConfig;

View File

@ -1,5 +1,5 @@
import BuildParameters from '../../build-parameters';
import CloudRunnerEnvironmentVariable from '../cloud-runner-services/cloud-runner-environment-variable';
import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment-variable';
class KubernetesJobSpecFactory {
static getJobSpec(

View File

@ -1,6 +1,6 @@
import { CoreV1Api, KubeConfig, Log } from '@kubernetes/client-node';
import { Writable } from 'stream';
import CloudRunnerLogger from '../cloud-runner-services/cloud-runner-logger';
import CloudRunnerLogger from '../services/cloud-runner-logger';
class KubernetesLogging {
static async streamLogs(

View File

@ -1,5 +1,5 @@
import { CoreV1Api } from '@kubernetes/client-node';
import CloudRunnerSecret from '../cloud-runner-services/cloud-runner-secret';
import CloudRunnerSecret from '../services/cloud-runner-secret';
import * as k8s from '@kubernetes/client-node';
const base64 = require('base-64');

View File

@ -2,7 +2,7 @@ import waitUntil from 'async-wait-until';
import * as core from '@actions/core';
import * as k8s from '@kubernetes/client-node';
import BuildParameters from '../../build-parameters';
import CloudRunnerLogger from '../cloud-runner-services/cloud-runner-logger';
import CloudRunnerLogger from '../services/cloud-runner-logger';
class KubernetesStorage {
public static async createPersistentVolumeClaim(

View File

@ -1,6 +1,6 @@
import { CoreV1Api } from '@kubernetes/client-node';
import waitUntil from 'async-wait-until';
import CloudRunnerLogger from '../cloud-runner-services/cloud-runner-logger';
import CloudRunnerLogger from '../services/cloud-runner-logger';
class KubernetesUtilities {
static async findPodFromJob(kubeClient: CoreV1Api, jobName: string, namespace: string) {

View File

@ -1,8 +1,8 @@
import { BuildParameters } from '../..';
import { CloudRunnerProviderInterface } from '../cloud-runner-services/cloud-runner-provider-interface';
import CloudRunnerSecret from '../cloud-runner-services/cloud-runner-secret';
import CloudRunnerEnvironmentVariable from '../cloud-runner-services/cloud-runner-environment-variable';
import ImageEnvironmentFactory from '../../image-environment-factory';
import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment-variable';
import { CloudRunnerProviderInterface } from '../services/cloud-runner-provider-interface';
import CloudRunnerSecret from '../services/cloud-runner-secret';
export class CloudRunnerState {
public static CloudRunnerProviderPlatform: CloudRunnerProviderInterface;

View File

@ -1,5 +1,5 @@
import CloudRunnerEnvironmentVariable from '../cloud-runner-services/cloud-runner-environment-variable';
import CloudRunnerSecret from '../cloud-runner-services/cloud-runner-secret';
import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment-variable';
import CloudRunnerSecret from '../services/cloud-runner-secret';
export class CloudRunnerStepState {
public image: string;

View File

@ -1,8 +1,8 @@
import CloudRunnerEnvironmentVariable from '../cloud-runner-services/cloud-runner-environment-variable';
import CloudRunnerLogger from '../cloud-runner-services/cloud-runner-logger';
import CloudRunnerSecret from '../cloud-runner-services/cloud-runner-secret';
import { CloudRunnerState } from '../cloud-runner-state/cloud-runner-state';
import { CloudRunnerStepState } from '../cloud-runner-state/cloud-runner-step-state';
import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment-variable';
import CloudRunnerLogger from '../services/cloud-runner-logger';
import CloudRunnerSecret from '../services/cloud-runner-secret';
import { CloudRunnerState } from '../state/cloud-runner-state';
import { CloudRunnerStepState } from '../state/cloud-runner-step-state';
import { StandardStepInterface } from './standard-step-interface';
export class BuildStep implements StandardStepInterface {

View File

@ -1,8 +1,8 @@
import CloudRunnerEnvironmentVariable from '../cloud-runner-services/cloud-runner-environment-variable';
import CloudRunnerLogger from '../cloud-runner-services/cloud-runner-logger';
import CloudRunnerSecret from '../cloud-runner-services/cloud-runner-secret';
import { CloudRunnerState } from '../cloud-runner-state/cloud-runner-state';
import { CloudRunnerStepState } from '../cloud-runner-state/cloud-runner-step-state';
import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment-variable';
import CloudRunnerLogger from '../services/cloud-runner-logger';
import CloudRunnerSecret from '../services/cloud-runner-secret';
import { CloudRunnerState } from '../state/cloud-runner-state';
import { CloudRunnerStepState } from '../state/cloud-runner-step-state';
import { StandardStepInterface } from './standard-step-interface';
export class CompressionStep implements StandardStepInterface {

View File

@ -1,6 +1,6 @@
import CloudRunnerLogger from '../cloud-runner-services/cloud-runner-logger';
import CloudRunnerSecret from '../cloud-runner-services/cloud-runner-secret';
import { CloudRunnerState } from '../cloud-runner-state/cloud-runner-state';
import CloudRunnerLogger from '../services/cloud-runner-logger';
import CloudRunnerSecret from '../services/cloud-runner-secret';
import { CloudRunnerState } from '../state/cloud-runner-state';
import YAML from 'yaml';
export class CustomStep {

View File

@ -1,8 +1,8 @@
import CloudRunnerEnvironmentVariable from '../cloud-runner-services/cloud-runner-environment-variable';
import CloudRunnerLogger from '../cloud-runner-services/cloud-runner-logger';
import CloudRunnerSecret from '../cloud-runner-services/cloud-runner-secret';
import { CloudRunnerState } from '../cloud-runner-state/cloud-runner-state';
import { CloudRunnerStepState } from '../cloud-runner-state/cloud-runner-step-state';
import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment-variable';
import CloudRunnerLogger from '../services/cloud-runner-logger';
import CloudRunnerSecret from '../services/cloud-runner-secret';
import { CloudRunnerState } from '../state/cloud-runner-state';
import { CloudRunnerStepState } from '../state/cloud-runner-step-state';
import { StandardStepInterface } from './standard-step-interface';
export class DownloadRepositoryStep implements StandardStepInterface {

View File

@ -1,8 +1,8 @@
import CloudRunnerEnvironmentVariable from '../cloud-runner-services/cloud-runner-environment-variable';
import CloudRunnerLogger from '../cloud-runner-services/cloud-runner-logger';
import CloudRunnerSecret from '../cloud-runner-services/cloud-runner-secret';
import { CloudRunnerState } from '../cloud-runner-state/cloud-runner-state';
import { CloudRunnerStepState } from '../cloud-runner-state/cloud-runner-step-state';
import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment-variable';
import CloudRunnerLogger from '../services/cloud-runner-logger';
import CloudRunnerSecret from '../services/cloud-runner-secret';
import { CloudRunnerState } from '../state/cloud-runner-state';
import { CloudRunnerStepState } from '../state/cloud-runner-step-state';
import { StandardStepInterface } from './standard-step-interface';
export class EphemeralGitHubRunnerStep implements StandardStepInterface {
@ -26,8 +26,8 @@ export class EphemeralGitHubRunnerStep implements StandardStepInterface {
CloudRunnerState.buildGuid,
image,
[installAndStartRunner],
`/${CloudRunnerState.buildVolumeFolder}`,
`/${CloudRunnerState.buildVolumeFolder}`,
``,
``,
environmentVariables,
secrets,
);

View File

@ -1,4 +1,4 @@
import { CloudRunnerStepState } from '../cloud-runner-state/cloud-runner-step-state';
import { CloudRunnerStepState } from '../state/cloud-runner-step-state';
export interface StandardStepInterface {
run(