mirror of
				https://github.com/actions-rs/cargo.git
				synced 2025-10-31 16:23:50 +00:00 
			
		
		
		
	Smarter args parser and a few debug messages
This commit is contained in:
		
							parent
							
								
									de5e75cc84
								
							
						
					
					
						commit
						40cbaa365c
					
				| @ -1,8 +1,9 @@ | ||||
| import * as args from '../src/args' | ||||
| import * as input from '../src/input' | ||||
| 
 | ||||
| const testEnvVars = { | ||||
|     INPUT_COMMAND: 'build', | ||||
|     INPUT_ARGS: '--release --target x86_64-unknown-linux-gnu --no-default-features --features unstable', | ||||
|     // There are few unnecessary spaces here to check that args parser works properly
 | ||||
|     INPUT_ARGS: '   --release --target x86_64-unknown-linux-gnu    --no-default-features --features unstable       ', | ||||
|     'INPUT_USE-CROSS': 'true', | ||||
|     INPUT_TOOLCHAIN: '+nightly' | ||||
| } | ||||
| @ -14,7 +15,7 @@ describe('actions-rs/check', () => { | ||||
|     }) | ||||
| 
 | ||||
|     it('Parses action input into cargo input', async () => { | ||||
|         const result = args.parse(); | ||||
|         const result = input.parse(); | ||||
| 
 | ||||
|         expect(result.command).toBe('build'); | ||||
|         expect(result.args).toStrictEqual([ | ||||
							
								
								
									
										2
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										13
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										13
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -1,13 +1,13 @@ | ||||
| { | ||||
|   "name": "cargo", | ||||
|   "version": "1.0.0", | ||||
|   "version": "0.1.0", | ||||
|   "lockfileVersion": 1, | ||||
|   "requires": true, | ||||
|   "dependencies": { | ||||
|     "@actions/core": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.0.0.tgz", | ||||
|       "integrity": "sha512-aMIlkx96XH4E/2YZtEOeyrYQfhlas9jIRkfGPqMwXD095Rdkzo4lB6ZmbxPQSzD+e1M+Xsm98ZhuSMYGv/AlqA==" | ||||
|       "version": "1.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.1.0.tgz", | ||||
|       "integrity": "sha512-KKpo3xzo0Zsikni9tbOsEQkxZBGDsYSJZNkTvmo0gPSXrc98TBOcdTvKwwjitjkjHkreTggWdB1ACiAFVgsuzA==" | ||||
|     }, | ||||
|     "@actions/exec": { | ||||
|       "version": "1.0.1", | ||||
| @ -4413,6 +4413,11 @@ | ||||
|       "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "string-argv": { | ||||
|       "version": "0.3.1", | ||||
|       "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", | ||||
|       "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==" | ||||
|     }, | ||||
|     "string-length": { | ||||
|       "version": "2.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", | ||||
|  | ||||
| @ -28,9 +28,10 @@ | ||||
|         "url": "https://github.com/actions-rs/cargo/issues" | ||||
|     }, | ||||
|     "dependencies": { | ||||
|         "@actions/core": "^1.0.0", | ||||
|         "@actions/exec": "^1.0.0", | ||||
|         "@actions/io": "^1.0.0" | ||||
|         "@actions/core": "^1.0.1", | ||||
|         "@actions/exec": "^1.0.1", | ||||
|         "@actions/io": "^1.0.1", | ||||
|         "string-argv": "^0.3.1" | ||||
|     }, | ||||
|     "devDependencies": { | ||||
|         "@types/jest": "^24.0.13", | ||||
|  | ||||
| @ -5,6 +5,8 @@ | ||||
| import * as core from '@actions/core'; | ||||
| import * as exec from '@actions/exec'; | ||||
| 
 | ||||
| import stringArgv from 'string-argv'; | ||||
| 
 | ||||
| // Workaround for a GH bug: https://github.com/actions/toolkit/issues/127
 | ||||
| //
 | ||||
| // For input `all-features: true` it will generate the `INPUT_ALL-FEATURES: true`
 | ||||
| @ -41,8 +43,7 @@ export interface Input { | ||||
| 
 | ||||
| export function parse(): Input { | ||||
|     const command = getInput('command'); | ||||
|     // TODO: This probably will strike back later
 | ||||
|     const args = getInput('args').split(' '); | ||||
|     const args = stringArgv(getInput('args')); | ||||
|     let toolchain = getInput('toolchain'); | ||||
|     if (toolchain.startsWith('+')) { | ||||
|         toolchain = toolchain.slice(1); | ||||
|  | ||||
| @ -10,12 +10,13 @@ async function getCross(): Promise<string> { | ||||
|     try { | ||||
|         return await io.which('cross', true); | ||||
|     } catch (error) { | ||||
|         core.warning('Unable to find cross, installing it now'); | ||||
|         core.debug('Unable to find cross, installing it now'); | ||||
|     } | ||||
| 
 | ||||
|     try { | ||||
|         core.startGroup('Install cross'); | ||||
|         core.warning('Git version of cross will be installed, \ | ||||
|              see https://github.com/actions-rs/cargo/issues/1');
 | ||||
| see https://github.com/actions-rs/cargo/issues/1');
 | ||||
|         await exec.exec('cargo', [ | ||||
|             'install', | ||||
|             '--rev', | ||||
| @ -25,6 +26,9 @@ async function getCross(): Promise<string> { | ||||
|         ]); | ||||
|     } catch (error) { | ||||
|         core.setFailed(error.message); | ||||
|         throw new Error(error); | ||||
|     } finally { | ||||
|         core.endGroup(); | ||||
|     } | ||||
| 
 | ||||
|     // Expecting it to be in PATH already
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user