| 
									
										
										
										
											2021-10-04 23:23:49 +00:00
										 |  |  | 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'; | 
					
						
							| 
									
										
										
										
											2021-10-06 01:19:42 +00:00
										 |  |  | import { StepInterface } from './step-interface'; | 
					
						
							| 
									
										
										
										
											2021-10-04 22:13:26 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-06 01:19:42 +00:00
										 |  |  | export class DownloadRepositoryStep implements StepInterface { | 
					
						
							| 
									
										
										
										
											2021-10-04 22:13:26 +00:00
										 |  |  |   async run(cloudRunnerStepState: CloudRunnerStepState) { | 
					
						
							| 
									
										
										
										
											2021-11-21 17:20:11 +00:00
										 |  |  |     try { | 
					
						
							|  |  |  |       await DownloadRepositoryStep.downloadRepositoryStep( | 
					
						
							|  |  |  |         cloudRunnerStepState.image, | 
					
						
							|  |  |  |         cloudRunnerStepState.environment, | 
					
						
							|  |  |  |         cloudRunnerStepState.secrets, | 
					
						
							|  |  |  |       ); | 
					
						
							|  |  |  |     } catch (error) { | 
					
						
							|  |  |  |       throw error; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2021-10-04 22:13:26 +00:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   private static async downloadRepositoryStep( | 
					
						
							|  |  |  |     image: string, | 
					
						
							|  |  |  |     environmentVariables: CloudRunnerEnvironmentVariable[], | 
					
						
							|  |  |  |     secrets: CloudRunnerSecret[], | 
					
						
							|  |  |  |   ) { | 
					
						
							| 
									
										
										
										
											2021-11-21 17:20:11 +00:00
										 |  |  |     try { | 
					
						
							|  |  |  |       CloudRunnerLogger.log('Starting step 1/4 clone and restore cache'); | 
					
						
							|  |  |  |       await CloudRunnerState.CloudRunnerProviderPlatform.runBuildTask( | 
					
						
							|  |  |  |         CloudRunnerState.buildGuid, | 
					
						
							|  |  |  |         image, | 
					
						
							|  |  |  |         [ | 
					
						
							|  |  |  |           ` printenv
 | 
					
						
							| 
									
										
										
										
											2021-10-04 22:13:26 +00:00
										 |  |  |           apk update -q | 
					
						
							|  |  |  |           apk add unzip zip git-lfs jq tree -q | 
					
						
							|  |  |  |           mkdir -p ${CloudRunnerState.buildPathFull} | 
					
						
							|  |  |  |           mkdir -p ${CloudRunnerState.builderPathFull} | 
					
						
							|  |  |  |           mkdir -p ${CloudRunnerState.repoPathFull} | 
					
						
							|  |  |  |           ${CloudRunnerState.getCloneBuilder()} | 
					
						
							| 
									
										
										
										
											2021-12-13 22:21:26 +00:00
										 |  |  |           ${CloudRunnerState.unityBuilderRepoUrl}/dist/index.js -- -m cli | 
					
						
							| 
									
										
										
										
											2021-10-04 22:13:26 +00:00
										 |  |  |           echo ' ' | 
					
						
							|  |  |  |           echo 'Initializing source repository for cloning with caching of LFS files' | 
					
						
							|  |  |  |           ${CloudRunnerState.getCloneNoLFSCommand()} | 
					
						
							|  |  |  |           echo 'Source repository initialized' | 
					
						
							|  |  |  |           echo ' ' | 
					
						
							|  |  |  |           echo 'Starting checks of cache for the Unity project Library and git LFS files' | 
					
						
							|  |  |  |           ${CloudRunnerState.getHandleCachingCommand()} | 
					
						
							|  |  |  |       `,
 | 
					
						
							| 
									
										
										
										
											2021-11-21 17:20:11 +00:00
										 |  |  |         ], | 
					
						
							|  |  |  |         `/${CloudRunnerState.buildVolumeFolder}`, | 
					
						
							|  |  |  |         `/${CloudRunnerState.buildVolumeFolder}/`, | 
					
						
							|  |  |  |         environmentVariables, | 
					
						
							|  |  |  |         secrets, | 
					
						
							|  |  |  |       ); | 
					
						
							|  |  |  |     } catch (error) { | 
					
						
							|  |  |  |       throw error; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2021-10-04 22:13:26 +00:00
										 |  |  |   } | 
					
						
							|  |  |  | } |