format
This commit is contained in:
		
							parent
							
								
									4282769cc0
								
							
						
					
					
						commit
						dc575ee3b3
					
				| @ -7,7 +7,7 @@ import {run} from '../src/main'; | ||||
| import * as httpm from '@actions/http-client'; | ||||
| import * as im from '../src/installer'; | ||||
| import * as sys from '../src/system'; | ||||
| import { ITypedResponse } from '@actions/http-client/interfaces'; | ||||
| import {ITypedResponse} from '@actions/http-client/interfaces'; | ||||
| 
 | ||||
| let goJsonData = require('./data/golang-dl.json'); | ||||
| 
 | ||||
| @ -28,12 +28,15 @@ describe('setup-go', () => { | ||||
|     cnSpy = jest.spyOn(process.stdout, 'write'); | ||||
|     platSpy = jest.spyOn(sys, 'getPlatform'); | ||||
|     archSpy = jest.spyOn(sys, 'getArch'); | ||||
|     dlSpy = jest.spyOn(tc, "downloadTool"); | ||||
|     exSpy = jest.spyOn(tc, "extractTar"); | ||||
|     dlSpy = jest.spyOn(tc, 'downloadTool'); | ||||
|     exSpy = jest.spyOn(tc, 'extractTar'); | ||||
|     getSpy = jest.spyOn(http, 'getJson'); | ||||
|     getSpy.mockImplementation(() => <ITypedResponse<im.IGoVersion[]>>{  | ||||
|       result: goJsonData | ||||
|     });     | ||||
|     getSpy.mockImplementation( | ||||
|       () => | ||||
|         <ITypedResponse<im.IGoVersion[]>>{ | ||||
|           result: goJsonData | ||||
|         } | ||||
|     ); | ||||
|     cnSpy.mockImplementation(line => { | ||||
|       // uncomment to debug
 | ||||
|       //process.stderr.write('write2:' + line + '\n');
 | ||||
| @ -49,7 +52,7 @@ describe('setup-go', () => { | ||||
|   afterAll(async () => {}, 100000); | ||||
| 
 | ||||
|   it('finds a version of go already in the cache', async () => { | ||||
|     inSpy.mockImplementation(() => '1.13.0') | ||||
|     inSpy.mockImplementation(() => '1.13.0'); | ||||
|     let toolPath = path.normalize('/cache/go/1.13.0/x64'); | ||||
|     tcSpy.mockImplementation(() => toolPath); | ||||
|     await run(); | ||||
| @ -79,11 +82,13 @@ describe('setup-go', () => { | ||||
|   }); | ||||
| 
 | ||||
|   it('can mock go versions query', async () => { | ||||
|     let r: ITypedResponse<im.IGoVersion[]> = await http.getJson<im.IGoVersion[]>('https://asite.notexist.com/path'); | ||||
|     let r: ITypedResponse<im.IGoVersion[]> = await http.getJson< | ||||
|       im.IGoVersion[] | ||||
|     >('https://asite.notexist.com/path'); | ||||
|     expect(r).toBeDefined(); | ||||
|     let versions = r.result; | ||||
|     expect(versions).toBeDefined(); | ||||
|     let l:number = versions? versions.length: 0;  | ||||
|     let l: number = versions ? versions.length : 0; | ||||
|     expect(l).toBe(76); | ||||
|   }); | ||||
| 
 | ||||
| @ -97,7 +102,7 @@ describe('setup-go', () => { | ||||
|     expect(match).toBeDefined(); | ||||
|     let version: string = match ? match.version : ''; | ||||
|     expect(version).toBe('go1.13.1'); | ||||
|     let fileName = match ? match.files[0].filename: ''; | ||||
|     let fileName = match ? match.files[0].filename : ''; | ||||
|     expect(fileName).toBe('go1.13.1.linux-amd64.tar.gz'); | ||||
|   }); | ||||
| 
 | ||||
| @ -110,7 +115,7 @@ describe('setup-go', () => { | ||||
|     expect(match).toBeDefined(); | ||||
|     let version: string = match ? match.version : ''; | ||||
|     expect(version).toBe('go1.13'); | ||||
|     let fileName = match ? match.files[0].filename: ''; | ||||
|     let fileName = match ? match.files[0].filename : ''; | ||||
|     expect(fileName).toBe('go1.13.linux-amd64.tar.gz'); | ||||
|   }); | ||||
| 
 | ||||
| @ -123,7 +128,7 @@ describe('setup-go', () => { | ||||
|     expect(match).toBeDefined(); | ||||
|     let version: string = match ? match.version : ''; | ||||
|     expect(version).toBe('go1.13.7'); | ||||
|     let fileName = match ? match.files[0].filename: ''; | ||||
|     let fileName = match ? match.files[0].filename : ''; | ||||
|     expect(fileName).toBe('go1.13.7.linux-amd64.tar.gz'); | ||||
|   }); | ||||
| 
 | ||||
| @ -136,7 +141,7 @@ describe('setup-go', () => { | ||||
|     expect(match).toBeDefined(); | ||||
|     let version: string = match ? match.version : ''; | ||||
|     expect(version).toBe('go1.13.7'); | ||||
|     let fileName = match ? match.files[0].filename: ''; | ||||
|     let fileName = match ? match.files[0].filename : ''; | ||||
|     expect(fileName).toBe('go1.13.7.linux-amd64.tar.gz'); | ||||
|   }); | ||||
| 
 | ||||
| @ -149,7 +154,7 @@ describe('setup-go', () => { | ||||
|     expect(match).toBeDefined(); | ||||
|     let version: string = match ? match.version : ''; | ||||
|     expect(version).toBe('go1.13.7'); | ||||
|     let fileName = match ? match.files[0].filename: ''; | ||||
|     let fileName = match ? match.files[0].filename : ''; | ||||
|     expect(fileName).toBe('go1.13.7.linux-amd64.tar.gz'); | ||||
|   }); | ||||
| }); | ||||
|  | ||||
							
								
								
									
										8
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							| @ -1287,7 +1287,7 @@ function run() { | ||||
|             // If not supplied then problem matchers will still be setup.  Useful for self-hosted.
 | ||||
|             //
 | ||||
|             let versionSpec = core.getInput('go-version'); | ||||
|             let stable = (core.getInput('stable') || '').toUpperCase() == "TRUE"; | ||||
|             let stable = (core.getInput('stable') || '').toUpperCase() == 'TRUE'; | ||||
|             if (versionSpec) { | ||||
|                 let installDir = tc.find('go', versionSpec); | ||||
|                 if (!installDir) { | ||||
| @ -4591,8 +4591,9 @@ function downloadGo(versionSpec, stable) { | ||||
|                 let downloadUrl = `https://storage.googleapis.com/golang/${match.files[0]}`; | ||||
|                 let downloadPath = yield tc.downloadTool(downloadUrl); | ||||
|                 // extract
 | ||||
|                 let extPath = sys.getPlatform() == 'windows' ? | ||||
|                     yield tc.extractZip(downloadPath) : yield tc.extractTar(downloadPath); | ||||
|                 let extPath = sys.getPlatform() == 'windows' | ||||
|                     ? yield tc.extractZip(downloadPath) | ||||
|                     : yield tc.extractTar(downloadPath); | ||||
|                 // extracts with a root folder that matches the fileName downloaded
 | ||||
|                 const toolRoot = path.join(extPath, 'go'); | ||||
|                 toolPath = yield tc.cacheDir(toolRoot, 'go', versionSpec); | ||||
| @ -4638,7 +4639,6 @@ function findMatch(versionSpec, stable) { | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         ; | ||||
|         if (match && goFile) { | ||||
|             match.files = [goFile]; | ||||
|         } | ||||
|  | ||||
| @ -30,8 +30,9 @@ function downloadGo(versionSpec, stable) { | ||||
|                 let downloadUrl = `https://storage.googleapis.com/golang/${match.files[0]}`; | ||||
|                 let downloadPath = yield tc.downloadTool(downloadUrl); | ||||
|                 // extract
 | ||||
|                 let extPath = sys.getPlatform() == 'windows' ? | ||||
|                     yield tc.extractZip(downloadPath) : yield tc.extractTar(downloadPath); | ||||
|                 let extPath = sys.getPlatform() == 'windows' | ||||
|                     ? yield tc.extractZip(downloadPath) | ||||
|                     : yield tc.extractTar(downloadPath); | ||||
|                 // extracts with a root folder that matches the fileName downloaded
 | ||||
|                 const toolRoot = path.join(extPath, 'go'); | ||||
|                 toolPath = yield tc.cacheDir(toolRoot, 'go', versionSpec); | ||||
| @ -77,7 +78,6 @@ function findMatch(versionSpec, stable) { | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         ; | ||||
|         if (match && goFile) { | ||||
|             match.files = [goFile]; | ||||
|         } | ||||
|  | ||||
| @ -1,10 +1,13 @@ | ||||
| import * as tc from '@actions/tool-cache'; | ||||
| import * as path from 'path'; | ||||
| import * as semver from 'semver'; | ||||
| import * as httpm from '@actions/http-client' | ||||
| import * as sys from './system' | ||||
| import * as httpm from '@actions/http-client'; | ||||
| import * as sys from './system'; | ||||
| 
 | ||||
| export async function downloadGo(versionSpec: string, stable: boolean): Promise<string | undefined> { | ||||
| export async function downloadGo( | ||||
|   versionSpec: string, | ||||
|   stable: boolean | ||||
| ): Promise<string | undefined> { | ||||
|   let toolPath: string | undefined; | ||||
| 
 | ||||
|   try { | ||||
| @ -16,8 +19,10 @@ export async function downloadGo(versionSpec: string, stable: boolean): Promise< | ||||
|       let downloadPath: string = await tc.downloadTool(downloadUrl); | ||||
| 
 | ||||
|       // extract
 | ||||
|       let extPath: string = sys.getPlatform() == 'windows'? | ||||
|         await tc.extractZip(downloadPath): await tc.extractTar(downloadPath); | ||||
|       let extPath: string = | ||||
|         sys.getPlatform() == 'windows' | ||||
|           ? await tc.extractZip(downloadPath) | ||||
|           : await tc.extractTar(downloadPath); | ||||
| 
 | ||||
|       // extracts with a root folder that matches the fileName downloaded
 | ||||
|       const toolRoot = path.join(extPath, 'go'); | ||||
| @ -31,10 +36,10 @@ export async function downloadGo(versionSpec: string, stable: boolean): Promise< | ||||
| } | ||||
| 
 | ||||
| export interface IGoVersionFile { | ||||
|   filename: string, | ||||
|   filename: string; | ||||
|   // darwin, linux, windows
 | ||||
|   os: string, | ||||
|   arch: string | ||||
|   os: string; | ||||
|   arch: string; | ||||
| } | ||||
| 
 | ||||
| export interface IGoVersion { | ||||
| @ -43,23 +48,28 @@ export interface IGoVersion { | ||||
|   files: IGoVersionFile[]; | ||||
| } | ||||
| 
 | ||||
| export async function findMatch(versionSpec: string, stable: boolean): Promise<IGoVersion | undefined> { | ||||
| export async function findMatch( | ||||
|   versionSpec: string, | ||||
|   stable: boolean | ||||
| ): Promise<IGoVersion | undefined> { | ||||
|   let archFilter = sys.getArch(); | ||||
|   let platFilter = sys.getPlatform(); | ||||
| 
 | ||||
|   let match: IGoVersion| undefined; | ||||
|   let match: IGoVersion | undefined; | ||||
|   const dlUrl: string = 'https://golang.org/dl/?mode=json&include=all'; | ||||
| 
 | ||||
|   // this returns versions descending so latest is first
 | ||||
|   let http: httpm.HttpClient = new httpm.HttpClient('setup-go'); | ||||
|   let candidates: IGoVersion[] | null =  (await http.getJson<IGoVersion[]>(dlUrl)).result; | ||||
|   let candidates: IGoVersion[] | null = (await http.getJson<IGoVersion[]>( | ||||
|     dlUrl | ||||
|   )).result; | ||||
| 
 | ||||
|   if (!candidates) { | ||||
|     throw new Error(`golang download url did not return results: ${dlUrl}`); | ||||
|   } | ||||
| 
 | ||||
|   let goFile: IGoVersionFile | undefined; | ||||
|   for (let i=0; i < candidates.length; i++) { | ||||
|   for (let i = 0; i < candidates.length; i++) { | ||||
|     let candidate: IGoVersion = candidates[i]; | ||||
|     let version = candidate.version.replace('go', ''); | ||||
| 
 | ||||
| @ -81,10 +91,10 @@ export async function findMatch(versionSpec: string, stable: boolean): Promise<I | ||||
|         break; | ||||
|       } | ||||
|     } | ||||
|   }; | ||||
|   } | ||||
| 
 | ||||
|   if (match && goFile) { | ||||
|     match.files = [ goFile ]; | ||||
|     match.files = [goFile]; | ||||
|   } | ||||
| 
 | ||||
|   return match; | ||||
|  | ||||
							
								
								
									
										26
									
								
								src/main.ts
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								src/main.ts
									
									
									
									
									
								
							| @ -10,22 +10,24 @@ export async function run() { | ||||
|     // If not supplied then problem matchers will still be setup.  Useful for self-hosted.
 | ||||
|     //
 | ||||
|     let versionSpec = core.getInput('go-version'); | ||||
|     let stable: boolean = (core.getInput('stable') || '').toUpperCase() == "TRUE"; | ||||
|     let stable: boolean = | ||||
|       (core.getInput('stable') || '').toUpperCase() == 'TRUE'; | ||||
| 
 | ||||
|     if (versionSpec) { | ||||
|         let installDir: string | undefined = tc.find('go', versionSpec); | ||||
|       let installDir: string | undefined = tc.find('go', versionSpec); | ||||
| 
 | ||||
|         if (!installDir) { | ||||
|             installDir = await installer.downloadGo(versionSpec, stable); | ||||
|         } | ||||
|       if (!installDir) { | ||||
|         installDir = await installer.downloadGo(versionSpec, stable); | ||||
|       } | ||||
| 
 | ||||
|         if (installDir) { | ||||
|             core.exportVariable('GOROOT', installDir); | ||||
|             core.addPath(path.join(installDir, 'bin')); | ||||
|         }    | ||||
|         else { | ||||
|             throw new Error(`Could not find a version that satisfied version spec: ${versionSpec}`); | ||||
|         } | ||||
|       if (installDir) { | ||||
|         core.exportVariable('GOROOT', installDir); | ||||
|         core.addPath(path.join(installDir, 'bin')); | ||||
|       } else { | ||||
|         throw new Error( | ||||
|           `Could not find a version that satisfied version spec: ${versionSpec}` | ||||
|         ); | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     // add problem matchers
 | ||||
|  | ||||
| @ -1,3 +1,3 @@ | ||||
| import {run} from './main' | ||||
| import {run} from './main'; | ||||
| 
 | ||||
| run(); | ||||
|  | ||||
| @ -1,37 +1,37 @@ | ||||
| import * as os from 'os'; | ||||
| 
 | ||||
| export function getPlatform(): string { | ||||
|     // darwin and linux match already
 | ||||
|     // freebsd not supported yet but future proofed.
 | ||||
|   // darwin and linux match already
 | ||||
|   // freebsd not supported yet but future proofed.
 | ||||
| 
 | ||||
|     // 'aix', 'darwin', 'freebsd', 'linux', 'openbsd', 'sunos', and 'win32'
 | ||||
|     let plat: string = os.platform(); | ||||
|   // 'aix', 'darwin', 'freebsd', 'linux', 'openbsd', 'sunos', and 'win32'
 | ||||
|   let plat: string = os.platform(); | ||||
| 
 | ||||
|     // wants 'darwin', 'freebsd', 'linux', 'windows'
 | ||||
|     if (plat === 'win32') { | ||||
|       plat = 'windows'; | ||||
|     } | ||||
|    | ||||
|     return plat; | ||||
|   // wants 'darwin', 'freebsd', 'linux', 'windows'
 | ||||
|   if (plat === 'win32') { | ||||
|     plat = 'windows'; | ||||
|   } | ||||
| 
 | ||||
|   export function getArch(): string { | ||||
|     // 'arm', 'arm64', 'ia32', 'mips', 'mipsel', 'ppc', 'ppc64', 's390', 's390x', 'x32', and 'x64'.
 | ||||
|     let arch: string = os.arch(); | ||||
|   return plat; | ||||
| } | ||||
| 
 | ||||
|     // wants amd64, 386, arm64, armv61, ppc641e, s390x
 | ||||
|     // currently not supported by runner but future proofed mapping
 | ||||
|     switch (arch) { | ||||
|       case 'x64': | ||||
|         arch = 'amd64'; | ||||
|         break; | ||||
|       case 'ppc': | ||||
|         arch = 'ppc64'; | ||||
|         break; | ||||
|       case 'x32': | ||||
|         arch = '386'; | ||||
|         break; | ||||
|     } | ||||
| export function getArch(): string { | ||||
|   // 'arm', 'arm64', 'ia32', 'mips', 'mipsel', 'ppc', 'ppc64', 's390', 's390x', 'x32', and 'x64'.
 | ||||
|   let arch: string = os.arch(); | ||||
| 
 | ||||
|     return arch; | ||||
|   // wants amd64, 386, arm64, armv61, ppc641e, s390x
 | ||||
|   // currently not supported by runner but future proofed mapping
 | ||||
|   switch (arch) { | ||||
|     case 'x64': | ||||
|       arch = 'amd64'; | ||||
|       break; | ||||
|     case 'ppc': | ||||
|       arch = 'ppc64'; | ||||
|       break; | ||||
|     case 'x32': | ||||
|       arch = '386'; | ||||
|       break; | ||||
|   } | ||||
| 
 | ||||
|   return arch; | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user