mirror of
				https://github.com/actions/setup-go.git
				synced 2025-10-31 23:43:41 +00:00 
			
		
		
		
	Enable setting up of go on ppc64/ppc64le systems
This commit is contained in:
		
							parent
							
								
									3041bf56c9
								
							
						
					
					
						commit
						f89ad3b87c
					
				| @ -8,6 +8,7 @@ import path from 'path'; | ||||
| import * as main from '../src/main'; | ||||
| import * as im from '../src/installer'; | ||||
| import * as httpm from '@actions/http-client'; | ||||
| import {getArch} from '../src/system'; | ||||
| 
 | ||||
| import goJsonData from './data/golang-dl.json'; | ||||
| import matchers from '../matchers.json'; | ||||
| @ -32,6 +33,7 @@ describe('setup-go', () => { | ||||
|   let getSpy: jest.SpyInstance; | ||||
|   let platSpy: jest.SpyInstance; | ||||
|   let archSpy: jest.SpyInstance; | ||||
|   let endianSpy: jest.SpyInstance; | ||||
|   let joinSpy: jest.SpyInstance; | ||||
|   let dlSpy: jest.SpyInstance; | ||||
|   let extractTarSpy: jest.SpyInstance; | ||||
| @ -71,6 +73,8 @@ describe('setup-go', () => { | ||||
|     archSpy = jest.spyOn(osm, 'arch'); | ||||
|     archSpy.mockImplementation(() => os['arch']); | ||||
|     execSpy = jest.spyOn(cp, 'execSync'); | ||||
|     endianSpy = jest.spyOn(osm, 'endianness'); | ||||
|     endianSpy.mockImplementation(() => os['endianness']); | ||||
| 
 | ||||
|     // switch path join behaviour based on set os.platform
 | ||||
|     joinSpy = jest.spyOn(path, 'join'); | ||||
| @ -988,5 +992,17 @@ use . | ||||
|         ); | ||||
|       } | ||||
|     ); | ||||
| 
 | ||||
|     it('should return ppc64 when architecture is ppc64 and system is Big Endian', () => { | ||||
|       endianSpy.mockReturnValue('BE'); | ||||
|       const result = getArch('ppc64'); | ||||
|       expect(result).toBe('ppc64'); | ||||
|     }); | ||||
| 
 | ||||
|     it('should return ppc64le when architecture is ppc64 and system is Little Endian', () => { | ||||
|       endianSpy.mockReturnValue('LE'); | ||||
|       const result = getArch('ppc64'); | ||||
|       expect(result).toBe('ppc64le'); | ||||
|     }); | ||||
|   }); | ||||
| }); | ||||
|  | ||||
							
								
								
									
										16
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							| @ -88843,15 +88843,23 @@ function getPlatform() { | ||||
| exports.getPlatform = getPlatform; | ||||
| function getArch(arch) { | ||||
|     // 'arm', 'arm64', 'ia32', 'mips', 'mipsel', 'ppc', 'ppc64', 's390', 's390x', 'x32', and 'x64'.
 | ||||
|     // wants amd64, 386, arm64, armv61, ppc641e, s390x
 | ||||
|     // wants amd64, 386, arm64, armv6l, ppc64le, s390x
 | ||||
|     // currently not supported by runner but future proofed mapping
 | ||||
|     switch (arch) { | ||||
|         case 'x64': | ||||
|             arch = 'amd64'; | ||||
|             break; | ||||
|         // case 'ppc':
 | ||||
|         //   arch = 'ppc64';
 | ||||
|         //   break;
 | ||||
|         // In case of ppc64, further distinction is needed to determine the endianness
 | ||||
|         // of the host as it can either be ppc64(Big Endian) or ppc64le (Little Endian) to download
 | ||||
|         // the correct bundle.
 | ||||
|         case 'ppc64': | ||||
|             if (os_1.default.endianness() === 'LE') { | ||||
|                 arch = 'ppc64le'; | ||||
|             } | ||||
|             else { | ||||
|                 arch = 'ppc64'; | ||||
|             } | ||||
|             break; | ||||
|         case 'x32': | ||||
|             arch = '386'; | ||||
|             break; | ||||
|  | ||||
| @ -18,15 +18,22 @@ export function getPlatform(): string { | ||||
| export function getArch(arch: string): string { | ||||
|   // 'arm', 'arm64', 'ia32', 'mips', 'mipsel', 'ppc', 'ppc64', 's390', 's390x', 'x32', and 'x64'.
 | ||||
| 
 | ||||
|   // wants amd64, 386, arm64, armv61, ppc641e, s390x
 | ||||
|   // wants amd64, 386, arm64, armv6l, ppc64le, s390x
 | ||||
|   // currently not supported by runner but future proofed mapping
 | ||||
|   switch (arch) { | ||||
|     case 'x64': | ||||
|       arch = 'amd64'; | ||||
|       break; | ||||
|     // case 'ppc':
 | ||||
|     //   arch = 'ppc64';
 | ||||
|     //   break;
 | ||||
|     // In case of ppc64, further distinction is needed to determine the endianness
 | ||||
|     // of the host as it can either be ppc64(Big Endian) or ppc64le (Little Endian) to download
 | ||||
|     // the correct bundle.
 | ||||
|     case 'ppc64': | ||||
|       if (os.endianness() === 'LE') { | ||||
|         arch = 'ppc64le'; | ||||
|       } else { | ||||
|         arch = 'ppc64'; | ||||
|       } | ||||
|       break; | ||||
|     case 'x32': | ||||
|       arch = '386'; | ||||
|       break; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user