Compare commits

..

12 Commits

Author SHA1 Message Date
CrazyMax
e53506fe6c
chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-08 09:35:52 +01:00
dependabot[bot]
610b4428f9
build(deps): bump @actions/core from 1.10.1 to 1.11.1
Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.10.1 to 1.11.1.
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core)

---
updated-dependencies:
- dependency-name: "@actions/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-08 08:34:18 +00:00
CrazyMax
58a19f851c
Merge pull request #182 from docker/dependabot/npm_and_yarn/cross-spawn-7.0.6
build(deps): bump cross-spawn from 7.0.3 to 7.0.6
2025-01-08 09:31:49 +01:00
CrazyMax
49a12c4cc8
Merge pull request #180 from docker/dependabot/github_actions/codecov/codecov-action-5
build(deps): bump codecov/codecov-action from 4 to 5
2025-01-08 09:31:29 +01:00
CrazyMax
2b8ac83d96
ci: fix deprecated input for codecov-action
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-08 09:29:31 +01:00
Tõnis Tiigi
fdbeaac5ff
Merge pull request #130 from crazy-max/cache-image
Some checks failed
test / test (push) Failing after 58s
validate / prepare (push) Failing after 1s
validate / validate (push) Has been skipped
ci / default (push) Failing after 1s
ci / main (tonistiigi/binfmt:latest, all) (push) Failing after 2s
ci / main (tonistiigi/binfmt:latest, arm64,riscv64,arm) (push) Failing after 1s
ci / main (tonistiigi/binfmt:master, all) (push) Failing after 1s
ci / main (tonistiigi/binfmt:master, arm64,riscv64,arm) (push) Failing after 1s
ci / error (push) Failing after 1s
ci / cache-image (false) (push) Failing after 1s
ci / cache-image (true) (push) Failing after 1s
cache-image input to enable/disable caching of binfmt image
2025-01-07 13:48:23 -08:00
CrazyMax
c3bed4ec62
chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-30 22:55:59 +01:00
CrazyMax
0d7f78d53b
cache-image input to enable/disable caching of binfmt image
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-30 22:54:51 +01:00
dependabot[bot]
4556918418
build(deps): bump cross-spawn from 7.0.3 to 7.0.6
Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.6.
- [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.6)

---
updated-dependencies:
- dependency-name: cross-spawn
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-19 15:10:19 +00:00
dependabot[bot]
e267f33184
build(deps): bump codecov/codecov-action from 4 to 5
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4 to 5.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v4...v5)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-15 06:35:34 +00:00
CrazyMax
8b562efa09
Merge pull request #175 from crazy-max/publish-immutable-action
ci: publish as immutable action workflow
2024-10-26 00:41:07 +02:00
CrazyMax
2f493fa515
ci: publish as immutable action workflow
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-10-25 13:11:58 +02:00
11 changed files with 87 additions and 34 deletions

View File

@ -79,3 +79,26 @@ jobs:
echo "::error::Should have failed" echo "::error::Should have failed"
exit 1 exit 1
fi 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 }}

21
.github/workflows/publish.yml vendored Normal file
View File

@ -0,0 +1,21 @@
name: publish
on:
release:
types:
- published
jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
packages: write
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Publish
uses: actions/publish-immutable-action@v0.0.4

View File

@ -25,7 +25,7 @@ jobs:
targets: test targets: test
- -
name: Upload coverage name: Upload coverage
uses: codecov/codecov-action@v4 uses: codecov/codecov-action@v5
with: with:
file: ./coverage/clover.xml files: ./coverage/clover.xml
token: ${{ secrets.CODECOV_TOKEN }} token: ${{ secrets.CODECOV_TOKEN }}

View File

