mirror of
				https://github.com/actions/setup-dotnet.git
				synced 2025-10-31 16:03:45 +00:00 
			
		
		
		
	Support rollForward option from global.json
This commit is contained in:
		
							parent
							
								
									8309d4ee7e
								
							
						
					
					
						commit
						13fd5bf191
					
				| @ -44,4 +44,20 @@ describe('setup-dotnet tests', () => { | ||||
|       expect(fs.existsSync(path.join(toolDir, 'dotnet'))).toBe(true); | ||||
|     } | ||||
|   }, 400000); | ||||
| 
 | ||||
|   it('Acquires version of dotnet from global.json if no matching version is installed', async () => { | ||||
|     const globalJsonPath = path.join(process.cwd(), 'global.json'); | ||||
|     const jsonContents = `{${os.EOL}"sdk": {${os.EOL}"version": "3.1.201",${os.EOL}"rollForward": "latestFeature"${os.EOL}}${os.EOL}}`; | ||||
|     if (!fs.existsSync(globalJsonPath)) { | ||||
|       fs.writeFileSync(globalJsonPath, jsonContents); | ||||
|     } | ||||
|     await setup.run(); | ||||
| 
 | ||||
|     expect(fs.existsSync(path.join(toolDir, 'sdk', '3.1.412'))).toBe(true); | ||||
|     if (IS_WINDOWS) { | ||||
|       expect(fs.existsSync(path.join(toolDir, 'dotnet.exe'))).toBe(true); | ||||
|     } else { | ||||
|       expect(fs.existsSync(path.join(toolDir, 'dotnet'))).toBe(true); | ||||
|     } | ||||
|   }, 400000); | ||||
| }); | ||||
|  | ||||
							
								
								
									
										24
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							| @ -7447,7 +7447,7 @@ function octokitRestNormalizeGitReferenceResponses (octokit) { | ||||
| /***/ 314: | ||||
| /***/ (function(module) { | ||||
| 
 | ||||
| module.exports = {"name":"@octokit/graphql","version":"2.1.3","publishConfig":{"access":"public"},"description":"GitHub GraphQL API client for browsers and Node","main":"index.js","scripts":{"prebuild":"mkdirp dist/","build":"npm-run-all build:*","build:development":"webpack --mode development --entry . --output-library=octokitGraphql --output=./dist/octokit-graphql.js --profile --json > dist/bundle-stats.json","build:production":"webpack --mode production --entry . --plugin=compression-webpack-plugin --output-library=octokitGraphql --output-path=./dist --output-filename=octokit-graphql.min.js --devtool source-map","bundle-report":"webpack-bundle-analyzer dist/bundle-stats.json --mode=static --no-open --report dist/bundle-report.html","coverage":"nyc report --reporter=html && open coverage/index.html","coverage:upload":"nyc report --reporter=text-lcov | coveralls","pretest":"standard","test":"nyc mocha test/*-test.js","test:browser":"cypress run --browser chrome"},"repository":{"type":"git","url":"https://github.com/octokit/graphql.js.git"},"keywords":["octokit","github","api","graphql"],"author":"Gregor Martynus (https://github.com/gr2m)","license":"MIT","bugs":{"url":"https://github.com/octokit/graphql.js/issues"},"homepage":"https://github.com/octokit/graphql.js#readme","dependencies":{"@octokit/request":"^5.0.0","universal-user-agent":"^2.0.3"},"devDependencies":{"chai":"^4.2.0","compression-webpack-plugin":"^2.0.0","coveralls":"^3.0.3","cypress":"^3.1.5","fetch-mock":"^7.3.1","mkdirp":"^0.5.1","mocha":"^6.0.0","npm-run-all":"^4.1.3","nyc":"^14.0.0","semantic-release":"^15.13.3","simple-mock":"^0.8.0","standard":"^12.0.1","webpack":"^4.29.6","webpack-bundle-analyzer":"^3.1.0","webpack-cli":"^3.2.3"},"bundlesize":[{"path":"./dist/octokit-graphql.min.js.gz","maxSize":"5KB"}],"release":{"publish":["@semantic-release/npm",{"path":"@semantic-release/github","assets":["dist/*","!dist/*.map.gz"]}]},"standard":{"globals":["describe","before","beforeEach","afterEach","after","it","expect"]},"files":["lib"],"_resolved":"https://registry.npmjs.org/@octokit/graphql/-/graphql-2.1.3.tgz","_integrity":"sha512-XoXJqL2ondwdnMIW3wtqJWEwcBfKk37jO/rYkoxNPEVeLBDGsGO1TCWggrAlq3keGt/O+C/7VepXnukUxwt5vA==","_from":"@octokit/graphql@2.1.3"}; | ||||
| module.exports = {"_args":[["@octokit/graphql@2.1.3","/Users/vsafonkin/projects/setup-dotnet"]],"_from":"@octokit/graphql@2.1.3","_id":"@octokit/graphql@2.1.3","_inBundle":false,"_integrity":"sha512-XoXJqL2ondwdnMIW3wtqJWEwcBfKk37jO/rYkoxNPEVeLBDGsGO1TCWggrAlq3keGt/O+C/7VepXnukUxwt5vA==","_location":"/@octokit/graphql","_phantomChildren":{},"_requested":{"type":"version","registry":true,"raw":"@octokit/graphql@2.1.3","name":"@octokit/graphql","escapedName":"@octokit%2fgraphql","scope":"@octokit","rawSpec":"2.1.3","saveSpec":null,"fetchSpec":"2.1.3"},"_requiredBy":["/@actions/github"],"_resolved":"https://registry.npmjs.org/@octokit/graphql/-/graphql-2.1.3.tgz","_spec":"2.1.3","_where":"/Users/vsafonkin/projects/setup-dotnet","author":{"name":"Gregor Martynus","url":"https://github.com/gr2m"},"bugs":{"url":"https://github.com/octokit/graphql.js/issues"},"bundlesize":[{"path":"./dist/octokit-graphql.min.js.gz","maxSize":"5KB"}],"dependencies":{"@octokit/request":"^5.0.0","universal-user-agent":"^2.0.3"},"description":"GitHub GraphQL API client for browsers and Node","devDependencies":{"chai":"^4.2.0","compression-webpack-plugin":"^2.0.0","coveralls":"^3.0.3","cypress":"^3.1.5","fetch-mock":"^7.3.1","mkdirp":"^0.5.1","mocha":"^6.0.0","npm-run-all":"^4.1.3","nyc":"^14.0.0","semantic-release":"^15.13.3","simple-mock":"^0.8.0","standard":"^12.0.1","webpack":"^4.29.6","webpack-bundle-analyzer":"^3.1.0","webpack-cli":"^3.2.3"},"files":["lib"],"homepage":"https://github.com/octokit/graphql.js#readme","keywords":["octokit","github","api","graphql"],"license":"MIT","main":"index.js","name":"@octokit/graphql","publishConfig":{"access":"public"},"release":{"publish":["@semantic-release/npm",{"path":"@semantic-release/github","assets":["dist/*","!dist/*.map.gz"]}]},"repository":{"type":"git","url":"git+https://github.com/octokit/graphql.js.git"},"scripts":{"build":"npm-run-all build:*","build:development":"webpack --mode development --entry . --output-library=octokitGraphql --output=./dist/octokit-graphql.js --profile --json > dist/bundle-stats.json","build:production":"webpack --mode production --entry . --plugin=compression-webpack-plugin --output-library=octokitGraphql --output-path=./dist --output-filename=octokit-graphql.min.js --devtool source-map","bundle-report":"webpack-bundle-analyzer dist/bundle-stats.json --mode=static --no-open --report dist/bundle-report.html","coverage":"nyc report --reporter=html && open coverage/index.html","coverage:upload":"nyc report --reporter=text-lcov | coveralls","prebuild":"mkdirp dist/","pretest":"standard","test":"nyc mocha test/*-test.js","test:browser":"cypress run --browser chrome"},"standard":{"globals":["describe","before","beforeEach","afterEach","after","it","expect"]},"version":"2.1.3"}; | ||||
| 
 | ||||
| /***/ }), | ||||
| 
 | ||||
| @ -7829,12 +7829,7 @@ function run() { | ||||
|                 core.debug('No version found, trying to find version from global.json'); | ||||
|                 const globalJsonPath = path.join(process.cwd(), 'global.json'); | ||||
|                 if (fs.existsSync(globalJsonPath)) { | ||||
|                     const globalJson = JSON.parse( | ||||
|                     // .trim() is necessary to strip BOM https://github.com/nodejs/node/issues/20649
 | ||||
|                     fs.readFileSync(globalJsonPath, { encoding: 'utf8' }).trim()); | ||||
|                     if (globalJson.sdk && globalJson.sdk.version) { | ||||
|                         version = globalJson.sdk.version; | ||||
|                     } | ||||
|                     version = getVersionFromGlobalJson(globalJsonPath); | ||||
|                 } | ||||
|             } | ||||
|             if (version) { | ||||
| @ -7857,6 +7852,21 @@ function run() { | ||||
|     }); | ||||
| } | ||||
| exports.run = run; | ||||
| function getVersionFromGlobalJson(globalJsonPath) { | ||||
|     let version = ""; | ||||
|     const globalJson = JSON.parse( | ||||
|     // .trim() is necessary to strip BOM https://github.com/nodejs/node/issues/20649
 | ||||
|     fs.readFileSync(globalJsonPath, { encoding: 'utf8' }).trim()); | ||||
|     if (globalJson.sdk && globalJson.sdk.version) { | ||||
|         version = globalJson.sdk.version; | ||||
|         const rollForward = globalJson.sdk.rollForward; | ||||
|         if (rollForward && (rollForward === 'latestFeature' || rollForward === 'latestPatch')) { | ||||
|             const [major, minor] = version.split('.'); | ||||
|             version = `${major}.${minor}`; | ||||
|         } | ||||
|     } | ||||
|     return version; | ||||
| } | ||||
| run(); | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -19,13 +19,7 @@ export async function run() { | ||||
|       core.debug('No version found, trying to find version from global.json'); | ||||
|       const globalJsonPath = path.join(process.cwd(), 'global.json'); | ||||
|       if (fs.existsSync(globalJsonPath)) { | ||||
|         const globalJson = JSON.parse( | ||||
|           // .trim() is necessary to strip BOM https://github.com/nodejs/node/issues/20649
 | ||||
|           fs.readFileSync(globalJsonPath, {encoding: 'utf8'}).trim() | ||||
|         ); | ||||
|         if (globalJson.sdk && globalJson.sdk.version) { | ||||
|           version = globalJson.sdk.version; | ||||
|         } | ||||
|         version = getVersionFromGlobalJson(globalJsonPath) | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
| @ -54,4 +48,21 @@ export async function run() { | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| function getVersionFromGlobalJson(globalJsonPath: string): string { | ||||
|     let version: string = "" | ||||
|     const globalJson = JSON.parse( | ||||
|     // .trim() is necessary to strip BOM https://github.com/nodejs/node/issues/20649
 | ||||
|       fs.readFileSync(globalJsonPath, {encoding: 'utf8'}).trim() | ||||
|     ); | ||||
|     if (globalJson.sdk && globalJson.sdk.version) { | ||||
|       version = globalJson.sdk.version; | ||||
|       const rollForward = globalJson.sdk.rollForward | ||||
|       if (rollForward && (rollForward === 'latestFeature' || rollForward === 'latestPatch')) { | ||||
|         const [major, minor]  = version.split('.') | ||||
|         version = `${major}.${minor}` | ||||
|       } | ||||
|     } | ||||
|     return version | ||||
| } | ||||
| 
 | ||||
| run(); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user