| 
									
										
										
										
											2021-09-22 20:05:21 +00:00
										 |  |  | import AWSBuildPlatform from './aws/aws-build-platform'; | 
					
						
							| 
									
										
										
										
											2021-08-01 23:43:20 +00:00
										 |  |  | import { BuildParameters } from '..'; | 
					
						
							| 
									
										
										
										
											2021-10-04 23:23:49 +00:00
										 |  |  | import { CloudRunnerState } from './state/cloud-runner-state'; | 
					
						
							| 
									
										
										
										
											2021-09-22 20:05:21 +00:00
										 |  |  | import Kubernetes from './k8s/kubernetes-build-platform'; | 
					
						
							| 
									
										
										
										
											2021-10-04 23:23:49 +00:00
										 |  |  | import CloudRunnerLogger from './services/cloud-runner-logger'; | 
					
						
							|  |  |  | import { CloudRunnerStepState } from './state/cloud-runner-step-state'; | 
					
						
							| 
									
										
										
										
											2021-10-06 01:19:42 +00:00
										 |  |  | import { WorkflowCompositionRoot } from './workflows/workflow-composition-root'; | 
					
						
							|  |  |  | import { CloudRunnerError } from './error/cloud-runner-error'; | 
					
						
							| 
									
										
										
										
											2021-08-01 23:43:20 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-17 20:09:42 +00:00
										 |  |  | class CloudRunner { | 
					
						
							| 
									
										
										
										
											2021-08-21 23:26:03 +00:00
										 |  |  |   private static setup(buildParameters: BuildParameters) { | 
					
						
							| 
									
										
										
										
											2021-09-21 18:27:04 +00:00
										 |  |  |     CloudRunnerLogger.setup(); | 
					
						
							| 
									
										
										
										
											2021-12-19 01:45:55 +00:00
										 |  |  |     CloudRunnerState.setup(buildParameters); | 
					
						
							| 
									
										
										
										
											2021-08-21 23:26:03 +00:00
										 |  |  |     CloudRunner.setupBuildPlatform(); | 
					
						
							| 
									
										
										
										
											2021-08-01 23:43:20 +00:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-28 17:08:37 +00:00
										 |  |  |   private static setupBuildPlatform() { | 
					
						
							| 
									
										
										
										
											2021-10-04 22:13:26 +00:00
										 |  |  |     switch (CloudRunnerState.buildParams.cloudRunnerCluster) { | 
					
						
							| 
									
										
										
										
											2021-08-01 23:43:20 +00:00
										 |  |  |       case 'k8s': | 
					
						
							| 
									
										
										
										
											2021-09-21 18:27:04 +00:00
										 |  |  |         CloudRunnerLogger.log('Building with Kubernetes'); | 
					
						
							| 
									
										
										
										
											2021-10-04 22:13:26 +00:00
										 |  |  |         CloudRunnerState.CloudRunnerProviderPlatform = new Kubernetes(CloudRunnerState.buildParams); | 
					
						
							| 
									
										
										
										
											2021-12-19 01:45:55 +00:00
										 |  |  |         break; | 
					
						
							|  |  |  |       default: | 
					
						
							|  |  |  |       case 'aws': | 
					
						
							|  |  |  |         CloudRunnerLogger.log('Building with AWS'); | 
					
						
							|  |  |  |         CloudRunnerState.CloudRunnerProviderPlatform = new AWSBuildPlatform(CloudRunnerState.buildParams); | 
					
						
							| 
									
										
										
										
											2021-08-01 23:43:20 +00:00
										 |  |  |         break; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-06 20:56:40 +00:00
										 |  |  |   static async run(buildParameters: BuildParameters, baseImage: string) { | 
					
						
							| 
									
										
										
										
											2021-10-04 22:13:26 +00:00
										 |  |  |     CloudRunner.setup(buildParameters); | 
					
						
							|  |  |  |     try { | 
					
						
							|  |  |  |       await CloudRunnerState.CloudRunnerProviderPlatform.setupSharedBuildResources( | 
					
						
							|  |  |  |         CloudRunnerState.buildGuid, | 
					
						
							|  |  |  |         CloudRunnerState.buildParams, | 
					
						
							|  |  |  |         CloudRunnerState.branchName, | 
					
						
							|  |  |  |         CloudRunnerState.defaultSecrets, | 
					
						
							|  |  |  |       ); | 
					
						
							| 
									
										
										
										
											2021-10-06 01:19:42 +00:00
										 |  |  |       await new WorkflowCompositionRoot().run( | 
					
						
							|  |  |  |         new CloudRunnerStepState( | 
					
						
							|  |  |  |           baseImage, | 
					
						
							|  |  |  |           CloudRunnerState.readBuildEnvironmentVariables(), | 
					
						
							|  |  |  |           CloudRunnerState.defaultSecrets, | 
					
						
							|  |  |  |         ), | 
					
						
							|  |  |  |       ); | 
					
						
							| 
									
										
										
										
											2021-10-04 22:13:26 +00:00
										 |  |  |       await CloudRunnerState.CloudRunnerProviderPlatform.cleanupSharedBuildResources( | 
					
						
							|  |  |  |         CloudRunnerState.buildGuid, | 
					
						
							|  |  |  |         CloudRunnerState.buildParams, | 
					
						
							|  |  |  |         CloudRunnerState.branchName, | 
					
						
							|  |  |  |         CloudRunnerState.defaultSecrets, | 
					
						
							|  |  |  |       ); | 
					
						
							|  |  |  |     } catch (error) { | 
					
						
							| 
									
										
										
										
											2021-10-06 01:19:42 +00:00
										 |  |  |       await CloudRunnerError.handleException(error); | 
					
						
							| 
									
										
										
										
											2021-10-04 22:13:26 +00:00
										 |  |  |       throw error; | 
					
						
							| 
									
										
										
										
											2021-08-01 23:43:20 +00:00
										 |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2021-08-17 20:09:42 +00:00
										 |  |  | export default CloudRunner; |