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:
CrazyMax 2020-08-11 21:49:46 +02:00
parent 7e439a0132
commit b943609390
No known key found for this signature in database
GPG key ID: 3248E46B6BB8C7F7
5 changed files with 27 additions and 35 deletions

View file

@ -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 }

View file

@ -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
@ -41,9 +42,10 @@ 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

View file

@ -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
View file

@ -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);

View file

@ -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);
} }