Switch to tonistiigi/binfmt
Add platforms input to choose what platforms to install Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									7e439a0132
								
							
						
					
					
						commit
						b943609390
					
				
							
								
								
									
										12
									
								
								.github/workflows/setup-qemu-ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/workflows/setup-qemu-ci.yml
									
									
									
									
										vendored
									
									
								
							| @ -16,9 +16,12 @@ jobs: | |||||||
|     strategy: |     strategy: | ||||||
|       fail-fast: false |       fail-fast: false | ||||||
|       matrix: |       matrix: | ||||||
|         qemu-version: |         image: | ||||||
|           - latest |           - tonistiigi/binfmt:latest | ||||||
|           - 4.2.0-7 |           - tonistiigi/binfmt:buildkit | ||||||
|  |         platforms: | ||||||
|  |           - all | ||||||
|  |           - arm64,riscv64,arm | ||||||
|     steps: |     steps: | ||||||
|       - |       - | ||||||
|         name: Runner info |         name: Runner info | ||||||
| @ -33,4 +36,5 @@ jobs: | |||||||
|         name: Set up QEMU |         name: Set up QEMU | ||||||
|         uses: ./setup-qemu/ |         uses: ./setup-qemu/ | ||||||
|         with: |         with: | ||||||
|           qemu-version: ${{ matrix.qemu-version }} |           image: ${ matrix.image } | ||||||
|  |           platforms: ${ matrix.platforms } | ||||||
|  | |||||||
| @ -32,7 +32,8 @@ jobs: | |||||||
|         name: Set up QEMU |         name: Set up QEMU | ||||||
|         uses: docker/actions/setup-qemu@v2 |         uses: docker/actions/setup-qemu@v2 | ||||||
|         with: |         with: | ||||||
|           qemu-version: latest |           image: tonistiigi/binfmt:latest | ||||||
|  |           platforms: all | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| ## Customizing | ## Customizing | ||||||
| @ -42,8 +43,9 @@ jobs: | |||||||
| Following inputs can be used as `step.with` keys | Following inputs can be used as `step.with` keys | ||||||
| 
 | 
 | ||||||
| | Name             | Type    | Default                     | Description                        | | | Name             | Type    | Default                     | Description                        | | ||||||
| |------------------|---------|-----------|------------------------------------| | |------------------|---------|-----------------------------|------------------------------------| | ||||||
| | `qemu-version`   | String  | `latest`  | [qemu-user-static](https://github.com/multiarch/qemu-user-static) version (Docker tag). Example: `4.2.0-7` | | | `image`          | String  | `tonistiigi/binfmt:latest`  | QEMU static binaries Docker image. Example: [`tonistiigi/binfmt:latest`](https://hub.docker.com/r/tonistiigi/binfmt/tags) | | ||||||
|  | | `platforms`      | String  | `all`                       | Platforms to install. Example: `arm64,riscv64,arm` | | ||||||
| 
 | 
 | ||||||
| ## Limitation | ## Limitation | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -7,9 +7,13 @@ branding: | |||||||
|   icon: 'truck' |   icon: 'truck' | ||||||
| 
 | 
 | ||||||
| inputs: | inputs: | ||||||
|   qemu-version: |   image: | ||||||
|     description: 'QEMU static binaries Docker image version. Example: 4.2.0-7' |     description: 'QEMU static binaries Docker image. Example: tonistiigi/binfmt:latest' | ||||||
|     default: 'latest' |     default: 'tonistiigi/binfmt:latest' | ||||||
|  |     required: false | ||||||
|  |   platforms: | ||||||
|  |     description: 'Platforms to install. Example: arm64,riscv64,arm' | ||||||
|  |     default: 'all' | ||||||
|     required: false |     required: false | ||||||
| 
 | 
 | ||||||
| runs: | runs: | ||||||
|  | |||||||
							
								
								
									
										15
									
								
								setup-qemu/dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								setup-qemu/dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1011,19 +1011,10 @@ function run() { | |||||||
|                 core.setFailed('Only supported on linux platform'); |                 core.setFailed('Only supported on linux platform'); | ||||||
|                 return; |                 return; | ||||||
|             } |             } | ||||||
|             const qemuVer = core.getInput('qemu-version') || 'latest'; |             const image = core.getInput('image') || 'tonistiigi/binfmt:latest'; | ||||||
|  |             const platforms = core.getInput('platforms') || 'all'; | ||||||
|             core.info(`💎 Installing QEMU static binaries...`); |             core.info(`💎 Installing QEMU static binaries...`); | ||||||
|             yield exec.exec('docker', [ |             yield exec.exec('docker', ['run', '--rm', '--privileged', image, '--install', platforms]); | ||||||
|                 'run', |  | ||||||
|                 '--rm', |  | ||||||
|                 '--privileged', |  | ||||||
|                 `multiarch/qemu-user-static:${qemuVer}`, |  | ||||||
|                 '--reset', |  | ||||||
|                 '-p', |  | ||||||
|                 'yes', |  | ||||||
|                 '--credential', |  | ||||||
|                 'yes' |  | ||||||
|             ]); |  | ||||||
|         } |         } | ||||||
|         catch (error) { |         catch (error) { | ||||||
|             core.setFailed(error.message); |             core.setFailed(error.message); | ||||||
|  | |||||||
| @ -9,20 +9,11 @@ async function run(): Promise<void> { | |||||||
|       return; |       return; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     const qemuVer: string = core.getInput('qemu-version') || 'latest'; |     const image: string = core.getInput('image') || 'tonistiigi/binfmt:latest'; | ||||||
|  |     const platforms: string = core.getInput('platforms') || 'all'; | ||||||
| 
 | 
 | ||||||
|     core.info(`💎 Installing QEMU static binaries...`); |     core.info(`💎 Installing QEMU static binaries...`); | ||||||
|     await exec.exec('docker', [ |     await exec.exec('docker', ['run', '--rm', '--privileged', image, '--install', platforms]); | ||||||
|       'run', |  | ||||||
|       '--rm', |  | ||||||
|       '--privileged', |  | ||||||
|       `multiarch/qemu-user-static:${qemuVer}`, |  | ||||||
|       '--reset', |  | ||||||
|       '-p', |  | ||||||
|       'yes', |  | ||||||
|       '--credential', |  | ||||||
|       'yes' |  | ||||||
|     ]); |  | ||||||
|   } catch (error) { |   } catch (error) { | ||||||
|     core.setFailed(error.message); |     core.setFailed(error.message); | ||||||
|   } |   } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user