Merge branch 'actions:main' into main
This commit is contained in:
		
						commit
						c0e82e3ff3
					
				| @ -93,6 +93,41 @@ describe('getCacheDirectoryPath', () => { | |||||||
|       .then(data => expect(data).toEqual(expectedResult)); |       .then(data => expect(data).toEqual(expectedResult)); | ||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
|  |   it('should return path to the cache folder if one command return empty str', async () => { | ||||||
|  |     //Arrange
 | ||||||
|  |     getExecOutputSpy.mockImplementationOnce((commandLine: string) => { | ||||||
|  |       return new Promise<exec.ExecOutput>(resolve => { | ||||||
|  |         resolve({exitCode: 0, stdout: 'path/to/cache/folder', stderr: ''}); | ||||||
|  |       }); | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|  |     getExecOutputSpy.mockImplementationOnce((commandLine: string) => { | ||||||
|  |       return new Promise<exec.ExecOutput>(resolve => { | ||||||
|  |         resolve({exitCode: 0, stdout: '', stderr: ''}); | ||||||
|  |       }); | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|  |     const expectedResult = ['path/to/cache/folder']; | ||||||
|  | 
 | ||||||
|  |     //Act + Assert
 | ||||||
|  |     return cacheUtils | ||||||
|  |       .getCacheDirectoryPath(validPackageManager) | ||||||
|  |       .then(data => expect(data).toEqual(expectedResult)); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   it('should throw if the both commands return empty str', async () => { | ||||||
|  |     getExecOutputSpy.mockImplementation((commandLine: string) => { | ||||||
|  |       return new Promise<exec.ExecOutput>(resolve => { | ||||||
|  |         resolve({exitCode: 10, stdout: '', stderr: ''}); | ||||||
|  |       }); | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|  |     //Act + Assert
 | ||||||
|  |     expect(async () => { | ||||||
|  |       await cacheUtils.getCacheDirectoryPath(validPackageManager); | ||||||
|  |     }).rejects.toThrow(); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|   it('should throw if the specified package name is invalid', async () => { |   it('should throw if the specified package name is invalid', async () => { | ||||||
|     getExecOutputSpy.mockImplementation((commandLine: string) => { |     getExecOutputSpy.mockImplementation((commandLine: string) => { | ||||||
|       return new Promise<exec.ExecOutput>(resolve => { |       return new Promise<exec.ExecOutput>(resolve => { | ||||||
| @ -162,7 +197,7 @@ describe('isCacheFeatureAvailable', () => { | |||||||
|     expect(functionResult).toBeFalsy(); |     expect(functionResult).toBeFalsy(); | ||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
|   it('should throw when cache feature is unavailable and GHES is used', () => { |   it('should warn when cache feature is unavailable and GHES is used', () => { | ||||||
|     //Arrange
 |     //Arrange
 | ||||||
|     isFeatureAvailableSpy.mockImplementation(() => { |     isFeatureAvailableSpy.mockImplementation(() => { | ||||||
|       return false; |       return false; | ||||||
| @ -170,10 +205,11 @@ describe('isCacheFeatureAvailable', () => { | |||||||
| 
 | 
 | ||||||
|     process.env['GITHUB_SERVER_URL'] = 'https://nongithub.com'; |     process.env['GITHUB_SERVER_URL'] = 'https://nongithub.com'; | ||||||
| 
 | 
 | ||||||
|     let errorMessage = |     let warningMessage = | ||||||
|       'Cache action is only supported on GHES version >= 3.5. If you are on version >=3.5 Please check with GHES admin if Actions cache service is enabled or not.'; |       'Cache action is only supported on GHES version >= 3.5. If you are on version >=3.5 Please check with GHES admin if Actions cache service is enabled or not.'; | ||||||
| 
 | 
 | ||||||
|     //Act + Assert
 |     //Act + Assert
 | ||||||
|     expect(() => cacheUtils.isCacheFeatureAvailable()).toThrow(errorMessage); |     expect(cacheUtils.isCacheFeatureAvailable()).toBeFalsy(); | ||||||
|  |     expect(warningSpy).toHaveBeenCalledWith(warningMessage); | ||||||
|   }); |   }); | ||||||
| }); | }); | ||||||
|  | |||||||
							
								
								
									
										5065
									
								
								dist/cache-save/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5065
									
								
								dist/cache-save/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										5065
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5065
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -34,19 +34,19 @@ export const getPackageManagerInfo = async (packageManager: string) => { | |||||||
| export const getCacheDirectoryPath = async ( | export const getCacheDirectoryPath = async ( | ||||||
|   packageManagerInfo: PackageManagerInfo |   packageManagerInfo: PackageManagerInfo | ||||||
| ) => { | ) => { | ||||||
|   let pathList = await Promise.all( |   const pathList = await Promise.all( | ||||||
|     packageManagerInfo.cacheFolderCommandList.map(command => |     packageManagerInfo.cacheFolderCommandList.map(command => | ||||||
|       getCommandOutput(command) |       getCommandOutput(command) | ||||||
|     ) |     ) | ||||||
|   ); |   ); | ||||||
| 
 | 
 | ||||||
|   const emptyPaths = pathList.filter(item => !item); |   const cachePaths = pathList.filter(item => item); | ||||||
| 
 | 
 | ||||||
|   if (emptyPaths.length) { |   if (!cachePaths.length) { | ||||||
|     throw new Error(`Could not get cache folder paths.`); |     throw new Error(`Could not get cache folder paths.`); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   return pathList; |   return cachePaths; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| export function isGhes(): boolean { | export function isGhes(): boolean { | ||||||
| @ -57,19 +57,19 @@ export function isGhes(): boolean { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export function isCacheFeatureAvailable(): boolean { | export function isCacheFeatureAvailable(): boolean { | ||||||
|   if (!cache.isFeatureAvailable()) { |   if (cache.isFeatureAvailable()) { | ||||||
|     if (isGhes()) { |     return true; | ||||||
|       throw new Error( |   } | ||||||
|         'Cache action is only supported on GHES version >= 3.5. If you are on version >=3.5 Please check with GHES admin if Actions cache service is enabled or not.' |  | ||||||
|       ); |  | ||||||
|     } else { |  | ||||||
|       core.warning( |  | ||||||
|         'The runner was not able to contact the cache service. Caching will be skipped' |  | ||||||
|       ); |  | ||||||
|     } |  | ||||||
| 
 | 
 | ||||||
|  |   if (isGhes()) { | ||||||
|  |     core.warning( | ||||||
|  |       'Cache action is only supported on GHES version >= 3.5. If you are on version >=3.5 Please check with GHES admin if Actions cache service is enabled or not.' | ||||||
|  |     ); | ||||||
|     return false; |     return false; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   return true; |   core.warning( | ||||||
|  |     'The runner was not able to contact the cache service. Caching will be skipped' | ||||||
|  |   ); | ||||||
|  |   return false; | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user