mirror of
				https://github.com/actions/setup-go.git
				synced 2025-10-31 15:50:33 +00:00 
			
		
		
		
	Compare commits
	
		
			7 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 9fbc767707 | ||
|   | 0cbaec8e4b | ||
|   | 75259a5ae0 | ||
|   | 4efa1b82d1 | ||
|   | bc6edb526d | ||
|   | 21620fff65 | ||
|   | 595aed780b | 
							
								
								
									
										97
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										97
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,7 +1,92 @@ | ||||
| # runtime dependencies are checked in | ||||
| # dev dependencies are *not* checked in | ||||
| node_modules/.bin | ||||
| node_modules/typescript | ||||
| node_modules/@types | ||||
| node_modules/prettier | ||||
| # Explicitly not ignoring node_modules so that they are included in package downloaded by runner | ||||
| !node_modules/ | ||||
| __tests__/runner/* | ||||
|  | ||||
| # Rest of the file pulled from https://github.com/github/gitignore/blob/master/Node.gitignore | ||||
| # Logs | ||||
| logs | ||||
| *.log | ||||
| npm-debug.log* | ||||
| yarn-debug.log* | ||||
| yarn-error.log* | ||||
| lerna-debug.log* | ||||
|  | ||||
| # Diagnostic reports (https://nodejs.org/api/report.html) | ||||
| report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json | ||||
|  | ||||
| # Runtime data | ||||
| pids | ||||
| *.pid | ||||
| *.seed | ||||
| *.pid.lock | ||||
|  | ||||
| # Directory for instrumented libs generated by jscoverage/JSCover | ||||
| lib-cov | ||||
|  | ||||
| # Coverage directory used by tools like istanbul | ||||
| coverage | ||||
| *.lcov | ||||
|  | ||||
| # nyc test coverage | ||||
| .nyc_output | ||||
|  | ||||
| # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) | ||||
| .grunt | ||||
|  | ||||
| # Bower dependency directory (https://bower.io/) | ||||
| bower_components | ||||
|  | ||||
| # node-waf configuration | ||||
| .lock-wscript | ||||
|  | ||||
| # Compiled binary addons (https://nodejs.org/api/addons.html) | ||||
| build/Release | ||||
|  | ||||
| # Dependency directories | ||||
| jspm_packages/ | ||||
|  | ||||
| # TypeScript v1 declaration files | ||||
| typings/ | ||||
|  | ||||
| # TypeScript cache | ||||
| *.tsbuildinfo | ||||
|  | ||||
| # Optional npm cache directory | ||||
| .npm | ||||
|  | ||||
| # Optional eslint cache | ||||
| .eslintcache | ||||
|  | ||||
| # Optional REPL history | ||||
| .node_repl_history | ||||
|  | ||||
| # Output of 'npm pack' | ||||
| *.tgz | ||||
|  | ||||
| # Yarn Integrity file | ||||
| .yarn-integrity | ||||
|  | ||||
| # dotenv environment variables file | ||||
| .env | ||||
| .env.test | ||||
|  | ||||
| # parcel-bundler cache (https://parceljs.org/) | ||||
| .cache | ||||
|  | ||||
| # next.js build output | ||||
| .next | ||||
|  | ||||
| # nuxt.js build output | ||||
| .nuxt | ||||
|  | ||||
| # vuepress build output | ||||
| .vuepress/dist | ||||
|  | ||||
| # Serverless directories | ||||
| .serverless/ | ||||
|  | ||||
| # FuseBox cache | ||||
| .fusebox/ | ||||
|  | ||||
| # DynamoDB Local files | ||||
| .dynamodb/ | ||||
|   | ||||
							
								
								
									
										10196
									
								
								__tests__/data/golang-dl.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10196
									
								
								__tests__/data/golang-dl.json
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -43,9 +43,10 @@ describe('installer tests', () => { | ||||
|  | ||||
|   describe('the latest release of a go version', () => { | ||||
|     beforeEach(() => { | ||||
|       nock('https://api.github.com') | ||||
|         .get('/repos/golang/go/git/refs/tags') | ||||
|         .replyWithFile(200, path.join(dataDir, 'golang-tags.json')); | ||||
|       nock('https://golang.org') | ||||
|         .get('/dl/') | ||||
|         .query({mode: 'json', include: 'all'}) | ||||
|         .replyWithFile(200, path.join(dataDir, 'golang-dl.json')); | ||||
|     }); | ||||
|  | ||||
|     afterEach(() => { | ||||
| @@ -79,7 +80,7 @@ describe('installer tests', () => { | ||||
|  | ||||
|     it('Acquires latest release version of go if using 1.x and no matching version is installed', async () => { | ||||
|       await installer.getGo('1.x'); | ||||
|       const goDir = path.join(toolDir, 'go', '1.13.0-beta1', os.arch()); | ||||
|       const goDir = path.join(toolDir, 'go', '1.13.0', os.arch()); | ||||
|  | ||||
|       expect(fs.existsSync(`${goDir}.complete`)).toBe(true); | ||||
|       if (IS_WINDOWS) { | ||||
|   | ||||
| @@ -8,6 +8,7 @@ inputs: | ||||
| # Deprecated option, do not use. Will not be supported after October 1, 2019 | ||||
|   version: | ||||
|     description: 'Deprecated. Use go-version instead. Will not be supported after October 1, 2019' | ||||
|     deprecationMessage: 'The version property will not be supported after October 1, 2019. Use go-version instead' | ||||
| runs: | ||||
|   using: 'node12' | ||||
|   main: 'lib/setup-go.js' | ||||
|   | ||||
| @@ -72,6 +72,7 @@ function acquireGo(version) { | ||||
|         // | ||||
|         let fileName = getFileName(version); | ||||
|         let downloadUrl = getDownloadUrl(fileName); | ||||
|         core.debug('Downloading Go from: ' + downloadUrl); | ||||
|         let downloadPath = null; | ||||
|         try { | ||||
|             downloadPath = yield tc.downloadTool(downloadUrl); | ||||
| @@ -102,8 +103,14 @@ function acquireGo(version) { | ||||
|     }); | ||||
| } | ||||
| function getFileName(version) { | ||||
|     const arches = { | ||||
|         x64: 'amd64', | ||||
|         arm: 'armv6l', | ||||
|         arm64: 'arm64', | ||||
|         default: '386' | ||||
|     }; | ||||
|     const platform = osPlat == 'win32' ? 'windows' : osPlat; | ||||
|     const arch = osArch == 'x64' ? 'amd64' : '386'; | ||||
|     const arch = arches[osArch] || arches['default']; | ||||
|     const ext = osPlat == 'win32' ? 'zip' : 'tar.gz'; | ||||
|     const filename = util.format('go%s.%s-%s.%s', version, platform, arch, ext); | ||||
|     return filename; | ||||
| @@ -186,10 +193,9 @@ function getLatestVersion(version) { | ||||
| function getAvailableVersions() { | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         let rest = new restm.RestClient('setup-go'); | ||||
|         let tags = (yield rest.get('https://api.github.com/repos/golang/go/git/refs/tags')).result || []; | ||||
|         return tags | ||||
|             .filter(tag => tag.ref.match(/go\d+\.[\w\.]+/g)) | ||||
|             .map(tag => tag.ref.replace('refs/tags/go', '')); | ||||
|         let tags = (yield rest.get('https://golang.org/dl/?mode=json&include=all')) | ||||
|             .result || []; | ||||
|         return tags.map(tag => tag.version.replace('go', '')); | ||||
|     }); | ||||
| } | ||||
| function getPossibleVersions(version) { | ||||
|   | ||||
| @@ -57,6 +57,9 @@ async function acquireGo(version: string): Promise<string> { | ||||
|   // | ||||
|   let fileName: string = getFileName(version); | ||||
|   let downloadUrl: string = getDownloadUrl(fileName); | ||||
|  | ||||
|   core.debug('Downloading Go from: ' + downloadUrl); | ||||
|  | ||||
|   let downloadPath: string | null = null; | ||||
|   try { | ||||
|     downloadPath = await tc.downloadTool(downloadUrl); | ||||
| @@ -89,8 +92,15 @@ async function acquireGo(version: string): Promise<string> { | ||||
| } | ||||
|  | ||||
| function getFileName(version: string): string { | ||||
|   const arches: {[arch: string]: string} = { | ||||
|     x64: 'amd64', | ||||
|     arm: 'armv6l', | ||||
|     arm64: 'arm64', | ||||
|     default: '386' | ||||
|   }; | ||||
|  | ||||
|   const platform: string = osPlat == 'win32' ? 'windows' : osPlat; | ||||
|   const arch: string = osArch == 'x64' ? 'amd64' : '386'; | ||||
|   const arch: string = arches[osArch] || arches['default']; | ||||
|   const ext: string = osPlat == 'win32' ? 'zip' : 'tar.gz'; | ||||
|   const filename: string = util.format( | ||||
|     'go%s.%s-%s.%s', | ||||
| @@ -99,6 +109,7 @@ function getFileName(version: string): string { | ||||
|     arch, | ||||
|     ext | ||||
|   ); | ||||
|  | ||||
|   return filename; | ||||
| } | ||||
|  | ||||
| @@ -187,19 +198,16 @@ async function getLatestVersion(version: string): Promise<string> { | ||||
| } | ||||
|  | ||||
| interface IGoRef { | ||||
|   ref: string; | ||||
|   version: string; | ||||
| } | ||||
|  | ||||
| async function getAvailableVersions(): Promise<string[]> { | ||||
|   let rest: restm.RestClient = new restm.RestClient('setup-go'); | ||||
|   let tags: IGoRef[] = | ||||
|     (await rest.get<IGoRef[]>( | ||||
|       'https://api.github.com/repos/golang/go/git/refs/tags' | ||||
|     )).result || []; | ||||
|     (await rest.get<IGoRef[]>('https://golang.org/dl/?mode=json&include=all')) | ||||
|       .result || []; | ||||
|  | ||||
|   return tags | ||||
|     .filter(tag => tag.ref.match(/go\d+\.[\w\.]+/g)) | ||||
|     .map(tag => tag.ref.replace('refs/tags/go', '')); | ||||
|   return tags.map(tag => tag.version.replace('go', '')); | ||||
| } | ||||
|  | ||||
| async function getPossibleVersions(version: string): Promise<string[]> { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user