@ -42,9 +42,10 @@ jobs:
The following inputs can be used as `step.with` keys: The following inputs can be used as `step.with` keys:
| Name | Type | Default | Description | | Name | Type | Default | Description |
|-------------|--------|-------------------------------------------------------------------------------|--------------------------------------------------| |---------------|--------|-------------------------------------------------------------------------------|----------------------------------------------------|
| `image` | String | [`tonistiigi/binfmt:latest`](https://hub.docker.com/r/tonistiigi/binfmt/tags) | QEMU static binaries Docker image | | `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`) | | `platforms` | String | `all` | Platforms to install (e.g., `arm64,riscv64,arm`) |
| `cache-image` | Bool | `true` | Cache binfmt image to GitHub Actions cache backend |
### outputs ### outputs

View File

@ -16,10 +16,13 @@ describe('getInputs', () => {
test.each([ test.each([
[ [
0, 0,
new Map<string, string>([]), new Map<string, string>([
['cache-image', 'true'],
]),
{ {
image: 'docker.io/tonistiigi/binfmt:latest', image: 'docker.io/tonistiigi/binfmt:latest',
platforms: 'all', platforms: 'all',
cacheImage: true,
} as context.Inputs } as context.Inputs
], ],
[ [
@ -27,20 +30,24 @@ describe('getInputs', () => {
new Map<string, string>([ new Map<string, string>([
['image', 'docker/binfmt:latest'], ['image', 'docker/binfmt:latest'],
['platforms', 'arm64,riscv64,arm'], ['platforms', 'arm64,riscv64,arm'],
['cache-image', 'false'],
]), ]),
{ {
image: 'docker/binfmt:latest', image: 'docker/binfmt:latest',
platforms: 'arm64,riscv64,arm', platforms: 'arm64,riscv64,arm',
cacheImage: false,
} as context.Inputs } as context.Inputs
], ],
[ [
2, 2,
new Map<string, string>([ new Map<string, string>([
['platforms', 'arm64, riscv64, arm '], ['platforms', 'arm64, riscv64, arm '],
['cache-image', 'true'],
]), ]),
{ {
image: 'docker.io/tonistiigi/binfmt:latest', image: 'docker.io/tonistiigi/binfmt:latest',
platforms: 'arm64,riscv64,arm', platforms: 'arm64,riscv64,arm',
cacheImage: true,
} as context.Inputs } as context.Inputs
] ]
])( ])(

View File

@ -15,6 +15,10 @@ inputs:
description: 'Platforms to install (e.g. arm64,riscv64,arm)' description: 'Platforms to install (e.g. arm64,riscv64,arm)'
default: 'all' default: 'all'
required: false required: false
cache-image:
description: 'Cache binfmt image to GitHub Actions cache backend'
default: 'true'
required: false
outputs: outputs:
platforms: platforms:
@ -23,3 +27,4 @@ outputs:
runs: runs:
using: 'node20' using: 'node20'
main: 'dist/index.js' main: 'dist/index.js'
post: 'dist/index.js'

30
dist/index.js generated vendored

File diff suppressed because one or more lines are too long

2
dist/index.js.map generated vendored

File diff suppressed because one or more lines are too long

View File

@ -4,11 +4,13 @@ import {Util} from '@docker/actions-toolkit/lib/util';
export interface Inputs { export interface Inputs {
image: string; image: string;
platforms: string; platforms: string;
cacheImage: boolean;
} }
export function getInputs(): Inputs { export function getInputs(): Inputs {
return { return {
image: core.getInput('image') || 'docker.io/tonistiigi/binfmt:latest', 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')
}; };
} }

View File

@ -20,13 +20,7 @@ actionsToolkit.run(
}); });
await core.group(`Pulling binfmt Docker image`, async () => { await core.group(`Pulling binfmt Docker image`, async () => {
await Docker.getExecOutput(['pull', input.image], { await Docker.pull(input.image, input.cacheImage);
ignoreReturnCode: true
}).then(res => {
if (res.stderr.length > 0 && res.exitCode != 0) {
throw new Error(res.stderr.match(/(.*)\s*$/)?.[0]?.trim() ?? 'unknown error');
}
});
}); });
await core.group(`Image info`, async () => { await core.group(`Image info`, async () => {

View File

@ -2905,13 +2905,13 @@ __metadata:
linkType: hard linkType: hard
"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": "cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3":
version: 7.0.3 version: 7.0.6
resolution: "cross-spawn@npm:7.0.3" resolution: "cross-spawn@npm:7.0.6"
dependencies: dependencies:
path-key: ^3.1.0 path-key: ^3.1.0
shebang-command: ^2.0.0 shebang-command: ^2.0.0
which: ^2.0.1 which: ^2.0.1
checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 checksum: 8d306efacaf6f3f60e0224c287664093fa9185680b2d195852ba9a863f85d02dcc737094c6e512175f8ee0161f9b87c73c6826034c2422e39de7d6569cf4503b
languageName: node languageName: node
linkType: hard linkType: hard