mirror of
				https://github.com/docker/setup-qemu-action.git
				synced 2025-10-31 01:00:11 +08:00 
			
		
		
		
	Merge pull request #61 from crazy-max/exec-output
Use built-in getExecOutput
This commit is contained in:
		
						commit
						8c1e35a8c6
					
				
							
								
								
									
										21
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								README.md
									
									
									
									
									
								
							| @ -13,7 +13,7 @@ ___ | ||||
| * [Usage](#usage) | ||||
| * [Customizing](#customizing) | ||||
|   * [inputs](#inputs) | ||||
| * [Keep up-to-date with GitHub Dependabot](#keep-up-to-date-with-github-dependabot) | ||||
| * [Contributing](#contributing) | ||||
| 
 | ||||
| ## Usage | ||||
| 
 | ||||
| @ -39,7 +39,7 @@ jobs: | ||||
| Following inputs can be used as `step.with` keys | ||||
| 
 | ||||
| | Name        | Type   | Description                                                                                                               | | ||||
| |------------------|---------|------------------------------------| | ||||
| |-------------|--------|---------------------------------------------------------------------------------------------------------------------------| | ||||
| | `image`     | String | QEMU static binaries Docker image (default [`tonistiigi/binfmt:latest`](https://hub.docker.com/r/tonistiigi/binfmt/tags)) | | ||||
| | `platforms` | String | Platforms to install (e.g. `arm64,riscv64,arm` ; default `all`)                                                           | | ||||
| 
 | ||||
| @ -51,18 +51,7 @@ Following outputs are available | ||||
| |---------------|---------|---------------------------------------| | ||||
| | `platforms`   | String  | Available platforms (comma separated) | | ||||
| 
 | ||||
| ## Keep up-to-date with GitHub Dependabot | ||||
| ## Contributing | ||||
| 
 | ||||
| Since [Dependabot](https://docs.github.com/en/github/administering-a-repository/keeping-your-actions-up-to-date-with-github-dependabot) | ||||
| has [native GitHub Actions support](https://docs.github.com/en/github/administering-a-repository/configuration-options-for-dependency-updates#package-ecosystem), | ||||
| to enable it on your GitHub repo all you need to do is add the `.github/dependabot.yml` file: | ||||
| 
 | ||||
| ```yaml | ||||
| version: 2 | ||||
| updates: | ||||
|   # Maintain dependencies for GitHub Actions | ||||
|   - package-ecosystem: "github-actions" | ||||
|     directory: "/" | ||||
|     schedule: | ||||
|       interval: "daily" | ||||
| ``` | ||||
| Want to contribute? Awesome! You can find information about contributing to | ||||
| this project in the [CONTRIBUTING.md](/.github/CONTRIBUTING.md) | ||||
|  | ||||
							
								
								
									
										2
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								dist/index.js.map
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/index.js.map
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										34
									
								
								src/exec.ts
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								src/exec.ts
									
									
									
									
									
								
							| @ -1,34 +0,0 @@ | ||||
| import * as actionsExec from '@actions/exec'; | ||||
| import {ExecOptions} from '@actions/exec'; | ||||
| 
 | ||||
| export interface ExecResult { | ||||
|   success: boolean; | ||||
|   stdout: string; | ||||
|   stderr: string; | ||||
| } | ||||
| 
 | ||||
| export const exec = async (command: string, args: string[] = [], silent: boolean): Promise<ExecResult> => { | ||||
|   let stdout = ''; | ||||
|   let stderr = ''; | ||||
| 
 | ||||
|   const options: ExecOptions = { | ||||
|     silent: silent, | ||||
|     ignoreReturnCode: true | ||||
|   }; | ||||
|   options.listeners = { | ||||
|     stdout: (data: Buffer) => { | ||||
|       stdout += data.toString(); | ||||
|     }, | ||||
|     stderr: (data: Buffer) => { | ||||
|       stderr += data.toString(); | ||||
|     } | ||||
|   }; | ||||
| 
 | ||||
|   const returnCode: number = await actionsExec.exec(command, args, options); | ||||
| 
 | ||||
|   return { | ||||
|     success: returnCode === 0, | ||||
|     stdout: stdout.trim(), | ||||
|     stderr: stderr.trim() | ||||
|   }; | ||||
| }; | ||||
							
								
								
									
										12
									
								
								src/main.ts
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								src/main.ts
									
									
									
									
									
								
							| @ -1,4 +1,3 @@ | ||||
| import * as mexec from './exec'; | ||||
| import * as core from '@actions/core'; | ||||
| import * as exec from '@actions/exec'; | ||||
| import {issueCommand} from '@actions/core/lib/command'; | ||||
| @ -31,9 +30,14 @@ async function run(): Promise<void> { | ||||
|     core.endGroup(); | ||||
| 
 | ||||
|     core.startGroup(`Extracting available platforms`); | ||||
|     await mexec.exec(`docker`, ['run', '--rm', '--privileged', image], true).then(res => { | ||||
|       if (res.stderr != '' && !res.success) { | ||||
|         throw new Error(res.stderr); | ||||
|     await exec | ||||
|       .getExecOutput('docker', ['run', '--rm', '--privileged', image], { | ||||
|         ignoreReturnCode: true, | ||||
|         silent: true | ||||
|       }) | ||||
|       .then(res => { | ||||
|         if (res.stderr.length > 0 && res.exitCode != 0) { | ||||
|           throw new Error(res.stderr.trim()); | ||||
|         } | ||||
|         const platforms: Platforms = JSON.parse(res.stdout.trim()); | ||||
|         core.info(`${platforms.supported.join(',')}`); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 CrazyMax
						CrazyMax