Refactor state and steps out of cloud-runner main class
parent
c121a1f2f6
commit
c3e7ba5704
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
|
@ -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 core from '@actions/core';
|
||||||
import * as SDK from 'aws-sdk';
|
import * as SDK from 'aws-sdk';
|
||||||
import * as fs from 'fs';
|
import * as fs from 'fs';
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
import * as SDK from 'aws-sdk';
|
import * as SDK from 'aws-sdk';
|
||||||
import CloudRunnerSecret from '../cloud-runner-services/cloud-runner-secret';
|
import CloudRunnerSecret from '../services/cloud-runner-secret';
|
||||||
import CloudRunnerEnvironmentVariable from '../cloud-runner-services/cloud-runner-environment-variable';
|
import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment-variable';
|
||||||
import CloudRunnerTaskDef from '../cloud-runner-services/cloud-runner-task-def';
|
import CloudRunnerTaskDef from '../services/cloud-runner-task-def';
|
||||||
import AWSBuildRunner from './aws-build-runner';
|
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 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';
|
import { AWSJobStack } from './aws-job-stack';
|
||||||
|
|
||||||
class AWSBuildEnvironment implements CloudRunnerProviderInterface {
|
class AWSBuildEnvironment implements CloudRunnerProviderInterface {
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
import * as AWS from 'aws-sdk';
|
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 * 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 * as zlib from 'zlib';
|
||||||
import CloudRunnerLogger from '../cloud-runner-services/cloud-runner-logger';
|
import CloudRunnerLogger from '../services/cloud-runner-logger';
|
||||||
|
|
||||||
class AWSBuildRunner {
|
class AWSBuildRunner {
|
||||||
static async runTask(
|
static async runTask(
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import CloudRunnerLogger from '../cloud-runner-services/cloud-runner-logger';
|
import CloudRunnerLogger from '../services/cloud-runner-logger';
|
||||||
import CloudRunnerSecret from '../cloud-runner-services/cloud-runner-secret';
|
import CloudRunnerSecret from '../services/cloud-runner-secret';
|
||||||
import * as SDK from 'aws-sdk';
|
import * as SDK from 'aws-sdk';
|
||||||
import * as core from '@actions/core';
|
import * as core from '@actions/core';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
import * as SDK from 'aws-sdk';
|
import * as SDK from 'aws-sdk';
|
||||||
import CloudRunnerTaskDef from '../cloud-runner-services/cloud-runner-task-def';
|
import CloudRunnerTaskDef from '../services/cloud-runner-task-def';
|
||||||
import CloudRunnerSecret from '../cloud-runner-services/cloud-runner-secret';
|
import CloudRunnerSecret from '../services/cloud-runner-secret';
|
||||||
import CloudRunnerConstants from '../cloud-runner-services/cloud-runner-constants';
|
import CloudRunnerConstants from '../services/cloud-runner-constants';
|
||||||
import { customAlphabet } from 'nanoid';
|
import { customAlphabet } from 'nanoid';
|
||||||
import { AWSBaseStack } from './aws-base-stack';
|
import { AWSBaseStack } from './aws-base-stack';
|
||||||
import { AWSTemplates } from './aws-templates';
|
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 * as fs from 'fs';
|
||||||
import { AWSError } from './aws-error';
|
import { AWSError } from './aws-error';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,16 @@
|
||||||
import AWSBuildPlatform from './aws/aws-build-platform';
|
import AWSBuildPlatform from './aws/aws-build-platform';
|
||||||
import * as core from '@actions/core';
|
import * as core from '@actions/core';
|
||||||
import { BuildParameters } from '..';
|
import { BuildParameters } from '..';
|
||||||
import CloudRunnerNamespace from './cloud-runner-services/cloud-runner-namespace';
|
import CloudRunnerNamespace from './services/cloud-runner-namespace';
|
||||||
import { CloudRunnerState } from './cloud-runner-state/cloud-runner-state';
|
import { CloudRunnerState } from './state/cloud-runner-state';
|
||||||
import Kubernetes from './k8s/kubernetes-build-platform';
|
import Kubernetes from './k8s/kubernetes-build-platform';
|
||||||
import CloudRunnerLogger from './cloud-runner-services/cloud-runner-logger';
|
import CloudRunnerLogger from './services/cloud-runner-logger';
|
||||||
import { BuildStep } from './cloud-runner-steps/build-step';
|
import { BuildStep } from './steps/build-step';
|
||||||
import { CompressionStep } from './cloud-runner-steps/compression-step';
|
import { CompressionStep } from './steps/compression-step';
|
||||||
import { DownloadRepositoryStep } from './cloud-runner-steps/download-repository-step';
|
import { DownloadRepositoryStep } from './steps/download-repository-step';
|
||||||
import { CustomStep } from './cloud-runner-steps/custom-step';
|
import { CustomStep } from './steps/custom-step';
|
||||||
import { EphemeralGitHubRunnerStep } from './cloud-runner-steps/ephemeral-github-runner-step';
|
import { EphemeralGitHubRunnerStep } from './steps/ephemeral-github-runner-step';
|
||||||
import { CloudRunnerStepState } from './cloud-runner-state/cloud-runner-step-state';
|
import { CloudRunnerStepState } from './state/cloud-runner-step-state';
|
||||||
|
|
||||||
class CloudRunner {
|
class CloudRunner {
|
||||||
private static setup(buildParameters: BuildParameters) {
|
private static setup(buildParameters: BuildParameters) {
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,17 @@
|
||||||
import * as k8s from '@kubernetes/client-node';
|
import * as k8s from '@kubernetes/client-node';
|
||||||
import { BuildParameters } from '../..';
|
import { BuildParameters } from '../..';
|
||||||
import * as core from '@actions/core';
|
import * as core from '@actions/core';
|
||||||
import { CloudRunnerProviderInterface } from '../cloud-runner-services/cloud-runner-provider-interface';
|
import { CloudRunnerProviderInterface } from '../services/cloud-runner-provider-interface';
|
||||||
import CloudRunnerSecret from '../cloud-runner-services/cloud-runner-secret';
|
import CloudRunnerSecret from '../services/cloud-runner-secret';
|
||||||
import KubernetesStorage from './kubernetes-storage';
|
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 KubernetesLogging from './kubernetes-logging';
|
||||||
import KubernetesSecret from './kubernetes-secret';
|
import KubernetesSecret from './kubernetes-secret';
|
||||||
import KubernetesUtilities from './kubernetes-utils';
|
import KubernetesUtilities from './kubernetes-utils';
|
||||||
import waitUntil from 'async-wait-until';
|
import waitUntil from 'async-wait-until';
|
||||||
import KubernetesJobSpecFactory from './kubernetes-job-spec-factory';
|
import KubernetesJobSpecFactory from './kubernetes-job-spec-factory';
|
||||||
import KubernetesServiceAccount from './kubernetes-service-account';
|
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 {
|
class Kubernetes implements CloudRunnerProviderInterface {
|
||||||
private kubeConfig: k8s.KubeConfig;
|
private kubeConfig: k8s.KubeConfig;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import BuildParameters from '../../build-parameters';
|
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 {
|
class KubernetesJobSpecFactory {
|
||||||
static getJobSpec(
|
static getJobSpec(
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { CoreV1Api, KubeConfig, Log } from '@kubernetes/client-node';
|
import { CoreV1Api, KubeConfig, Log } from '@kubernetes/client-node';
|
||||||
import { Writable } from 'stream';
|
import { Writable } from 'stream';
|
||||||
import CloudRunnerLogger from '../cloud-runner-services/cloud-runner-logger';
|
import CloudRunnerLogger from '../services/cloud-runner-logger';
|
||||||
|
|
||||||
class KubernetesLogging {
|
class KubernetesLogging {
|
||||||
static async streamLogs(
|
static async streamLogs(
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { CoreV1Api } from '@kubernetes/client-node';
|
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';
|
import * as k8s from '@kubernetes/client-node';
|
||||||
const base64 = require('base-64');
|
const base64 = require('base-64');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import waitUntil from 'async-wait-until';
|
||||||
import * as core from '@actions/core';
|
import * as core from '@actions/core';
|
||||||
import * as k8s from '@kubernetes/client-node';
|
import * as k8s from '@kubernetes/client-node';
|
||||||
import BuildParameters from '../../build-parameters';
|
import BuildParameters from '../../build-parameters';
|
||||||
import CloudRunnerLogger from '../cloud-runner-services/cloud-runner-logger';
|
import CloudRunnerLogger from '../services/cloud-runner-logger';
|
||||||
|
|
||||||
class KubernetesStorage {
|
class KubernetesStorage {
|
||||||
public static async createPersistentVolumeClaim(
|
public static async createPersistentVolumeClaim(
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { CoreV1Api } from '@kubernetes/client-node';
|
import { CoreV1Api } from '@kubernetes/client-node';
|
||||||
import waitUntil from 'async-wait-until';
|
import waitUntil from 'async-wait-until';
|
||||||
import CloudRunnerLogger from '../cloud-runner-services/cloud-runner-logger';
|
import CloudRunnerLogger from '../services/cloud-runner-logger';
|
||||||
|
|
||||||
class KubernetesUtilities {
|
class KubernetesUtilities {
|
||||||
static async findPodFromJob(kubeClient: CoreV1Api, jobName: string, namespace: string) {
|
static async findPodFromJob(kubeClient: CoreV1Api, jobName: string, namespace: string) {
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import { BuildParameters } from '../..';
|
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 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 {
|
export class CloudRunnerState {
|
||||||
public static CloudRunnerProviderPlatform: CloudRunnerProviderInterface;
|
public static CloudRunnerProviderPlatform: CloudRunnerProviderInterface;
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import CloudRunnerEnvironmentVariable from '../cloud-runner-services/cloud-runner-environment-variable';
|
import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment-variable';
|
||||||
import CloudRunnerSecret from '../cloud-runner-services/cloud-runner-secret';
|
import CloudRunnerSecret from '../services/cloud-runner-secret';
|
||||||
|
|
||||||
export class CloudRunnerStepState {
|
export class CloudRunnerStepState {
|
||||||
public image: string;
|
public image: string;
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import CloudRunnerEnvironmentVariable from '../cloud-runner-services/cloud-runner-environment-variable';
|
import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment-variable';
|
||||||
import CloudRunnerLogger from '../cloud-runner-services/cloud-runner-logger';
|
import CloudRunnerLogger from '../services/cloud-runner-logger';
|
||||||
import CloudRunnerSecret from '../cloud-runner-services/cloud-runner-secret';
|
import CloudRunnerSecret from '../services/cloud-runner-secret';
|
||||||
import { CloudRunnerState } from '../cloud-runner-state/cloud-runner-state';
|
import { CloudRunnerState } from '../state/cloud-runner-state';
|
||||||
import { CloudRunnerStepState } from '../cloud-runner-state/cloud-runner-step-state';
|
import { CloudRunnerStepState } from '../state/cloud-runner-step-state';
|
||||||
import { StandardStepInterface } from './standard-step-interface';
|
import { StandardStepInterface } from './standard-step-interface';
|
||||||
|
|
||||||
export class BuildStep implements StandardStepInterface {
|
export class BuildStep implements StandardStepInterface {
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import CloudRunnerEnvironmentVariable from '../cloud-runner-services/cloud-runner-environment-variable';
|
import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment-variable';
|
||||||
import CloudRunnerLogger from '../cloud-runner-services/cloud-runner-logger';
|
import CloudRunnerLogger from '../services/cloud-runner-logger';
|
||||||
import CloudRunnerSecret from '../cloud-runner-services/cloud-runner-secret';
|
import CloudRunnerSecret from '../services/cloud-runner-secret';
|
||||||
import { CloudRunnerState } from '../cloud-runner-state/cloud-runner-state';
|
import { CloudRunnerState } from '../state/cloud-runner-state';
|
||||||
import { CloudRunnerStepState } from '../cloud-runner-state/cloud-runner-step-state';
|
import { CloudRunnerStepState } from '../state/cloud-runner-step-state';
|
||||||
import { StandardStepInterface } from './standard-step-interface';
|
import { StandardStepInterface } from './standard-step-interface';
|
||||||
|
|
||||||
export class CompressionStep implements StandardStepInterface {
|
export class CompressionStep implements StandardStepInterface {
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import CloudRunnerLogger from '../cloud-runner-services/cloud-runner-logger';
|
import CloudRunnerLogger from '../services/cloud-runner-logger';
|
||||||
import CloudRunnerSecret from '../cloud-runner-services/cloud-runner-secret';
|
import CloudRunnerSecret from '../services/cloud-runner-secret';
|
||||||
import { CloudRunnerState } from '../cloud-runner-state/cloud-runner-state';
|
import { CloudRunnerState } from '../state/cloud-runner-state';
|
||||||
import YAML from 'yaml';
|
import YAML from 'yaml';
|
||||||
|
|
||||||
export class CustomStep {
|
export class CustomStep {
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import CloudRunnerEnvironmentVariable from '../cloud-runner-services/cloud-runner-environment-variable';
|
import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment-variable';
|
||||||
import CloudRunnerLogger from '../cloud-runner-services/cloud-runner-logger';
|
import CloudRunnerLogger from '../services/cloud-runner-logger';
|
||||||
import CloudRunnerSecret from '../cloud-runner-services/cloud-runner-secret';
|
import CloudRunnerSecret from '../services/cloud-runner-secret';
|
||||||
import { CloudRunnerState } from '../cloud-runner-state/cloud-runner-state';
|
import { CloudRunnerState } from '../state/cloud-runner-state';
|
||||||
import { CloudRunnerStepState } from '../cloud-runner-state/cloud-runner-step-state';
|
import { CloudRunnerStepState } from '../state/cloud-runner-step-state';
|
||||||
import { StandardStepInterface } from './standard-step-interface';
|
import { StandardStepInterface } from './standard-step-interface';
|
||||||
|
|
||||||
export class DownloadRepositoryStep implements StandardStepInterface {
|
export class DownloadRepositoryStep implements StandardStepInterface {
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import CloudRunnerEnvironmentVariable from '../cloud-runner-services/cloud-runner-environment-variable';
|
import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment-variable';
|
||||||
import CloudRunnerLogger from '../cloud-runner-services/cloud-runner-logger';
|
import CloudRunnerLogger from '../services/cloud-runner-logger';
|
||||||
import CloudRunnerSecret from '../cloud-runner-services/cloud-runner-secret';
|
import CloudRunnerSecret from '../services/cloud-runner-secret';
|
||||||
import { CloudRunnerState } from '../cloud-runner-state/cloud-runner-state';
|
import { CloudRunnerState } from '../state/cloud-runner-state';
|
||||||
import { CloudRunnerStepState } from '../cloud-runner-state/cloud-runner-step-state';
|
import { CloudRunnerStepState } from '../state/cloud-runner-step-state';
|
||||||
import { StandardStepInterface } from './standard-step-interface';
|
import { StandardStepInterface } from './standard-step-interface';
|
||||||
|
|
||||||
export class EphemeralGitHubRunnerStep implements StandardStepInterface {
|
export class EphemeralGitHubRunnerStep implements StandardStepInterface {
|
||||||
|
|
@ -26,8 +26,8 @@ export class EphemeralGitHubRunnerStep implements StandardStepInterface {
|
||||||
CloudRunnerState.buildGuid,
|
CloudRunnerState.buildGuid,
|
||||||
image,
|
image,
|
||||||
[installAndStartRunner],
|
[installAndStartRunner],
|
||||||
`/${CloudRunnerState.buildVolumeFolder}`,
|
``,
|
||||||
`/${CloudRunnerState.buildVolumeFolder}`,
|
``,
|
||||||
environmentVariables,
|
environmentVariables,
|
||||||
secrets,
|
secrets,
|
||||||
);
|
);
|
||||||
|
|
@ -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 {
|
export interface StandardStepInterface {
|
||||||
run(
|
run(
|
||||||
Loading…
Reference in New Issue