mirror of
				https://github.com/actions-rs/cargo.git
				synced 2025-10-31 23:43:49 +00:00 
			
		
		
		
	Merge 1f50d6efcaf775922f5bdf0309af25fb5373a6f3 into 9e120dd99b0fbad1c065f686657e914e76bd7b72
This commit is contained in:
		
						commit
						8a87bcc184
					
				| @ -17,6 +17,11 @@ inputs: | ||||
|   use-cross: | ||||
|     description: Use cross instead of cargo | ||||
|     default: false | ||||
| outputs: | ||||
|   stdout: | ||||
|     description: Standard out of the program | ||||
|   stderr: | ||||
|     description: Standard err of the program | ||||
| 
 | ||||
| runs: | ||||
|   using: 'node12' | ||||
|  | ||||
							
								
								
									
										30
									
								
								src/main.ts
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								src/main.ts
									
									
									
									
									
								
							| @ -5,7 +5,9 @@ import * as core from "@actions/core"; | ||||
| import * as input from "./input"; | ||||
| import { Cargo, Cross } from "@actions-rs/core"; | ||||
| 
 | ||||
| export async function run(actionInput: input.Input): Promise<void> { | ||||
| export async function run( | ||||
|     actionInput: input.Input | ||||
| ): Promise<{ code: number; stdout: string; stderr: string }> { | ||||
|     let program; | ||||
|     if (actionInput.useCross) { | ||||
|         program = await Cross.getOrInstall(); | ||||
| @ -20,7 +22,23 @@ export async function run(actionInput: input.Input): Promise<void> { | ||||
|     args.push(actionInput.command); | ||||
|     args = args.concat(actionInput.args); | ||||
| 
 | ||||
|     await program.call(args); | ||||
|     let stdout = ""; | ||||
|     let stderr = ""; | ||||
| 
 | ||||
|     const options = { | ||||
|         listeners: { | ||||
|             stdout: (data: Buffer) => { | ||||
|                 stdout += data.toString(); | ||||
|             }, | ||||
|             stderr: (data: Buffer) => { | ||||
|                 stderr += data.toString(); | ||||
|             }, | ||||
|         }, | ||||
|     }; | ||||
| 
 | ||||
|     const code = await program.call(args, options); | ||||
| 
 | ||||
|     return { code, stdout, stderr }; | ||||
| } | ||||
| 
 | ||||
| async function main(): Promise<void> { | ||||
| @ -30,7 +48,13 @@ async function main(): Promise<void> { | ||||
|     const actionInput = input.get(); | ||||
| 
 | ||||
|     try { | ||||
|         await run(actionInput); | ||||
|         const { stdout, stderr } = await run(actionInput); | ||||
|         core.startGroup("setting outputs"); | ||||
|         console.log("stdout: ", stdout.slice(0, 50), "..."); | ||||
|         core.setOutput("stdout", stdout); | ||||
|         console.log("stderr: ", stderr.slice(0, 50), "..."); | ||||
|         core.setOutput("stderr", stderr); | ||||
|         core.endGroup(); | ||||
|     } catch (error) { | ||||
|         core.setFailed((<Error>error).message); | ||||
|     } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user