mirror of
https://github.com/docker/setup-qemu-action.git
synced 2026-08-01 04:23:40 +00:00
Compare commits
13 Commits
41af4f6ee6
...
7066b9044f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7066b9044f | ||
|
|
75590814eb | ||
|
|
08d11eb481 | ||
|
|
e53506fe6c | ||
|
|
610b4428f9 | ||
|
|
58a19f851c | ||
|
|
49a12c4cc8 | ||
|
|
2b8ac83d96 | ||
|
|
fdbeaac5ff | ||
|
|
c3bed4ec62 | ||
|
|
0d7f78d53b | ||
|
|
4556918418 | ||
|
|
e267f33184 |
23
.github/workflows/ci.yml
vendored
23
.github/workflows/ci.yml
vendored
@ -79,3 +79,26 @@ jobs:
|
||||
echo "::error::Should have failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cache-image:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
cache:
|
||||
- true
|
||||
- false
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
-
|
||||
name: Set up QEMU
|
||||
id: qemu
|
||||
uses: ./
|
||||
with:
|
||||
image: tonistiigi/binfmt:master
|
||||
cache-image: ${{ matrix.cache }}
|
||||
-
|
||||
name: Available platforms
|
||||
run: echo ${{ steps.qemu.outputs.platforms }}
|
||||
|
||||
4
.github/workflows/test.yml
vendored
4
.github/workflows/test.yml
vendored
@ -25,7 +25,7 @@ jobs:
|
||||
targets: test
|
||||
-
|
||||
name: Upload coverage
|
||||
uses: codecov/codecov-action@v4
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
file: ./coverage/clover.xml
|
||||
files: ./coverage/clover.xml
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
||||
@ -42,9 +42,10 @@ jobs:
|
||||
The following inputs can be used as `step.with` keys:
|
||||
|
||||
| Name | Type | Default | Description |
|
||||
|-------------|--------|-------------------------------------------------------------------------------|--------------------------------------------------|
|
||||
|---------------|--------|-------------------------------------------------------------------------------|----------------------------------------------------|
|
||||
| `image` | String | [`tonistiigi/binfmt:latest`](https://hub.docker.com/r/tonistiigi/binfmt/tags) | QEMU static binaries Docker image |
|
||||
| `platforms` | String | `all` | Platforms to install (e.g., `arm64,riscv64,arm`) |
|
||||
| `cache-image` | Bool | `true` | Cache binfmt image to GitHub Actions cache backend |
|
||||
|
||||
### outputs
|
||||
|
||||
|
||||
@ -16,10 +16,13 @@ describe('getInputs', () => {
|
||||
test.each([
|
||||
[
|
||||
0,
|
||||
new Map<string, string>([]),
|
||||
new Map<string, string>([
|
||||
['cache-image', 'true'],
|
||||
]),
|
||||
{
|
||||
image: 'docker.io/tonistiigi/binfmt:latest',
|
||||
platforms: 'all',
|
||||
cacheImage: true,
|
||||
} as context.Inputs
|
||||
],
|
||||
[
|
||||
@ -27,20 +30,24 @@ describe('getInputs', () => {
|
||||
new Map<string, string>([
|
||||
['image', 'docker/binfmt:latest'],
|
||||
['platforms', 'arm64,riscv64,arm'],
|
||||
['cache-image', 'false'],
|
||||
]),
|
||||
{
|
||||
image: 'docker/binfmt:latest',
|
||||
platforms: 'arm64,riscv64,arm',
|
||||
cacheImage: false,
|
||||
} as context.Inputs
|
||||
],
|
||||
[
|
||||
2,
|
||||
new Map<string, string>([
|
||||
['platforms', 'arm64, riscv64, arm '],
|
||||
['cache-image', 'true'],
|
||||
]),
|
||||
{
|
||||
image: 'docker.io/tonistiigi/binfmt:latest',
|
||||
platforms: 'arm64,riscv64,arm',
|
||||
cacheImage: true,
|
||||
} as context.Inputs
|
||||
]
|
||||
])(
|
||||
|
||||
@ -15,6 +15,10 @@ inputs:
|
||||
description: 'Platforms to install (e.g. arm64,riscv64,arm)'
|
||||
default: 'all'
|
||||
required: false
|
||||
cache-image:
|
||||
description: 'Cache binfmt image to GitHub Actions cache backend'
|
||||
default: 'true'
|
||||
required: false
|
||||
|
||||
outputs:
|
||||
platforms:
|
||||
@ -23,3 +27,4 @@ outputs:
|
||||
runs:
|
||||
using: 'node20'
|
||||
main: 'dist/index.js'
|
||||
post: 'dist/index.js'
|
||||
|
||||
12
dist/index.js
generated
vendored
12
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
@ -25,7 +25,7 @@
|
||||
"license": "Apache-2.0",
|
||||
"packageManager": "yarn@3.6.3",
|
||||
"dependencies": {
|
||||
"@actions/core": "^1.10.1",
|
||||
"@actions/core": "^1.11.1",
|
||||
"@docker/actions-toolkit": "^0.49.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@ -4,11 +4,13 @@ import {Util} from '@docker/actions-toolkit/lib/util';
|
||||
export interface Inputs {
|
||||
image: string;
|
||||
platforms: string;
|
||||
cacheImage: boolean;
|
||||
}
|
||||
|
||||
export function getInputs(): Inputs {
|
||||
return {
|
||||
image: core.getInput('image') || 'docker.io/tonistiigi/binfmt:latest',
|
||||
platforms: Util.getInputList('platforms').join(',') || 'all'
|
||||
platforms: Util.getInputList('platforms').join(',') || 'all',
|
||||
cacheImage: core.getBooleanInput('cache-image')
|
||||
};
|
||||
}
|
||||
|
||||
@ -20,13 +20,7 @@ actionsToolkit.run(
|
||||
});
|
||||
|
||||
await core.group(`Pulling binfmt Docker image`, async () => {
|
||||
await Docker.getExecOutput(['pull', input.image], {
|
||||
ignoreReturnCode: true
|
||||
}).then(res => {
|
||||
if (res.stderr.length > 0 && res.exitCode != 0) {
|
||||
throw new Error(res.stderr.match(/(.*)\s*$/)?.[0]?.trim() ?? 'unknown error');
|
||||
}
|
||||
});
|
||||
await Docker.pull(input.image, input.cacheImage);
|
||||
});
|
||||
|
||||
await core.group(`Image info`, async () => {
|
||||
|
||||
16
yarn.lock
16
yarn.lock
@ -13,8 +13,8 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"@actions/artifact@npm:^2.1.11":
|
||||
version: 2.1.11
|
||||
resolution: "@actions/artifact@npm:2.1.11"
|
||||
version: 2.2.0
|
||||
resolution: "@actions/artifact@npm:2.2.0"
|
||||
dependencies:
|
||||
"@actions/core": ^1.10.0
|
||||
"@actions/github": ^5.1.1
|
||||
@ -29,7 +29,7 @@ __metadata:
|
||||
jwt-decode: ^3.1.2
|
||||
twirp-ts: ^2.5.0
|
||||
unzip-stream: ^0.3.1
|
||||
checksum: dbdafaad11cc573768a00f6b8a7f5109f587eb9461564ae8f15ea8fd1d6a719041df45a92ec204a43a8a1e7ce2c21d8e4229543579b89a3ca8ea30dedddf2fc9
|
||||
checksum: 9a32bdf418094fc17ab663f330305a1940ef1ba84b2d747bcd5fe4505b66cd892de536cb4d86405a7b524ca58793bf68e48247da06a7c043bc64e5ee15739e1e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -50,7 +50,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@actions/core@npm:^1.10.0, @actions/core@npm:^1.10.1, @actions/core@npm:^1.2.6":
|
||||
"@actions/core@npm:^1.10.0, @actions/core@npm:^1.2.6":
|
||||
version: 1.10.1
|
||||
resolution: "@actions/core@npm:1.10.1"
|
||||
dependencies:
|
||||
@ -2913,13 +2913,13 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3":
|
||||
version: 7.0.3
|
||||
resolution: "cross-spawn@npm:7.0.3"
|
||||
version: 7.0.6
|
||||
resolution: "cross-spawn@npm:7.0.6"
|
||||
dependencies:
|
||||
path-key: ^3.1.0
|
||||
shebang-command: ^2.0.0
|
||||
which: ^2.0.1
|
||||
checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52
|
||||
checksum: 8d306efacaf6f3f60e0224c287664093fa9185680b2d195852ba9a863f85d02dcc737094c6e512175f8ee0161f9b87c73c6826034c2422e39de7d6569cf4503b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -3016,7 +3016,7 @@ __metadata:
|
||||
version: 0.0.0-use.local
|
||||
resolution: "docker-setup-qemu@workspace:."
|
||||
dependencies:
|
||||
"@actions/core": ^1.10.1
|
||||
"@actions/core": ^1.11.1
|
||||
"@docker/actions-toolkit": ^0.49.0
|
||||
"@types/node": ^20.12.12
|
||||
"@typescript-eslint/eslint-plugin": ^7.9.0
|
||||
|
||||
Loading…
Reference in New Issue
Block a user