Compare commits

..

242 Commits

Author SHA1 Message Date
CrazyMax
3c328a53eb Merge pull request #560 from crazy-max/builder-inspect-file
Some checks failed
publish / publish (push) Has been cancelled
builder: support files in inspect command
2025-01-23 10:53:25 +01:00
CrazyMax
2c62255f2d Merge pull request #572 from crazy-max/update-buildkit-buildx
update buildkit to 0.19.0 and buildx to 0.20.1
2025-01-23 10:52:18 +01:00
CrazyMax
ed7e9a44e0 Merge pull request #576 from docker/bot/docker-releases-json
Update `.github/docker-releases.json`
2025-01-23 00:39:26 +01:00
Tonis Tiigi
dd0f91b30b update buildx to v0.20.1
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2025-01-22 15:25:04 -08:00
tonistiigi
5c369b71ab github: update .github/docker-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-22 23:16:25 +00:00
Tõnis Tiigi
8ac9d9c3bd Merge pull request #575 from docker/bot/buildx-releases-json
Update `.github/buildx-releases.json`
2025-01-22 15:15:52 -08:00
tonistiigi
c6b95cb147 github: update .github/buildx-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-22 23:15:28 +00:00
CrazyMax
4b7b2c4fd1 Merge pull request #574 from docker/bot/buildx-lab-releases-json
Update `.github/buildx-lab-releases.json`
2025-01-22 13:09:04 +01:00
crazy-max
ea42e3a061 github: update .github/buildx-lab-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-22 12:07:01 +00:00
CrazyMax
0bcd5b25a2 bake: fix missing default target in group's default targets
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-21 14:30:40 +01:00
CrazyMax
4b68aa828a bake: fix attest disabled attribute
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-21 14:25:43 +01:00
CrazyMax
ba8d872626 Merge pull request #573 from crazy-max/test-cache-post
cache: allow to skip state to send cache directly to gha
2025-01-21 12:19:39 +01:00
CrazyMax
2ecc3150d2 cache: allow to skip state to send cache directly to gha
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-21 10:53:55 +01:00
CrazyMax
5bc1041760 Merge pull request #571 from docker/bot/buildx-releases-json
Update `.github/buildx-releases.json`
2025-01-20 20:54:41 +01:00
CrazyMax
ed5ad08108 update buildkit to 0.19.0 and buildx to 0.20.0
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-20 20:37:32 +01:00
crazy-max
acc213a00a github: update .github/buildx-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-20 19:34:31 +00:00
CrazyMax
e6e18dee25 Merge pull request #570 from crazy-max/compose-cloud
compose: cloud releases support
2025-01-20 16:02:05 +01:00
CrazyMax
d9bd2d45ba test: increase timeout for binary download
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-20 15:40:14 +01:00
CrazyMax
1229986252 compose: cloud releases support
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-20 15:38:48 +01:00
CrazyMax
2925ff2bef Merge pull request #569 from docker/bot/compose-lab-releases-json
Update `.github/compose-lab-releases.json`
2025-01-20 15:17:38 +01:00
crazy-max
41bd4c9503 github: update .github/compose-lab-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-20 14:08:38 +00:00
CrazyMax
b93cb9e902 Merge pull request #568 from crazy-max/compose-lab
ci: compose lab releases
2025-01-20 15:08:09 +01:00
CrazyMax
6e5cf7117a ci: compose lab releases
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-20 13:49:22 +01:00
CrazyMax
6b5c60adb0 Merge pull request #558 from crazy-max/ci-virtualenv
Some checks failed
publish / publish (push) Has been cancelled
ci: add ubuntu arm runners
2025-01-20 10:29:47 +01:00
CrazyMax
1b6fc2257f ci(test): add ubuntu arm runner
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-20 01:00:03 +01:00
CrazyMax
dd2160f477 ci(virtual-env): add ubuntu arm runners
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-19 22:29:30 +01:00
CrazyMax
a54d83c644 Merge pull request #566 from crazy-max/test-github-fix
test(github): generate random filename
2025-01-19 22:23:32 +01:00
CrazyMax
3cdc15c881 Merge pull request #565 from crazy-max/buildx-imagetools
buildx: imagetools
2025-01-19 22:23:19 +01:00
CrazyMax
c901021fb1 Merge pull request #564 from crazy-max/compose-install
compose install
2025-01-19 22:23:06 +01:00
CrazyMax
5b8e902c4d buildx: imagetools
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-19 20:04:33 +01:00
CrazyMax
cab9e2952c test(github): generate random filename
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-19 20:01:05 +01:00
CrazyMax
ac9dc8b527 compose install
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-18 19:23:56 +01:00
CrazyMax
9b3822d698 Merge pull request #561 from crazy-max/ci-buildx-edge
ci(test): use buildx edge releases
2025-01-18 12:34:17 +01:00
CrazyMax
84930a3d2d Merge pull request #563 from docker/bot/compose-releases-json
Update `.github/compose-releases.json`
2025-01-18 12:08:19 +01:00
crazy-max
1195b4311b github: update .github/compose-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-18 11:07:22 +00:00
CrazyMax
f8d303b336 Merge pull request #562 from crazy-max/compose-releases-json
ci: compose releases json workflow
2025-01-18 12:06:52 +01:00
CrazyMax
4a31b494f0 ci: compose releases json workflow
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-18 11:40:16 +01:00
CrazyMax
703a1d1973 ci(test): use buildx edge releases
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-18 11:37:20 +01:00
CrazyMax
e75da9cf2f Merge pull request #559 from docker/bot/buildx-releases-json
Update `.github/buildx-releases.json`
2025-01-18 11:29:00 +01:00
CrazyMax
f3bf577877 builder: support files in inspect command
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-18 11:17:02 +01:00
crazy-max
9ed9b1d1aa github: update .github/buildx-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-18 00:19:11 +00:00
CrazyMax
38fd60d94a Merge pull request #556 from docker/dependabot/npm_and_yarn/actions/tool-cache-2.0.2
build(deps): bump @actions/tool-cache from 2.0.1 to 2.0.2
2025-01-17 00:15:32 +01:00
CrazyMax
246ac9634b Merge pull request #523 from docker/dependabot/npm_and_yarn/actions/cache-4.0.0
build(deps): bump @actions/cache from 3.3.0 to 4.0.0
2025-01-16 15:23:15 +01:00
dependabot[bot]
afc5fed49b build(deps): bump @actions/cache from 3.3.0 to 4.0.0
Bumps [@actions/cache](https://github.com/actions/toolkit/tree/HEAD/packages/cache) from 3.3.0 to 4.0.0.
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/cache/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/@actions/cache@4.0.0/packages/cache)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-16 13:57:13 +00:00
CrazyMax
88b5826b8a Merge pull request #557 from docker/bot/buildx-releases-json
Update `.github/buildx-releases.json`
2025-01-16 09:19:56 +01:00
crazy-max
d49a8c5927 github: update .github/buildx-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-16 00:19:58 +00:00
dependabot[bot]
f5f997cc54 build(deps): bump @actions/tool-cache from 2.0.1 to 2.0.2
Bumps [@actions/tool-cache](https://github.com/actions/toolkit/tree/HEAD/packages/tool-cache) from 2.0.1 to 2.0.2.
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/tool-cache/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/tool-cache)

---
updated-dependencies:
- dependency-name: "@actions/tool-cache"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-15 22:10:44 +00:00
CrazyMax
2f6f85d000 Merge pull request #555 from docker/bot/buildx-releases-json
Update `.github/buildx-releases.json`
2025-01-15 14:47:52 +01:00
crazy-max
f2b7ab25b0 github: update .github/buildx-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-15 13:47:27 +00:00
CrazyMax
f795e92af9 Merge pull request #554 from crazy-max/context-remove-provenanceBuilderID
Some checks failed
publish / publish (push) Has been cancelled
context: remove provenanceBuilderID func
2025-01-15 12:25:00 +01:00
CrazyMax
e46ec802f8 Merge pull request #551 from crazy-max/git-pr-head-ref-optin
context: opt-in pull request head ref
2025-01-15 11:38:38 +01:00
CrazyMax
f2e802cdcd context: remove provenanceBuilderID func
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-15 10:10:17 +01:00
CrazyMax
e02b7d7dab context: opt-in pull request head ref
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-15 10:09:18 +01:00
CrazyMax
9881e80bfd Merge pull request #553 from docker/bot/docker-releases-json
Update `.github/docker-releases.json`
2025-01-14 09:48:37 +01:00
crazy-max
a824931115 github: update .github/docker-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-14 00:27:04 +00:00
CrazyMax
cc12dc0f23 Merge pull request #552 from crazy-max/addlicense-install
dockerfile: use go install for addlicense and update to v1.1.1
2025-01-13 15:03:17 +01:00
CrazyMax
13bd9c8b43 dockerfile: update addlicense to v1.1.1
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-13 14:29:17 +01:00
CrazyMax
231937b397 dockerfile: use go install for addlicense
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-13 14:29:02 +01:00
CrazyMax
54bdcf6c08 Merge pull request #549 from docker/dependabot/npm_and_yarn/actions/artifact-2.2.1
Some checks failed
publish / publish (push) Has been cancelled
build(deps): bump @actions/artifact from 2.2.0 to 2.2.1
2025-01-10 09:40:26 +01:00
CrazyMax
b754abce91 Merge pull request #550 from crazy-max/bake-check-git-auth-token
bake: hasGitAuthTokenSecret func
2025-01-10 09:33:58 +01:00
CrazyMax
73473a8d30 bake: hasGitAuthTokenSecret func
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-10 09:14:36 +01:00
dependabot[bot]
1fcf059bc3 build(deps): bump @actions/artifact from 2.2.0 to 2.2.1
Bumps [@actions/artifact](https://github.com/actions/toolkit/tree/HEAD/packages/artifact) from 2.2.0 to 2.2.1.
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/artifact/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/artifact)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-09 22:19:48 +00:00
CrazyMax
e36200f754 Merge pull request #546 from crazy-max/bake-v6
update bake-action to v6
2025-01-08 18:53:00 +01:00
CrazyMax
7811a01457 Merge pull request #547 from crazy-max/bake-composable-attests
bake: composable attributes for attestations support
2025-01-08 17:34:17 +01:00
CrazyMax
bfc74cf338 bake: composable attributes for attestations support
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-08 15:28:06 +01:00
CrazyMax
d78e250f06 Merge pull request #514 from crazy-max/bake-composable-attrs
bake: support composable attributes
2025-01-08 14:41:29 +01:00
CrazyMax
9c90456f05 Merge pull request #545 from docker/bot/docker-releases-json
Update `.github/docker-releases.json`
2025-01-08 13:21:57 +01:00
CrazyMax
d973aa3819 update bake-action to v6
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-08 13:16:35 +01:00
crazy-max
8a08fe2806 github: update .github/docker-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-08 00:28:31 +00:00
CrazyMax
6187bb12a9 Merge pull request #539 from docker/dependabot/npm_and_yarn/actions/artifact-2.2.0
build(deps): bump @actions/artifact from 2.1.11 to 2.2.0
2025-01-06 10:12:31 +01:00
CrazyMax
4198f608fc Merge pull request #543 from docker/bot/undock-releases-json
Update `.github/undock-releases.json`
2025-01-06 09:53:57 +01:00
crazy-max
f3bd84d2d9 github: update .github/undock-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-06 08:53:48 +00:00
CrazyMax
7d8134f7ee Merge pull request #542 from docker/bot/docker-releases-json
Update `.github/docker-releases.json`
2025-01-06 09:53:16 +01:00
crazy-max
b8e5bf5d47 github: update .github/docker-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-23 12:11:07 +00:00
CrazyMax
fd7471e4b3 Merge pull request #541 from docker/bot/docker-releases-json
Update `.github/docker-releases.json`
2024-12-18 15:27:25 +01:00
crazy-max
de32b3cb22 github: update .github/docker-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-18 14:27:15 +00:00
CrazyMax
8e982c7ecb Merge pull request #540 from docker/bot/buildx-lab-releases-json
Update `.github/buildx-lab-releases.json`
2024-12-18 15:26:37 +01:00
crazy-max
7fe0176aa4 github: update .github/buildx-lab-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-18 12:07:21 +00:00
dependabot[bot]
ea0e154248 build(deps): bump @actions/artifact from 2.1.11 to 2.2.0
Bumps [@actions/artifact](https://github.com/actions/toolkit/tree/HEAD/packages/artifact) from 2.1.11 to 2.2.0.
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/artifact/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/artifact)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-17 22:28:54 +00:00
CrazyMax
6dba1dff74 Merge pull request #538 from docker/bot/buildx-lab-releases-json
Update `.github/buildx-lab-releases.json`
2024-12-17 22:34:29 +01:00
tonistiigi
6e604a85da github: update .github/buildx-lab-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-17 18:26:04 +00:00
Tõnis Tiigi
97f8928706 Merge pull request #537 from crazy-max/update-buildx
update buildx to v0.19.3
2024-12-17 10:25:36 -08:00
CrazyMax
a7d1113dcb update buildx to v0.19.3
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-12-17 13:37:33 +01:00
CrazyMax
c37ffdb5fc Merge pull request #536 from docker/bot/buildx-releases-json
Update `.github/buildx-releases.json`
2024-12-17 13:36:41 +01:00
crazy-max
621224b486 github: update .github/buildx-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-17 12:36:19 +00:00
CrazyMax
3537a9ed79 Merge pull request #535 from tonistiigi/update-buildkit-v0.18.2
update buildkit to v0.18.2
2024-12-17 12:43:04 +01:00
Tonis Tiigi
b67f68d8d3 update buildkit to v0.18.2
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2024-12-16 15:50:40 -08:00
CrazyMax
ea5e6b5583 Merge pull request #534 from crazy-max/util-input-number
Some checks failed
publish / publish (push) Has been cancelled
util: getInputNumber func
2024-12-13 16:26:56 +01:00
CrazyMax
e6e545e60d util: getInputNumber func
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-12-13 13:04:29 +01:00
CrazyMax
ca8094202e Merge pull request #533 from docker/bot/buildx-lab-releases-json
Update `.github/buildx-lab-releases.json`
2024-12-13 12:19:21 +01:00
crazy-max
18f86e8bbe github: update .github/buildx-lab-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-13 11:16:50 +00:00
CrazyMax
015ed3d61a Merge pull request #532 from crazy-max/buildx-cloud-repokey
Some checks failed
publish / publish (push) Has been cancelled
buildx(install): rename lab to cloud
2024-12-12 14:57:04 +01:00
CrazyMax
e1103fddef buildx(install): rename lab to cloud
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-12-12 14:39:17 +01:00
CrazyMax
1d49775be9 Merge pull request #531 from crazy-max/docker-install-local-tcp
docker(install): opt to expose local tcp address
2024-12-12 14:32:14 +01:00
CrazyMax
51e66210fb ci: split docker install by test name
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-12-12 14:18:50 +01:00
CrazyMax
cd8a555683 docker(install): opt to expose local tcp address
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-12-12 11:14:31 +01:00
CrazyMax
e908dafd1d ci: split docker install for other os
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-12-11 21:55:15 +01:00
CrazyMax
ba72b5ac36 Merge pull request #530 from docker/bot/buildx-lab-releases-json
Update `.github/buildx-lab-releases.json`
2024-12-11 13:59:51 +01:00
crazy-max
697daea613 github: update .github/buildx-lab-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-11 12:59:11 +00:00
CrazyMax
cf3b7825d1 Merge pull request #529 from docker/bot/buildx-lab-releases-json
Update `.github/buildx-lab-releases.json`
2024-12-11 13:58:33 +01:00
crazy-max
c02def4ec1 github: update .github/buildx-lab-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-11 00:20:03 +00:00
CrazyMax
f24e36809f Merge pull request #528 from docker/bot/docker-releases-json
Update `.github/docker-releases.json`
2024-12-10 09:41:13 +01:00
crazy-max
525e465d20 github: update .github/docker-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-10 00:30:52 +00:00
CrazyMax
21b322a03a Merge pull request #525 from docker/bot/docker-releases-json
Update `.github/docker-releases.json`
2024-12-09 10:18:56 +01:00
crazy-max
e30237e575 github: update .github/docker-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-07 10:14:11 +00:00
CrazyMax
4ab23ad060 Merge pull request #527 from docker/bot/buildx-releases-json
Update `.github/buildx-releases.json`
2024-12-07 11:13:38 +01:00
crazy-max
516e8d5ec9 github: update .github/buildx-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-07 00:21:40 +00:00
CrazyMax
4126481cc3 Merge pull request #526 from crazy-max/update-readme
readme: add setup-docker-action
2024-12-06 17:16:17 +01:00
CrazyMax
e1274f2024 readme: add setup-docker-action
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-12-06 17:07:02 +01:00
CrazyMax
0a8b89fa07 Merge pull request #524 from docker/bot/docker-releases-json
Update `.github/docker-releases.json`
2024-12-05 13:36:09 +01:00
crazy-max
0d31942772 github: update .github/docker-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-05 12:11:35 +00:00
CrazyMax
f3ecebd074 Merge pull request #522 from tonistiigi/update-buildkit-v0.18.1
github: update buildkit to v0.18.1
2024-12-04 09:59:33 +01:00
Tonis Tiigi
0d60eaffd1 github: update buildkit to v0.18.1
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2024-12-03 17:50:58 -08:00
CrazyMax
068b0dcb39 bake: support composable attributes
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-12-03 15:07:06 +01:00
CrazyMax
36650ca702 Merge pull request #521 from docker/bot/docker-releases-json
Some checks failed
publish / publish (push) Has been cancelled
Update `.github/docker-releases.json`
2024-12-03 14:58:59 +01:00
crazy-max
b232f18282 github: update .github/docker-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-30 00:29:03 +00:00
CrazyMax
2e6acb85f0 Merge pull request #520 from docker/bot/buildx-lab-releases-json
Update `.github/buildx-lab-releases.json`
2024-11-28 15:26:14 +01:00
crazy-max
a8ef02b62a github: update .github/buildx-lab-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-28 14:25:31 +00:00
CrazyMax
4d3be21dad Merge pull request #519 from docker/bot/buildx-lab-releases-json
Update `.github/buildx-lab-releases.json`
2024-11-28 14:38:59 +01:00
crazy-max
5b4f5428ef github: update .github/buildx-lab-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-28 13:36:53 +00:00
CrazyMax
c368aca6cf Merge pull request #518 from docker/bot/buildx-lab-releases-json
Update `.github/buildx-lab-releases.json`
2024-11-28 14:36:27 +01:00
crazy-max
d05cdc6878 github: update .github/buildx-lab-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-28 12:07:31 +00:00
CrazyMax
df61593ae1 Merge pull request #517 from tonistiigi/update-buildx-buildkit-v0.19.1
Update buildx buildkit v0.19.1
2024-11-27 20:58:36 +01:00
Tonis Tiigi
dd0ab4171a update buildkit to v0.18.0
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2024-11-27 11:02:18 -08:00
Tonis Tiigi
b0ac581cb1 update buildx to v0.19.1
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2024-11-27 11:01:53 -08:00
Tõnis Tiigi
5a8b57c95a Merge pull request #516 from docker/bot/buildx-releases-json
Update `.github/buildx-releases.json`
2024-11-27 10:59:08 -08:00
tonistiigi
3deaa610c5 github: update .github/buildx-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-27 18:55:07 +00:00
Tõnis Tiigi
b6c56c35d0 Merge pull request #515 from tonistiigi/revert-v0.18.0-pin
Revert "ci: pin buildx latest to v0.18.0"
2024-11-27 10:54:28 -08:00
Tonis Tiigi
aae39d4354 Revert "ci: pin buildx latest to v0.18.0"
This reverts commit 4ea16daf18.

Buildx v0.19.1 has been released.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2024-11-27 10:41:50 -08:00
CrazyMax
670488c531 Merge pull request #513 from docker/bot/docker-releases-json
Update `.github/docker-releases.json`
2024-11-27 12:50:40 +01:00
crazy-max
d7243bf353 github: update .github/docker-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-27 11:50:24 +00:00
CrazyMax
63258eae90 Merge pull request #512 from docker/bot/buildx-lab-releases-json
Update `.github/buildx-lab-releases.json`
2024-11-27 12:49:43 +01:00
crazy-max
9f942b9006 github: update .github/buildx-lab-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-27 11:49:26 +00:00
CrazyMax
b7d7639e37 Merge pull request #511 from docker/bot/undock-releases-json
Update `.github/undock-releases.json`
2024-11-27 12:48:58 +01:00
CrazyMax
1b47583286 Merge pull request #509 from docker/bot/buildx-releases-json
Update `.github/buildx-releases.json`
2024-11-27 12:48:38 +01:00
crazy-max
52a861f9a6 github: update .github/buildx-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-27 11:47:12 +00:00
crazy-max
4ec6da1c34 github: update .github/undock-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-27 11:47:06 +00:00
CrazyMax
fe4847c275 Merge pull request #510 from crazy-max/ci-update-releases-json
ci: update releases-json to 7f83a5a
2024-11-27 12:46:41 +01:00
CrazyMax
4ea16daf18 ci: pin buildx latest to v0.18.0
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-27 12:13:16 +01:00
CrazyMax
ae68f5e35d ci: update releases-json to 7f83a5a
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-27 12:12:19 +01:00
CrazyMax
48ef9fdac6 Merge pull request #508 from crazy-max/revert-buildx-update
Revert "github: update .github/buildx-releases.json"
2024-11-27 11:16:40 +01:00
CrazyMax
48b9f27a7b Revert "github: update .github/buildx-releases.json"
This reverts commit 0a1859004b.

Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-27 11:08:51 +01:00
CrazyMax
d51946fd4b Merge pull request #506 from docker/bot/buildx-releases-json
Update `.github/buildx-releases.json`
2024-11-27 09:48:23 +01:00
tonistiigi
0a1859004b github: update .github/buildx-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-27 02:01:47 +00:00
CrazyMax
ecd73afcbd Merge pull request #505 from crazy-max/bake-call
bake: missing call and allow cmd opts
2024-11-26 17:54:12 +01:00
CrazyMax
5cd47162a7 Merge pull request #504 from crazy-max/bake-missing-attrs
bake: missing attributes on group and target types
2024-11-26 17:53:55 +01:00
CrazyMax
dcacfbd8df Merge pull request #502 from docker/bot/buildx-releases-json
Update `.github/buildx-releases.json`
2024-11-26 15:58:14 +01:00
CrazyMax
79b9812052 bake: missing call and allow cmd opts
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-26 15:48:57 +01:00
CrazyMax
ade18ca4a9 bake: missing attributes on group and target types
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-26 15:37:21 +01:00
crazy-max
d9b2332555 github: update .github/buildx-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-26 12:08:00 +00:00
CrazyMax
8e475672d0 Merge pull request #496 from crazy-max/ci-split-docker-install-tests
Some checks failed
publish / publish (push) Has been cancelled
ci: split docker install integration tests
2024-11-25 14:03:34 +01:00
CrazyMax
9e42346af2 ci: split docker install integration tests
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-25 13:22:57 +01:00
CrazyMax
c1f346a886 Merge pull request #500 from crazy-max/update-buildkit
ci: update buildkit to 0.17.2
2024-11-25 13:01:41 +01:00
CrazyMax
51fe51827b Merge pull request #501 from crazy-max/docker-install-update-cloud-images
docker(install): update lima images to ubuntu 24.04
2024-11-25 12:49:01 +01:00
CrazyMax
76fc6aa044 docker(install): update lima images to ubuntu 24.04
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-25 11:38:11 +01:00
CrazyMax
d99f9fda4d Merge pull request #488 from crazy-max/test-node-multi
ci: test supported node versions
2024-11-22 18:04:24 +01:00
CrazyMax
2f29958913 ci: update buildkit to 0.17.2
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-22 11:23:42 +01:00
CrazyMax
24f1be5fbb Merge pull request #499 from docker/bot/buildx-releases-json
Update `.github/buildx-releases.json`
2024-11-22 08:58:27 +01:00
CrazyMax
e2dbc9880e ci: test supported node versions
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-22 08:57:43 +01:00
crazy-max
fd7e21c0b5 github: update .github/buildx-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-22 07:57:01 +00:00
CrazyMax
51752522b5 Merge pull request #498 from docker/dependabot/npm_and_yarn/csv-parse-5.6.0
build(deps): bump csv-parse from 5.5.6 to 5.6.0
2024-11-22 08:56:30 +01:00
CrazyMax
881c88b74d Merge pull request #497 from docker/bot/docker-releases-json
Update `.github/docker-releases.json`
2024-11-22 08:56:09 +01:00
dependabot[bot]
59d1b48622 build(deps): bump csv-parse from 5.5.6 to 5.6.0
Bumps [csv-parse](https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-parse) from 5.5.6 to 5.6.0.
- [Changelog](https://github.com/adaltas/node-csv/blob/master/packages/csv-parse/CHANGELOG.md)
- [Commits](https://github.com/adaltas/node-csv/commits/csv-parse@5.6.0/packages/csv-parse)

---
updated-dependencies:
- dependency-name: csv-parse
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-21 22:58:32 +00:00
crazy-max
e39e91a6d0 github: update .github/docker-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-20 00:28:49 +00:00
CrazyMax
db6372e84f Merge pull request #491 from docker/dependabot/github_actions/codecov/codecov-action-5
Some checks failed
publish / publish (push) Has been cancelled
build(deps): bump codecov/codecov-action from 4 to 5
2024-11-18 16:42:10 +01:00
CrazyMax
ed273243e8 Merge pull request #495 from docker/dependabot/npm_and_yarn/cross-spawn-7.0.6
build(deps): bump cross-spawn from 7.0.3 to 7.0.6
2024-11-18 16:38:48 +01:00
CrazyMax
749fc87fb2 ci: fix deprecated input for codecov-action
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-18 16:17:16 +01:00
dependabot[bot]
9f6ff3da7f 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-18 15:16:48 +00:00
CrazyMax
c2a62c4476 Merge pull request #494 from crazy-max/ci-drop-macos-12
ci: remove deprecated macos-12 runner
2024-11-18 16:14:54 +01:00
CrazyMax
8dfe7ecbd9 ci: remove deprecated macos-12 runner
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-18 15:51:00 +01:00
CrazyMax
d19019dc11 Merge pull request #493 from crazy-max/qemu-check-installed
docker(install): check qemu is installed
2024-11-18 15:45:47 +01:00
CrazyMax
1362d80447 docker(install): check qemu is installed
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-18 15:19:43 +01:00
CrazyMax
05607289aa Merge pull request #492 from docker/bot/docker-releases-json
Update `.github/docker-releases.json`
2024-11-18 14:02:28 +01:00
crazy-max
91444bd3bd github: update .github/docker-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-15 00:29:29 +00:00
dependabot[bot]
cc17e76a52 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-14 22:27:55 +00:00
CrazyMax
8672cc70f4 Merge pull request #489 from trim21/get-commit-data
Some checks failed
publish / publish (push) Has been cancelled
feat: add method to get commit date from git
2024-11-13 13:39:55 +01:00
Trim21
31cb9c3bde feat: add method to get commit date from git
Signed-off-by: Trim21 <trim21.me@gmail.com>
2024-11-13 20:11:46 +08:00
CrazyMax
781874f7fa Merge pull request #486 from vvoland/docker-install-rootless2
docker/install: Fix rootless install, make teardown also cleanup the toolDir
2024-11-13 12:04:15 +01:00
Paweł Gronowski
54e0f74a84 docker/install: Stop docker service on Windows
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2024-11-08 18:07:31 +01:00
Paweł Gronowski
15a9f92044 docker/install: Copy all rootless-extras files
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2024-11-08 17:58:08 +01:00
Paweł Gronowski
0b611e6c46 docker/install: Clean up toolDir in teardown
The `toolDir` is added to `PATH` on install, so make sure the binaries
aren't accessible after a teardown.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2024-11-08 17:58:05 +01:00
Paweł Gronowski
4980de30fc test/install: Use separate runDir for each test
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2024-11-08 17:58:03 +01:00
CrazyMax
37b0f81ca2 Merge pull request #485 from vvoland/docker-install-rootless
Some checks failed
publish / publish (push) Has been cancelled
docker/install: Support rootless
2024-11-07 12:04:37 +01:00
Paweł Gronowski
2d2bc848fe docker/install: Support rootless
Add support for running a rootless daemon. Currently only Linux host is
supported.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2024-11-06 18:02:02 +01:00
CrazyMax
8c97b0d9b4 Merge pull request #483 from docker/bot/buildx-lab-releases-json
Update `.github/buildx-lab-releases.json`
2024-11-02 17:36:11 +01:00
crazy-max
9da4a47d60 github: update .github/buildx-lab-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-02 11:47:16 +00:00
CrazyMax
80e4f3c485 Merge pull request #484 from docker/dependabot/npm_and_yarn/actions/cache-3.3.0
build(deps): bump @actions/cache from 3.2.4 to 3.3.0
2024-11-02 12:46:50 +01:00
dependabot[bot]
cb33662ebc build(deps): bump @actions/cache from 3.2.4 to 3.3.0
Bumps [@actions/cache](https://github.com/actions/toolkit/tree/HEAD/packages/cache) from 3.2.4 to 3.3.0.
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/cache/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/cache)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-01 22:42:41 +00:00
CrazyMax
1b63de84b1 Merge pull request #482 from tonistiigi/update-buildx-v0.18.0
update buildx to v0.18.0
2024-10-31 08:59:17 +01:00
Tonis Tiigi
577f9b9555 update buildx to v0.18.0
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2024-10-30 15:51:36 -07:00
Tõnis Tiigi
c6389d840e Merge pull request #481 from docker/bot/buildx-releases-json
Update `.github/buildx-releases.json`
2024-10-30 15:50:15 -07:00
tonistiigi
d90b053e7c github: update .github/buildx-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-10-30 22:49:32 +00:00
CrazyMax
853d5fa804 Merge pull request #480 from vvoland/docker-install-image-latest-fix
Some checks failed
publish / publish (push) Has been cancelled
docker/install: Fix latest image install on lima
2024-10-30 16:22:35 +01:00
Paweł Gronowski
61c10b2d7d docker/install: Fix latest image install on lima
`latest` is not a valid git tag or revision to get the matching systemd
unit files.
Look up the exact source git commit from the
`'org.opencontainers.image.revision` image config label.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2024-10-30 15:45:37 +01:00
CrazyMax
e84b18afd5 Merge pull request #479 from crazy-max/dockerfile-validate
dockerfile validation
2024-10-30 10:34:42 +01:00
CrazyMax
f06ec3b4a1 ci: use list-targets subaction
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-10-30 09:43:45 +01:00
CrazyMax
991feac6c3 fix dockerfile checks
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-10-30 09:43:44 +01:00
CrazyMax
a79473b652 dockerfile validation
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-10-30 09:43:20 +01:00
CrazyMax
6f86e0250d Merge pull request #476 from crazy-max/undock-run
undock: run and extract
2024-10-30 09:14:05 +01:00
CrazyMax
0a09638c5b undock: run
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-10-30 07:35:55 +01:00
CrazyMax
ea7b423421 Merge pull request #478 from docker/bot/buildx-releases-json
Update `.github/buildx-releases.json`
2024-10-30 06:42:00 +01:00
crazy-max
24115c327a github: update .github/buildx-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-10-30 00:20:21 +00:00
CrazyMax
bdd1a426f5 Merge pull request #477 from vvoland/docker-install-archive-version
Some checks failed
publish / publish (push) Has been cancelled
docker/install: Fix lima failing to download latest Docker archive
2024-10-29 16:08:17 +01:00
Paweł Gronowski
e2acba1767 docker/install: Fix lima failing to download latest Docker archive
Use the actual version number resolved from the Github releases instead
of the `latest` string.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2024-10-29 15:46:41 +01:00
CrazyMax
735c66bebf undock: check for availability
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-10-29 14:30:05 +01:00
CrazyMax
5abb5fce3e Merge pull request #475 from docker/bot/buildx-releases-json
Some checks failed
publish / publish (push) Has been cancelled
Update `.github/buildx-releases.json`
2024-10-29 13:22:27 +01:00
crazy-max
a9941711bb github: update .github/buildx-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-10-29 12:08:14 +00:00
CrazyMax
68dcb5ad15 Merge pull request #474 from crazy-max/test-latest-qemu
ci: test latest qemu
2024-10-28 14:46:24 +01:00
CrazyMax
52919ae07e Merge pull request #473 from crazy-max/undock
undock install
2024-10-28 12:31:08 +01:00
CrazyMax
a9dd20af6c ci: test latest qemu
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-10-28 12:21:48 +01:00
CrazyMax
faef3be239 undock install
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-10-28 12:09:57 +01:00
CrazyMax
a2e60f6191 Merge pull request #472 from docker/bot/undock-releases-json
Update `.github/undock-releases.json`
2024-10-28 11:57:35 +01:00
crazy-max
8e2d2ceec1 github: update .github/undock-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-10-28 10:57:16 +00:00
CrazyMax
5b53556941 Merge pull request #471 from crazy-max/undock-releases
ci: undock releases json workflow
2024-10-28 11:56:45 +01:00
CrazyMax
be5b9d1575 ci: undock releases json workflow
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-10-28 11:55:51 +01:00
CrazyMax
517a5c577f Merge pull request #438 from vvoland/install-from-binimage
docker(install): support image source
2024-10-27 13:37:56 +01:00
CrazyMax
c65952ed7a Merge pull request #470 from docker/bot/buildx-lab-releases-json
Some checks failed
publish / publish (push) Has been cancelled
Update `.github/buildx-lab-releases.json`
2024-10-24 12:00:46 +02:00
crazy-max
6336902578 github: update .github/buildx-lab-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-10-22 00:18:10 +00:00
Paweł Gronowski
e3d0e4e199 Support image source on darwin
Use undock inside lima to pull the image content.
We could mount the downloaded binaries from the host, but for some
reason lima mounts are not always mounted when the provisioning script
is run.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2024-10-18 14:57:40 +02:00
Paweł Gronowski
b143889d3e docker/install: Add tests for installing from image
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2024-10-17 12:18:17 +02:00
Paweł Gronowski
de390e0872 docker/install: Remove deprecated version and channel
Use InstallSource instead

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2024-10-17 12:18:16 +02:00
Paweł Gronowski
b8a96071a8 docker/install: Handle missing v prefix when searching GH release
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2024-10-17 12:18:15 +02:00
Paweł Gronowski
10424facaf docker/install: Install source
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2024-10-17 12:18:11 +02:00
Paweł Gronowski
1335f081af docker/install: Support version: master
Add support for installing Docker `master` packages from `moby/moby-bin`
and `dockereng/cli-bin` images.

This could also allow to install arbitrary version from these images but
for now it's only used for `master`.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2024-10-17 12:18:09 +02:00
CrazyMax
a59a5f8e3f Merge pull request #468 from docker/dependabot/npm_and_yarn/actions/artifact-2.1.11
build(deps): bump @actions/artifact from 2.1.10 to 2.1.11
2024-10-11 11:28:06 +02:00
CrazyMax
3b49d01274 Merge pull request #469 from docker/bot/buildx-releases-json
Update `.github/buildx-releases.json`
2024-10-11 11:27:33 +02:00
crazy-max
53822af427 github: update .github/buildx-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-10-09 12:07:51 +00:00
dependabot[bot]
deeee5473b build(deps): bump @actions/artifact from 2.1.10 to 2.1.11
Bumps [@actions/artifact](https://github.com/actions/toolkit/tree/HEAD/packages/artifact) from 2.1.10 to 2.1.11.
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/artifact/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/artifact)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-08 23:01:47 +00:00
CrazyMax
eec0a5d809 Merge pull request #467 from docker/bot/docker-releases-json
Update `.github/docker-releases.json`
2024-10-08 11:14:47 +02:00
crazy-max
b4d81c6478 github: update .github/docker-releases.json
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-10-08 00:27:08 +00:00
CrazyMax
6e3f195d06 Merge pull request #466 from docker/dependabot/npm_and_yarn/actions/core-1.11.1
build(deps): bump @actions/core from 1.11.0 to 1.11.1
2024-10-07 14:20:38 +02:00
dependabot[bot]
fc3d393292 build(deps): bump @actions/core from 1.11.0 to 1.11.1
Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.11.0 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-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-04 22:52:17 +00:00
CrazyMax
19ca9ade20 Merge pull request #459 from crazy-max/fix-lima-test-qemu
ci(test): enforce QEMU 9.0.2
2024-10-04 14:49:26 +02:00
CrazyMax
8b84506b77 ci(test): enforce QEMU 9.0.2
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-10-04 14:34:03 +02:00
CrazyMax
ccc7548899 Merge pull request #465 from crazy-max/use-util-sleep
buildx(history): use Util.sleep
2024-10-04 13:50:52 +02:00
CrazyMax
5f0354dc09 Merge pull request #463 from docker/dependabot/npm_and_yarn/actions/artifact-2.1.10
build(deps): bump @actions/artifact from 2.1.9 to 2.1.10
2024-10-03 08:46:06 +02:00
dependabot[bot]
3af0a38475 build(deps): bump @actions/artifact from 2.1.9 to 2.1.10
Bumps [@actions/artifact](https://github.com/actions/toolkit/tree/HEAD/packages/artifact) from 2.1.9 to 2.1.10.
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/artifact/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/artifact)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-03 06:21:50 +00:00
CrazyMax
acd6a3be6b Merge pull request #462 from docker/dependabot/npm_and_yarn/actions/core-1.11.0
build(deps): bump @actions/core from 1.10.1 to 1.11.0
2024-10-03 08:20:30 +02:00
dependabot[bot]
3b9fba85ba build(deps): bump @actions/core from 1.10.1 to 1.11.0
Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.10.1 to 1.11.0.
- [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>
2024-10-02 22:27:16 +00:00
CrazyMax
38d1dce1ff Merge pull request #457 from crazy-max/fix-github-ref-pr
Some checks failed
publish / publish (push) Has been cancelled
context: fix pull request ref
2024-09-30 09:59:24 +02:00
CrazyMax
958f229292 context: fix pull request ref
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-09-27 18:19:01 +02:00
CrazyMax
368e2f559c buildx(history): use Util.sleep
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-09-27 12:49:51 +02:00
74 changed files with 10438 additions and 504 deletions

View File

@@ -0,0 +1,17 @@
name: 'Setup QEMU on macOS'
description: 'Set up QEMU on macOS runners'
# FIXME: Remove this composite once QEMU issue is fixed on macOS runners
# https://github.com/docker/actions-toolkit/issues/455
runs:
using: composite
steps:
- run: |
set -ex
brew uninstall --ignore-dependencies qemu || true
brew autoremove || true
curl -o /tmp/qemu.rb https://raw.githubusercontent.com/Homebrew/homebrew-core/f1a9cf104a9a51779c7a532b658c490f69974839/Formula/q/qemu.rb
brew install /tmp/qemu.rb
continue-on-error: true
shell: bash

View File

@@ -1,43 +1,520 @@
{
"latest": {
"id": 168239569,
"tag_name": "v0.16.2-desktop.1",
"html_url": "https://github.com/docker/buildx-desktop/releases/tag/v0.16.2-desktop.1",
"id": 191401211,
"tag_name": "v0.19.3-desktop.1",
"html_url": "https://github.com/docker/buildx-desktop/releases/tag/v0.19.3-desktop.1",
"assets": [
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.darwin-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.darwin-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.linux-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.linux-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.linux-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.linux-arm-v6",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.linux-arm-v7",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.linux-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.linux-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.linux-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.linux-ppc64le",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.linux-riscv64",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.linux-s390x",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.linux-s390x.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.linux-s390x.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.windows-amd64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.windows-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.windows-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.windows-arm64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.windows-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/buildx-v0.16.2-desktop.1.windows-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.16.2-desktop.1/checksums.txt"
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.darwin-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.darwin-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.freebsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.freebsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-arm-v6",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-arm-v7",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-ppc64le",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-riscv64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-s390x",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-s390x.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-s390x.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.openbsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.openbsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.windows-amd64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.windows-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.windows-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.windows-arm64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.windows-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.windows-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/checksums.txt"
]
},
"edge": {
"id": 196051103,
"tag_name": "v0.20.0-desktop.1",
"html_url": "https://github.com/docker/buildx-desktop/releases/tag/v0.20.0-desktop.1",
"assets": [
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.darwin-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.darwin-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.freebsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.freebsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-arm-v6",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-arm-v7",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-ppc64le",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-riscv64",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-s390x",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-s390x.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-s390x.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.openbsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.openbsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.windows-amd64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.windows-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.windows-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.windows-arm64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.windows-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.windows-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/checksums.txt"
]
},
"v0.20.0-desktop.1": {
"id": 196051103,
"tag_name": "v0.20.0-desktop.1",
"html_url": "https://github.com/docker/buildx-desktop/releases/tag/v0.20.0-desktop.1",
"assets": [
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.darwin-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.darwin-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.freebsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.freebsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-arm-v6",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-arm-v7",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-ppc64le",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-riscv64",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-s390x",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-s390x.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.linux-s390x.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.openbsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.openbsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.windows-amd64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.windows-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.windows-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.windows-arm64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.windows-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/buildx-v0.20.0-desktop.1.windows-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.20.0-desktop.1/checksums.txt"
]
},
"v0.19.3-desktop.1": {
"id": 191401211,
"tag_name": "v0.19.3-desktop.1",
"html_url": "https://github.com/docker/buildx-desktop/releases/tag/v0.19.3-desktop.1",
"assets": [
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.darwin-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.darwin-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.freebsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.freebsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-arm-v6",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-arm-v7",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-ppc64le",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-riscv64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-s390x",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-s390x.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.linux-s390x.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.openbsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.openbsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.windows-amd64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.windows-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.windows-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.windows-arm64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.windows-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/buildx-v0.19.3-desktop.1.windows-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.3-desktop.1/checksums.txt"
]
},
"v0.19.2-desktop.4": {
"id": 191209201,
"tag_name": "v0.19.2-desktop.4",
"html_url": "https://github.com/docker/buildx-desktop/releases/tag/v0.19.2-desktop.4",
"assets": [
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.darwin-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.darwin-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.darwin-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.darwin-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.darwin-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.darwin-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.freebsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.freebsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.linux-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.linux-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.linux-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.linux-arm-v6",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.linux-arm-v7",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.linux-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.linux-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.linux-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.linux-ppc64le",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.linux-riscv64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.linux-riscv64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.linux-riscv64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.linux-s390x",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.linux-s390x.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.linux-s390x.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.openbsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.openbsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.windows-amd64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.windows-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.windows-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.windows-arm64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.windows-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/buildx-v0.19.2-desktop.4.windows-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.4/checksums.txt"
]
},
"v0.19.2-desktop.3": {
"id": 190618703,
"tag_name": "v0.19.2-desktop.3",
"html_url": "https://github.com/docker/buildx-desktop/releases/tag/v0.19.2-desktop.3",
"assets": [
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.darwin-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.darwin-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.darwin-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.darwin-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.darwin-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.darwin-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.freebsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.freebsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.linux-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.linux-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.linux-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.linux-arm-v6",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.linux-arm-v7",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.linux-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.linux-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.linux-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.linux-ppc64le",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.linux-riscv64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.linux-riscv64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.linux-riscv64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.linux-s390x",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.linux-s390x.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.linux-s390x.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.openbsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.openbsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.windows-amd64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.windows-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.windows-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.windows-arm64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.windows-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/buildx-v0.19.2-desktop.3.windows-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.3/checksums.txt"
]
},
"v0.19.2-desktop.2": {
"id": 190195372,
"tag_name": "v0.19.2-desktop.2",
"html_url": "https://github.com/docker/buildx-desktop/releases/tag/v0.19.2-desktop.2",
"assets": [
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.darwin-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.darwin-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.darwin-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.darwin-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.darwin-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.darwin-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.freebsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.freebsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.linux-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.linux-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.linux-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.linux-arm-v6",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.linux-arm-v7",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.linux-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.linux-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.linux-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.linux-ppc64le",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.linux-riscv64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.linux-riscv64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.linux-riscv64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.linux-s390x",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.linux-s390x.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.linux-s390x.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.openbsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.openbsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.windows-amd64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.windows-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.windows-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.windows-arm64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.windows-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/buildx-v0.19.2-desktop.2.windows-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.2/checksums.txt"
]
},
"v0.19.2-desktop.1": {
"id": 190017914,
"tag_name": "v0.19.2-desktop.1",
"html_url": "https://github.com/docker/buildx-desktop/releases/tag/v0.19.2-desktop.1",
"assets": [
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.darwin-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.darwin-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.freebsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.freebsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.linux-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.linux-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.linux-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.linux-arm-v6",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.linux-arm-v7",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.linux-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.linux-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.linux-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.linux-ppc64le",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.linux-riscv64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.linux-s390x",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.linux-s390x.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.linux-s390x.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.openbsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.openbsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.windows-amd64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.windows-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.windows-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.windows-arm64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.windows-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/buildx-v0.19.2-desktop.1.windows-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.2-desktop.1/checksums.txt"
]
},
"v0.19.1-desktop.1": {
"id": 188026345,
"tag_name": "v0.19.1-desktop.1",
"html_url": "https://github.com/docker/buildx-desktop/releases/tag/v0.19.1-desktop.1",
"assets": [
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.darwin-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.darwin-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.freebsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.freebsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.linux-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.linux-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.linux-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.linux-arm-v6",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.linux-arm-v7",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.linux-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.linux-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.linux-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.linux-ppc64le",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.linux-riscv64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.linux-s390x",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.linux-s390x.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.linux-s390x.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.openbsd-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.openbsd-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.windows-amd64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.windows-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.windows-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.windows-arm64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.windows-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/buildx-v0.19.1-desktop.1.windows-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.19.1-desktop.1/checksums.txt"
]
},
"v0.18.0-desktop.2": {
"id": 183082748,
"tag_name": "v0.18.0-desktop.2",
"html_url": "https://github.com/docker/buildx-desktop/releases/tag/v0.18.0-desktop.2",
"assets": [
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.darwin-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.darwin-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.darwin-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.darwin-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.darwin-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.darwin-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.linux-amd64",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.linux-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.linux-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.linux-arm-v6",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.linux-arm-v7",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.linux-arm64",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.linux-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.linux-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.linux-ppc64le",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.linux-riscv64",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.linux-riscv64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.linux-riscv64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.linux-s390x",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.linux-s390x.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.linux-s390x.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.windows-amd64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.windows-amd64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.windows-amd64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.windows-arm64.exe",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.windows-arm64.provenance.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/buildx-v0.18.0-desktop.2.windows-arm64.sbom.json",
"https://github.com/docker/buildx-desktop/releases/download/v0.18.0-desktop.2/checksums.txt"
]
},
"v0.17.1-desktop.1": {

View File

@@ -1,43 +1,855 @@
{
"latest": {
"id": 174985224,
"tag_name": "v0.17.1",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.17.1",
"id": 196214429,
"tag_name": "v0.20.1",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.20.1",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.17.1/buildx-v0.17.1.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.17.1/checksums.txt"
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.freebsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.freebsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.openbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.openbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/checksums.txt"
]
},
"v0.20.1": {
"id": 196214429,
"tag_name": "v0.20.1",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.20.1",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.freebsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.freebsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.openbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.openbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/checksums.txt"
]
},
"v0.20.0": {
"id": 195707322,
"tag_name": "v0.20.0",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.20.0",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.freebsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.freebsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.openbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.openbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/buildx-v0.20.0.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0/checksums.txt"
]
},
"edge": {
"id": 196214429,
"tag_name": "v0.20.1",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.20.1",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.freebsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.freebsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.openbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.openbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/buildx-v0.20.1.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.1/checksums.txt"
]
},
"v0.20.0-rc3": {
"id": 195417879,
"tag_name": "v0.20.0-rc3",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.20.0-rc3",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.freebsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.freebsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.openbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.openbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/buildx-v0.20.0-rc3.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc3/checksums.txt"
]
},
"v0.20.0-rc2": {
"id": 194958665,
"tag_name": "v0.20.0-rc2",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.20.0-rc2",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.freebsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.freebsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.openbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.openbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/buildx-v0.20.0-rc2.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc2/checksums.txt"
]
},
"v0.20.0-rc1": {
"id": 194903219,
"tag_name": "v0.20.0-rc1",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.20.0-rc1",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.freebsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.freebsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.openbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.openbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/buildx-v0.20.0-rc1.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.20.0-rc1/checksums.txt"
]
},
"v0.19.3": {
"id": 191147419,
"tag_name": "v0.19.3",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.19.3",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.freebsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.freebsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.openbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.openbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.3/checksums.txt"
]
},
"v0.19.2": {
"id": 189501786,
"tag_name": "v0.19.2",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.19.2",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.freebsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.freebsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.openbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.openbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/buildx-v0.19.2.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.2/checksums.txt"
]
},
"v0.19.1": {
"id": 187883364,
"tag_name": "v0.19.1",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.19.1",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.freebsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.freebsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.openbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.openbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.1/checksums.txt"
]
},
"v0.19.0": {
"id": 187670763,
"tag_name": "v0.19.0",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.19.0",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.freebsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.freebsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.openbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.openbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/buildx-v0.19.0.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0/checksums.txt"
]
},
"v0.19.0-rc2": {
"id": 187439215,
"tag_name": "v0.19.0-rc2",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.19.0-rc2",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.freebsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.freebsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.openbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.openbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/buildx-v0.19.0-rc2.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc2/checksums.txt"
]
},
"v0.19.0-rc1": {
"id": 186764141,
"tag_name": "v0.19.0-rc1",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.19.0-rc1",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.freebsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.freebsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.freebsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.freebsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.freebsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.freebsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.openbsd-amd64",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.openbsd-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.openbsd-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.openbsd-arm64",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.openbsd-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.openbsd-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/buildx-v0.19.0-rc1.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.19.0-rc1/checksums.txt"
]
},
"v0.18.0": {
"id": 182806222,
"tag_name": "v0.18.0",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.18.0",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0/buildx-v0.18.0.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0/checksums.txt"
]
},
"v0.18.0-rc3": {
"id": 182564109,
"tag_name": "v0.18.0-rc3",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.18.0-rc3",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/buildx-v0.18.0-rc3.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc3/checksums.txt"
]
},
"v0.18.0-rc2": {
"id": 182417114,
"tag_name": "v0.18.0-rc2",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.18.0-rc2",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/buildx-v0.18.0-rc2.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc2/checksums.txt"
]
},
"v0.18.0-rc1": {
"id": 179007157,
"tag_name": "v0.18.0-rc1",
"html_url": "https://github.com/docker/buildx/releases/tag/v0.18.0-rc1",
"assets": [
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.darwin-amd64",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.darwin-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.darwin-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.darwin-arm64",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.darwin-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.darwin-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.linux-amd64",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.linux-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.linux-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.linux-arm-v6",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.linux-arm-v6.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.linux-arm-v6.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.linux-arm-v7",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.linux-arm-v7.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.linux-arm-v7.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.linux-arm64",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.linux-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.linux-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.linux-ppc64le",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.linux-ppc64le.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.linux-ppc64le.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.linux-riscv64",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.linux-riscv64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.linux-riscv64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.linux-s390x",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.linux-s390x.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.linux-s390x.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.windows-amd64.exe",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.windows-amd64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.windows-amd64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.windows-arm64.exe",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.windows-arm64.provenance.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/buildx-v0.18.0-rc1.windows-arm64.sbom.json",
"https://github.com/docker/buildx/releases/download/v0.18.0-rc1/checksums.txt"
]
},
"v0.17.1": {

281
.github/compose-lab-releases.json vendored Normal file
View File

@@ -0,0 +1,281 @@
{
"latest": {
"id": 157591108,
"tag_name": "v2.27.1-desktop.1",
"html_url": "https://github.com/docker/compose-desktop/releases/tag/v2.27.1-desktop.1",
"assets": [
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/LICENSE",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/checksums.txt",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-darwin-aarch64",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-darwin-aarch64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-darwin-x86_64",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-darwin-x86_64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-aarch64",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-aarch64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-armv6",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-armv6.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-armv7",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-armv7.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-ppc64le",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-ppc64le.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-riscv64",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-riscv64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-s390x",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-s390x.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-x86_64",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-x86_64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-windows-aarch64.exe",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-windows-aarch64.exe.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-windows-x86_64.exe",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-windows-x86_64.exe.sha256"
]
},
"v2.29.1-desktop.2": {
"id": 167816406,
"tag_name": "v2.29.1-desktop.2",
"html_url": "https://github.com/docker/compose-desktop/releases/tag/v2.29.1-desktop.2",
"assets": [
"https://github.com/docker/compose-desktop/releases/download/v2.29.1-desktop.2/LICENSE",
"https://github.com/docker/compose-desktop/releases/download/v2.29.1-desktop.2/checksums.txt",
"https://github.com/docker/compose-desktop/releases/download/v2.29.1-desktop.2/docker-compose-darwin-aarch64",
"https://github.com/docker/compose-desktop/releases/download/v2.29.1-desktop.2/docker-compose-darwin-aarch64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.29.1-desktop.2/docker-compose-darwin-x86_64",
"https://github.com/docker/compose-desktop/releases/download/v2.29.1-desktop.2/docker-compose-darwin-x86_64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.29.1-desktop.2/docker-compose-linux-aarch64",
"https://github.com/docker/compose-desktop/releases/download/v2.29.1-desktop.2/docker-compose-linux-aarch64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.29.1-desktop.2/docker-compose-linux-armv6",
"https://github.com/docker/compose-desktop/releases/download/v2.29.1-desktop.2/docker-compose-linux-armv6.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.29.1-desktop.2/docker-compose-linux-armv7",
"https://github.com/docker/compose-desktop/releases/download/v2.29.1-desktop.2/docker-compose-linux-armv7.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.29.1-desktop.2/docker-compose-linux-ppc64le",
"https://github.com/docker/compose-desktop/releases/download/v2.29.1-desktop.2/docker-compose-linux-ppc64le.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.29.1-desktop.2/docker-compose-linux-riscv64",
"https://github.com/docker/compose-desktop/releases/download/v2.29.1-desktop.2/docker-compose-linux-riscv64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.29.1-desktop.2/docker-compose-linux-s390x",
"https://github.com/docker/compose-desktop/releases/download/v2.29.1-desktop.2/docker-compose-linux-s390x.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.29.1-desktop.2/docker-compose-linux-x86_64",
"https://github.com/docker/compose-desktop/releases/download/v2.29.1-desktop.2/docker-compose-linux-x86_64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.29.1-desktop.2/docker-compose-windows-aarch64.exe",
"https://github.com/docker/compose-desktop/releases/download/v2.29.1-desktop.2/docker-compose-windows-aarch64.exe.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.29.1-desktop.2/docker-compose-windows-x86_64.exe",
"https://github.com/docker/compose-desktop/releases/download/v2.29.1-desktop.2/docker-compose-windows-x86_64.exe.sha256"
]
},
"v2.27.1-desktop.1": {
"id": 157591108,
"tag_name": "v2.27.1-desktop.1",
"html_url": "https://github.com/docker/compose-desktop/releases/tag/v2.27.1-desktop.1",
"assets": [
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/LICENSE",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/checksums.txt",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-darwin-aarch64",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-darwin-aarch64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-darwin-x86_64",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-darwin-x86_64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-aarch64",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-aarch64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-armv6",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-armv6.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-armv7",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-armv7.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-ppc64le",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-ppc64le.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-riscv64",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-riscv64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-s390x",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-s390x.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-x86_64",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-x86_64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-windows-aarch64.exe",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-windows-aarch64.exe.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-windows-x86_64.exe",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-windows-x86_64.exe.sha256"
]
},
"v2.27.0-desktop.2": {
"id": 155529789,
"tag_name": "v2.27.0-desktop.2",
"html_url": "https://github.com/docker/compose-desktop/releases/tag/v2.27.0-desktop.2",
"assets": [
"https://github.com/docker/compose-desktop/releases/download/v2.27.0-desktop.2/LICENSE",
"https://github.com/docker/compose-desktop/releases/download/v2.27.0-desktop.2/checksums.txt",
"https://github.com/docker/compose-desktop/releases/download/v2.27.0-desktop.2/docker-compose-darwin-aarch64",
"https://github.com/docker/compose-desktop/releases/download/v2.27.0-desktop.2/docker-compose-darwin-aarch64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.0-desktop.2/docker-compose-darwin-x86_64",
"https://github.com/docker/compose-desktop/releases/download/v2.27.0-desktop.2/docker-compose-darwin-x86_64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.0-desktop.2/docker-compose-linux-aarch64",
"https://github.com/docker/compose-desktop/releases/download/v2.27.0-desktop.2/docker-compose-linux-aarch64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.0-desktop.2/docker-compose-linux-armv6",
"https://github.com/docker/compose-desktop/releases/download/v2.27.0-desktop.2/docker-compose-linux-armv6.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.0-desktop.2/docker-compose-linux-armv7",
"https://github.com/docker/compose-desktop/releases/download/v2.27.0-desktop.2/docker-compose-linux-armv7.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.0-desktop.2/docker-compose-linux-ppc64le",
"https://github.com/docker/compose-desktop/releases/download/v2.27.0-desktop.2/docker-compose-linux-ppc64le.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.0-desktop.2/docker-compose-linux-riscv64",
"https://github.com/docker/compose-desktop/releases/download/v2.27.0-desktop.2/docker-compose-linux-riscv64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.0-desktop.2/docker-compose-linux-s390x",
"https://github.com/docker/compose-desktop/releases/download/v2.27.0-desktop.2/docker-compose-linux-s390x.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.0-desktop.2/docker-compose-linux-x86_64",
"https://github.com/docker/compose-desktop/releases/download/v2.27.0-desktop.2/docker-compose-linux-x86_64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.0-desktop.2/docker-compose-windows-aarch64.exe",
"https://github.com/docker/compose-desktop/releases/download/v2.27.0-desktop.2/docker-compose-windows-aarch64.exe.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.0-desktop.2/docker-compose-windows-x86_64.exe",
"https://github.com/docker/compose-desktop/releases/download/v2.27.0-desktop.2/docker-compose-windows-x86_64.exe.sha256"
]
},
"v2.23.3-desktop.2": {
"id": 132265362,
"tag_name": "v2.23.3-desktop.2",
"html_url": "https://github.com/docker/compose-desktop/releases/tag/v2.23.3-desktop.2",
"assets": [
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.2/LICENSE",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.2/checksums.txt",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.2/docker-compose-darwin-aarch64",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.2/docker-compose-darwin-aarch64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.2/docker-compose-darwin-x86_64",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.2/docker-compose-darwin-x86_64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.2/docker-compose-linux-aarch64",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.2/docker-compose-linux-aarch64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.2/docker-compose-linux-armv6",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.2/docker-compose-linux-armv6.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.2/docker-compose-linux-armv7",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.2/docker-compose-linux-armv7.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.2/docker-compose-linux-ppc64le",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.2/docker-compose-linux-ppc64le.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.2/docker-compose-linux-riscv64",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.2/docker-compose-linux-riscv64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.2/docker-compose-linux-s390x",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.2/docker-compose-linux-s390x.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.2/docker-compose-linux-x86_64",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.2/docker-compose-linux-x86_64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.2/docker-compose-windows-aarch64.exe",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.2/docker-compose-windows-aarch64.exe.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.2/docker-compose-windows-x86_64.exe",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.2/docker-compose-windows-x86_64.exe.sha256"
]
},
"edge": {
"id": 157591108,
"tag_name": "v2.27.1-desktop.1",
"html_url": "https://github.com/docker/compose-desktop/releases/tag/v2.27.1-desktop.1",
"assets": [
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/LICENSE",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/checksums.txt",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-darwin-aarch64",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-darwin-aarch64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-darwin-x86_64",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-darwin-x86_64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-aarch64",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-aarch64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-armv6",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-armv6.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-armv7",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-armv7.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-ppc64le",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-ppc64le.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-riscv64",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-riscv64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-s390x",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-s390x.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-x86_64",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-linux-x86_64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-windows-aarch64.exe",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-windows-aarch64.exe.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-windows-x86_64.exe",
"https://github.com/docker/compose-desktop/releases/download/v2.27.1-desktop.1/docker-compose-windows-x86_64.exe.sha256"
]
},
"v2.23.3-desktop.1": {
"id": 131533252,
"tag_name": "v2.23.3-desktop.1",
"html_url": "https://github.com/docker/compose-desktop/releases/tag/v2.23.3-desktop.1",
"assets": [
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.1/LICENSE",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.1/checksums.txt",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.1/docker-compose-darwin-aarch64",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.1/docker-compose-darwin-aarch64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.1/docker-compose-darwin-x86_64",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.1/docker-compose-darwin-x86_64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.1/docker-compose-linux-aarch64",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.1/docker-compose-linux-aarch64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.1/docker-compose-linux-armv6",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.1/docker-compose-linux-armv6.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.1/docker-compose-linux-armv7",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.1/docker-compose-linux-armv7.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.1/docker-compose-linux-ppc64le",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.1/docker-compose-linux-ppc64le.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.1/docker-compose-linux-riscv64",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.1/docker-compose-linux-riscv64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.1/docker-compose-linux-s390x",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.1/docker-compose-linux-s390x.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.1/docker-compose-linux-x86_64",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.1/docker-compose-linux-x86_64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.1/docker-compose-windows-aarch64.exe",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.1/docker-compose-windows-aarch64.exe.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.1/docker-compose-windows-x86_64.exe",
"https://github.com/docker/compose-desktop/releases/download/v2.23.3-desktop.1/docker-compose-windows-x86_64.exe.sha256"
]
},
"v2.22.0-desktop.2": {
"id": 123498315,
"tag_name": "v2.22.0-desktop.2",
"html_url": "https://github.com/docker/compose-desktop/releases/tag/v2.22.0-desktop.2",
"assets": [
"https://github.com/docker/compose-desktop/releases/download/v2.22.0-desktop.2/LICENSE",
"https://github.com/docker/compose-desktop/releases/download/v2.22.0-desktop.2/checksums.txt",
"https://github.com/docker/compose-desktop/releases/download/v2.22.0-desktop.2/docker-compose-darwin-aarch64",
"https://github.com/docker/compose-desktop/releases/download/v2.22.0-desktop.2/docker-compose-darwin-aarch64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.22.0-desktop.2/docker-compose-darwin-x86_64",
"https://github.com/docker/compose-desktop/releases/download/v2.22.0-desktop.2/docker-compose-darwin-x86_64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.22.0-desktop.2/docker-compose-linux-aarch64",
"https://github.com/docker/compose-desktop/releases/download/v2.22.0-desktop.2/docker-compose-linux-aarch64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.22.0-desktop.2/docker-compose-linux-armv6",
"https://github.com/docker/compose-desktop/releases/download/v2.22.0-desktop.2/docker-compose-linux-armv6.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.22.0-desktop.2/docker-compose-linux-armv7",
"https://github.com/docker/compose-desktop/releases/download/v2.22.0-desktop.2/docker-compose-linux-armv7.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.22.0-desktop.2/docker-compose-linux-ppc64le",
"https://github.com/docker/compose-desktop/releases/download/v2.22.0-desktop.2/docker-compose-linux-ppc64le.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.22.0-desktop.2/docker-compose-linux-riscv64",
"https://github.com/docker/compose-desktop/releases/download/v2.22.0-desktop.2/docker-compose-linux-riscv64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.22.0-desktop.2/docker-compose-linux-s390x",
"https://github.com/docker/compose-desktop/releases/download/v2.22.0-desktop.2/docker-compose-linux-s390x.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.22.0-desktop.2/docker-compose-linux-x86_64",
"https://github.com/docker/compose-desktop/releases/download/v2.22.0-desktop.2/docker-compose-linux-x86_64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.22.0-desktop.2/docker-compose-windows-aarch64.exe",
"https://github.com/docker/compose-desktop/releases/download/v2.22.0-desktop.2/docker-compose-windows-aarch64.exe.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.22.0-desktop.2/docker-compose-windows-x86_64.exe",
"https://github.com/docker/compose-desktop/releases/download/v2.22.0-desktop.2/docker-compose-windows-x86_64.exe.sha256"
]
},
"v2.21.0-desktop.1": {
"id": 121171816,
"tag_name": "v2.21.0-desktop.1",
"html_url": "https://github.com/docker/compose-desktop/releases/tag/v2.21.0-desktop.1",
"assets": [
"https://github.com/docker/compose-desktop/releases/download/v2.21.0-desktop.1/LICENSE",
"https://github.com/docker/compose-desktop/releases/download/v2.21.0-desktop.1/checksums.txt",
"https://github.com/docker/compose-desktop/releases/download/v2.21.0-desktop.1/docker-compose-darwin-aarch64",
"https://github.com/docker/compose-desktop/releases/download/v2.21.0-desktop.1/docker-compose-darwin-aarch64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.21.0-desktop.1/docker-compose-darwin-x86_64",
"https://github.com/docker/compose-desktop/releases/download/v2.21.0-desktop.1/docker-compose-darwin-x86_64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.21.0-desktop.1/docker-compose-linux-aarch64",
"https://github.com/docker/compose-desktop/releases/download/v2.21.0-desktop.1/docker-compose-linux-aarch64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.21.0-desktop.1/docker-compose-linux-armv6",
"https://github.com/docker/compose-desktop/releases/download/v2.21.0-desktop.1/docker-compose-linux-armv6.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.21.0-desktop.1/docker-compose-linux-armv7",
"https://github.com/docker/compose-desktop/releases/download/v2.21.0-desktop.1/docker-compose-linux-armv7.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.21.0-desktop.1/docker-compose-linux-ppc64le",
"https://github.com/docker/compose-desktop/releases/download/v2.21.0-desktop.1/docker-compose-linux-ppc64le.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.21.0-desktop.1/docker-compose-linux-riscv64",
"https://github.com/docker/compose-desktop/releases/download/v2.21.0-desktop.1/docker-compose-linux-riscv64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.21.0-desktop.1/docker-compose-linux-s390x",
"https://github.com/docker/compose-desktop/releases/download/v2.21.0-desktop.1/docker-compose-linux-s390x.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.21.0-desktop.1/docker-compose-linux-x86_64",
"https://github.com/docker/compose-desktop/releases/download/v2.21.0-desktop.1/docker-compose-linux-x86_64.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.21.0-desktop.1/docker-compose-windows-aarch64.exe",
"https://github.com/docker/compose-desktop/releases/download/v2.21.0-desktop.1/docker-compose-windows-aarch64.exe.sha256",
"https://github.com/docker/compose-desktop/releases/download/v2.21.0-desktop.1/docker-compose-windows-x86_64.exe",
"https://github.com/docker/compose-desktop/releases/download/v2.21.0-desktop.1/docker-compose-windows-x86_64.exe.sha256"
]
}
}

4710
.github/compose-releases.json vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +1,92 @@
{
"latest": {
"id": 176167883,
"tag_name": "v27.3.1",
"html_url": "https://github.com/moby/moby/releases/tag/v27.3.1",
"id": 196137348,
"tag_name": "v27.5.1",
"html_url": "https://github.com/moby/moby/releases/tag/v27.5.1",
"assets": []
},
"v27.5.1": {
"id": 196137348,
"tag_name": "v27.5.1",
"html_url": "https://github.com/moby/moby/releases/tag/v27.5.1",
"assets": []
},
"v27.5.0": {
"id": 194138446,
"tag_name": "v27.5.0",
"html_url": "https://github.com/moby/moby/releases/tag/v27.5.0",
"assets": []
},
"edge": {
"id": 196137348,
"tag_name": "v27.5.1",
"html_url": "https://github.com/moby/moby/releases/tag/v27.5.1",
"assets": []
},
"v27.5.0-rc.2": {
"id": 193567140,
"tag_name": "v27.5.0-rc.2",
"html_url": "https://github.com/moby/moby/releases/tag/v27.5.0-rc.2",
"assets": []
},
"v27.5.0-rc.1": {
"id": 192090825,
"tag_name": "v27.5.0-rc.1",
"html_url": "https://github.com/moby/moby/releases/tag/v27.5.0-rc.1",
"assets": []
},
"v27.4.1": {
"id": 190678909,
"tag_name": "v27.4.1",
"html_url": "https://github.com/moby/moby/releases/tag/v27.4.1",
"assets": []
},
"v27.4.0": {
"id": 189756585,
"tag_name": "v27.4.0",
"html_url": "https://github.com/moby/moby/releases/tag/v27.4.0",
"assets": []
},
"v25.0.7": {
"id": 189262441,
"tag_name": "v25.0.7",
"html_url": "https://github.com/moby/moby/releases/tag/v25.0.7",
"assets": []
},
"v23.0.16": {
"id": 189261618,
"tag_name": "v23.0.16",
"html_url": "https://github.com/moby/moby/releases/tag/v23.0.16",
"assets": []
},
"v27.4.0-rc.4": {
"id": 189120203,
"tag_name": "v27.4.0-rc.4",
"html_url": "https://github.com/moby/moby/releases/tag/v27.4.0-rc.4",
"assets": []
},
"v27.4.0-rc.3": {
"id": 188263557,
"tag_name": "v27.4.0-rc.3",
"html_url": "https://github.com/moby/moby/releases/tag/v27.4.0-rc.3",
"assets": []
},
"v27.4.0-rc.2": {
"id": 186229632,
"tag_name": "v27.4.0-rc.2",
"html_url": "https://github.com/moby/moby/releases/tag/v27.4.0-rc.2",
"assets": []
},
"v27.4.0-rc.1": {
"id": 185528936,
"tag_name": "v27.4.0-rc.1",
"html_url": "https://github.com/moby/moby/releases/tag/v27.4.0-rc.1",
"assets": []
},
"v23.0.15": {
"id": 178729348,
"tag_name": "v23.0.15",
"html_url": "https://github.com/moby/moby/releases/tag/v23.0.15",
"assets": []
},
"v27.3.1": {

339
.github/undock-releases.json vendored Normal file
View File

@@ -0,0 +1,339 @@
{
"latest": {
"id": 192171889,
"tag_name": "v0.9.0",
"html_url": "https://github.com/crazy-max/undock/releases/tag/v0.9.0",
"assets": [
"https://github.com/crazy-max/undock/releases/download/v0.9.0/checksums.txt",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_darwin_amd64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_darwin_amd64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_darwin_amd64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_darwin_arm64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_darwin_arm64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_darwin_arm64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_amd64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_amd64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_amd64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_arm64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_arm64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_arm64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv5.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv5.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv5.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv6.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv6.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv6.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv7.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv7.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv7.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_ppc64le.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_ppc64le.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_ppc64le.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_riscv64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_riscv64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_riscv64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_s390x.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_s390x.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_s390x.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_windows_amd64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_windows_amd64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_windows_amd64.zip",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_windows_arm64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_windows_arm64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_windows_arm64.zip"
]
},
"v0.9.0": {
"id": 192171889,
"tag_name": "v0.9.0",
"html_url": "https://github.com/crazy-max/undock/releases/tag/v0.9.0",
"assets": [
"https://github.com/crazy-max/undock/releases/download/v0.9.0/checksums.txt",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_darwin_amd64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_darwin_amd64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_darwin_amd64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_darwin_arm64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_darwin_arm64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_darwin_arm64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_amd64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_amd64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_amd64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_arm64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_arm64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_arm64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv5.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv5.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv5.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv6.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv6.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv6.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv7.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv7.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv7.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_ppc64le.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_ppc64le.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_ppc64le.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_riscv64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_riscv64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_riscv64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_s390x.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_s390x.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_s390x.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_windows_amd64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_windows_amd64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_windows_amd64.zip",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_windows_arm64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_windows_arm64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_windows_arm64.zip"
]
},
"v0.8.0": {
"id": 162880608,
"tag_name": "v0.8.0",
"html_url": "https://github.com/crazy-max/undock/releases/tag/v0.8.0",
"assets": [
"https://github.com/crazy-max/undock/releases/download/v0.8.0/checksums.txt",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_darwin_amd64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_darwin_amd64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_darwin_amd64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_darwin_arm64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_darwin_arm64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_darwin_arm64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_linux_amd64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_linux_amd64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_linux_amd64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_linux_arm64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_linux_arm64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_linux_arm64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_linux_armv5.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_linux_armv5.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_linux_armv5.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_linux_armv6.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_linux_armv6.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_linux_armv6.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_linux_armv7.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_linux_armv7.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_linux_armv7.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_linux_ppc64le.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_linux_ppc64le.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_linux_ppc64le.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_linux_riscv64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_linux_riscv64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_linux_riscv64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_linux_s390x.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_linux_s390x.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_linux_s390x.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_windows_amd64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_windows_amd64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_windows_amd64.zip",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_windows_arm64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_windows_arm64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_windows_arm64.zip"
]
},
"v0.7.0": {
"id": 134823476,
"tag_name": "v0.7.0",
"html_url": "https://github.com/crazy-max/undock/releases/tag/v0.7.0",
"assets": [
"https://github.com/crazy-max/undock/releases/download/v0.7.0/checksums.txt",
"https://github.com/crazy-max/undock/releases/download/v0.7.0/provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.7.0/undock_0.7.0_darwin_amd64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.7.0/undock_0.7.0_darwin_arm64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.7.0/undock_0.7.0_linux_amd64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.7.0/undock_0.7.0_linux_arm64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.7.0/undock_0.7.0_linux_armv5.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.7.0/undock_0.7.0_linux_armv6.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.7.0/undock_0.7.0_linux_armv7.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.7.0/undock_0.7.0_linux_ppc64le.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.7.0/undock_0.7.0_linux_riscv64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.7.0/undock_0.7.0_linux_s390x.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.7.0/undock_0.7.0_windows_amd64.zip",
"https://github.com/crazy-max/undock/releases/download/v0.7.0/undock_0.7.0_windows_arm64.zip"
]
},
"edge": {
"id": 192171889,
"tag_name": "v0.9.0",
"html_url": "https://github.com/crazy-max/undock/releases/tag/v0.9.0",
"assets": [
"https://github.com/crazy-max/undock/releases/download/v0.9.0/checksums.txt",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_darwin_amd64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_darwin_amd64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_darwin_amd64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_darwin_arm64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_darwin_arm64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_darwin_arm64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_amd64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_amd64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_amd64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_arm64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_arm64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_arm64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv5.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv5.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv5.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv6.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv6.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv6.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv7.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv7.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_armv7.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_ppc64le.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_ppc64le.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_ppc64le.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_riscv64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_riscv64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_riscv64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_s390x.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_s390x.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_linux_s390x.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_windows_amd64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_windows_amd64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_windows_amd64.zip",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_windows_arm64.provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_windows_arm64.sbom.json",
"https://github.com/crazy-max/undock/releases/download/v0.9.0/undock_0.9.0_windows_arm64.zip"
]
},
"v0.7.0-rc.1": {
"id": 134495651,
"tag_name": "v0.7.0-rc.1",
"html_url": "https://github.com/crazy-max/undock/releases/tag/v0.7.0-rc.1",
"assets": [
"https://github.com/crazy-max/undock/releases/download/v0.7.0-rc.1/checksums.txt",
"https://github.com/crazy-max/undock/releases/download/v0.7.0-rc.1/provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.7.0-rc.1/undock_0.7.0-rc.1_darwin_amd64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.7.0-rc.1/undock_0.7.0-rc.1_darwin_arm64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.7.0-rc.1/undock_0.7.0-rc.1_linux_amd64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.7.0-rc.1/undock_0.7.0-rc.1_linux_arm64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.7.0-rc.1/undock_0.7.0-rc.1_linux_armv5.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.7.0-rc.1/undock_0.7.0-rc.1_linux_armv6.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.7.0-rc.1/undock_0.7.0-rc.1_linux_armv7.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.7.0-rc.1/undock_0.7.0-rc.1_linux_ppc64le.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.7.0-rc.1/undock_0.7.0-rc.1_linux_riscv64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.7.0-rc.1/undock_0.7.0-rc.1_linux_s390x.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.7.0-rc.1/undock_0.7.0-rc.1_windows_amd64.zip",
"https://github.com/crazy-max/undock/releases/download/v0.7.0-rc.1/undock_0.7.0-rc.1_windows_arm64.zip"
]
},
"v0.6.0": {
"id": 121362767,
"tag_name": "v0.6.0",
"html_url": "https://github.com/crazy-max/undock/releases/tag/v0.6.0",
"assets": [
"https://github.com/crazy-max/undock/releases/download/v0.6.0/checksums.txt",
"https://github.com/crazy-max/undock/releases/download/v0.6.0/provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.6.0/undock_0.6.0_darwin_amd64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.6.0/undock_0.6.0_darwin_arm64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.6.0/undock_0.6.0_linux_amd64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.6.0/undock_0.6.0_linux_arm64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.6.0/undock_0.6.0_linux_armv5.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.6.0/undock_0.6.0_linux_armv6.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.6.0/undock_0.6.0_linux_armv7.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.6.0/undock_0.6.0_linux_ppc64le.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.6.0/undock_0.6.0_linux_riscv64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.6.0/undock_0.6.0_linux_s390x.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.6.0/undock_0.6.0_windows_amd64.zip",
"https://github.com/crazy-max/undock/releases/download/v0.6.0/undock_0.6.0_windows_arm64.zip"
]
},
"v0.5.0": {
"id": 110766698,
"tag_name": "v0.5.0",
"html_url": "https://github.com/crazy-max/undock/releases/tag/v0.5.0",
"assets": [
"https://github.com/crazy-max/undock/releases/download/v0.5.0/checksums.txt",
"https://github.com/crazy-max/undock/releases/download/v0.5.0/provenance.json",
"https://github.com/crazy-max/undock/releases/download/v0.5.0/undock_0.5.0_darwin_amd64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.5.0/undock_0.5.0_darwin_arm64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.5.0/undock_0.5.0_linux_amd64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.5.0/undock_0.5.0_linux_arm64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.5.0/undock_0.5.0_linux_armv5.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.5.0/undock_0.5.0_linux_armv6.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.5.0/undock_0.5.0_linux_armv7.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.5.0/undock_0.5.0_linux_ppc64le.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.5.0/undock_0.5.0_linux_riscv64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.5.0/undock_0.5.0_linux_s390x.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.5.0/undock_0.5.0_windows_amd64.zip",
"https://github.com/crazy-max/undock/releases/download/v0.5.0/undock_0.5.0_windows_arm64.zip"
]
},
"v0.4.0": {
"id": 92330136,
"tag_name": "v0.4.0",
"html_url": "https://github.com/crazy-max/undock/releases/tag/v0.4.0",
"assets": [
"https://github.com/crazy-max/undock/releases/download/v0.4.0/checksums.txt",
"https://github.com/crazy-max/undock/releases/download/v0.4.0/undock_0.4.0_darwin_amd64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.4.0/undock_0.4.0_darwin_arm64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.4.0/undock_0.4.0_linux_amd64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.4.0/undock_0.4.0_linux_arm64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.4.0/undock_0.4.0_linux_armv5.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.4.0/undock_0.4.0_linux_armv6.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.4.0/undock_0.4.0_linux_armv7.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.4.0/undock_0.4.0_linux_ppc64le.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.4.0/undock_0.4.0_linux_riscv64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.4.0/undock_0.4.0_linux_s390x.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.4.0/undock_0.4.0_windows_amd64.zip",
"https://github.com/crazy-max/undock/releases/download/v0.4.0/undock_0.4.0_windows_arm64.zip"
]
},
"v0.3.0": {
"id": 62906231,
"tag_name": "v0.3.0",
"html_url": "https://github.com/crazy-max/undock/releases/tag/v0.3.0",
"assets": [
"https://github.com/crazy-max/undock/releases/download/v0.3.0/undock_0.3.0_darwin_amd64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.3.0/undock_0.3.0_darwin_arm64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.3.0/undock_0.3.0_linux_amd64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.3.0/undock_0.3.0_linux_arm64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.3.0/undock_0.3.0_linux_armv5.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.3.0/undock_0.3.0_linux_armv6.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.3.0/undock_0.3.0_linux_armv7.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.3.0/undock_0.3.0_linux_ppc64le.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.3.0/undock_0.3.0_linux_riscv64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.3.0/undock_0.3.0_linux_s390x.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.3.0/undock_0.3.0_windows_amd64.zip",
"https://github.com/crazy-max/undock/releases/download/v0.3.0/undock_0.3.0_windows_arm64.zip"
]
},
"v0.2.0": {
"id": 59443285,
"tag_name": "v0.2.0",
"html_url": "https://github.com/crazy-max/undock/releases/tag/v0.2.0",
"assets": [
"https://github.com/crazy-max/undock/releases/download/v0.2.0/undock_0.2.0_darwin_amd64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.2.0/undock_0.2.0_darwin_arm64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.2.0/undock_0.2.0_linux_amd64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.2.0/undock_0.2.0_linux_arm64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.2.0/undock_0.2.0_linux_armv5.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.2.0/undock_0.2.0_linux_armv6.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.2.0/undock_0.2.0_linux_armv7.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.2.0/undock_0.2.0_linux_ppc64le.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.2.0/undock_0.2.0_linux_riscv64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.2.0/undock_0.2.0_linux_s390x.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.2.0/undock_0.2.0_windows_amd64.zip",
"https://github.com/crazy-max/undock/releases/download/v0.2.0/undock_0.2.0_windows_arm64.zip"
]
},
"v0.1.0": {
"id": 57827645,
"tag_name": "v0.1.0",
"html_url": "https://github.com/crazy-max/undock/releases/tag/v0.1.0",
"assets": [
"https://github.com/crazy-max/undock/releases/download/v0.1.0/undock_0.1.0_darwin_amd64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.1.0/undock_0.1.0_darwin_arm64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.1.0/undock_0.1.0_linux_amd64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.1.0/undock_0.1.0_linux_arm64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.1.0/undock_0.1.0_linux_armv5.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.1.0/undock_0.1.0_linux_armv6.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.1.0/undock_0.1.0_linux_armv7.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.1.0/undock_0.1.0_linux_ppc64le.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.1.0/undock_0.1.0_linux_riscv64.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.1.0/undock_0.1.0_linux_s390x.tar.gz",
"https://github.com/crazy-max/undock/releases/download/v0.1.0/undock_0.1.0_windows_amd64.zip",
"https://github.com/crazy-max/undock/releases/download/v0.1.0/undock_0.1.0_windows_arm64.zip"
]
}
}

View File

@@ -15,12 +15,17 @@ on:
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node_version:
- 20
- 18
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Build
uses: docker/bake-action@v5
uses: docker/bake-action@v6
with:
targets: build
env:
NODE_VERSION: ${{ matrix.node_version }}

View File

@@ -17,7 +17,7 @@ on:
jobs:
generate:
uses: crazy-max/.github/.github/workflows/releases-json.yml@fa6141aedf23596fb8bdcceab9cce8dadaa31bd9
uses: crazy-max/.github/.github/workflows/releases-json.yml@7f83a5a887650a38e4d0e05d5262309cfaa31459
with:
repository: docker/buildx-desktop
artifact_name: buildx-lab-releases-json

View File

@@ -17,7 +17,7 @@ on:
jobs:
generate:
uses: crazy-max/.github/.github/workflows/releases-json.yml@fa6141aedf23596fb8bdcceab9cce8dadaa31bd9
uses: crazy-max/.github/.github/workflows/releases-json.yml@7f83a5a887650a38e4d0e05d5262309cfaa31459
with:
repository: docker/buildx
artifact_name: buildx-releases-json

View File

@@ -0,0 +1,58 @@
name: compose-lab-releases-json
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
workflow_dispatch:
schedule:
- cron: '0 */12 * * *'
push:
branches:
- 'main'
pull_request:
paths:
- '.github/workflows/compose-lab-releases-json.yml'
jobs:
generate:
uses: crazy-max/.github/.github/workflows/releases-json.yml@7f83a5a887650a38e4d0e05d5262309cfaa31459
with:
repository: docker/compose-desktop
artifact_name: compose-lab-releases-json
filename: compose-lab-releases.json
secrets: inherit
open-pr:
runs-on: ubuntu-22.04
if: github.event_name != 'pull_request'
needs:
- generate
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Download
uses: actions/download-artifact@v4
with:
name: compose-lab-releases-json
path: .github
-
name: Commit changes
run: |
git add -A .
-
name: Create PR
uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5
with:
base: main
branch: bot/compose-lab-releases-json
commit-message: "github: update .github/compose-lab-releases.json"
signoff: true
delete-branch: true
title: "Update `.github/compose-lab-releases.json`"
body: |
Update `.github/compose-lab-releases.json` to keep in sync with [https://github.com/docker/compose-desktop](https://github.com/docker/compose-desktop).
draft: false

View File

@@ -0,0 +1,58 @@
name: compose-releases-json
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
workflow_dispatch:
schedule:
- cron: '0 */12 * * *'
push:
branches:
- 'main'
pull_request:
paths:
- '.github/workflows/compose-releases-json.yml'
jobs:
generate:
uses: crazy-max/.github/.github/workflows/releases-json.yml@7f83a5a887650a38e4d0e05d5262309cfaa31459
with:
repository: docker/compose
artifact_name: compose-releases-json
filename: compose-releases.json
secrets: inherit
open-pr:
runs-on: ubuntu-22.04
if: github.event_name != 'pull_request'
needs:
- generate
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Download
uses: actions/download-artifact@v4
with:
name: compose-releases-json
path: .github
-
name: Commit changes
run: |
git add -A .
-
name: Create PR
uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5
with:
base: main
branch: bot/compose-releases-json
commit-message: "github: update .github/compose-releases.json"
signoff: true
delete-branch: true
title: "Update `.github/compose-releases.json`"
body: |
Update `.github/compose-releases.json` to keep in sync with [https://github.com/docker/compose](https://github.com/docker/compose).
draft: false

View File

@@ -17,7 +17,7 @@ on:
jobs:
generate:
uses: crazy-max/.github/.github/workflows/releases-json.yml@fa6141aedf23596fb8bdcceab9cce8dadaa31bd9
uses: crazy-max/.github/.github/workflows/releases-json.yml@7f83a5a887650a38e4d0e05d5262309cfaa31459
with:
repository: moby/moby
artifact_name: docker-releases-json

View File

@@ -13,15 +13,12 @@ jobs:
publish:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
-
name: Publish
uses: docker/bake-action@v5
uses: docker/bake-action@v6
with:
targets: publish
env:

View File

@@ -15,23 +15,30 @@ on:
env:
NODE_VERSION: "20"
BUILDX_VERSION: "v0.17.1"
BUILDKIT_IMAGE: "moby/buildkit:v0.16.0"
BUILDX_VERSION: "edge"
BUILDKIT_IMAGE: "moby/buildkit:v0.19.0"
jobs:
test:
runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-22.04-arm
node_version:
- 20
- 18
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Test
uses: docker/bake-action@v5
uses: docker/bake-action@v6
with:
targets: test-coverage
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_VERSION: ${{ matrix.node_version }}
-
name: Check coverage
run: |
@@ -43,17 +50,17 @@ jobs:
shell: bash
-
name: Upload coverage
uses: codecov/codecov-action@v4
if: env.RUN_CODECOV == 'true'
uses: codecov/codecov-action@v5
if: env.RUN_CODECOV == 'true' && matrix.node_version == env.NODE_VERSION
with:
file: ./coverage/clover.xml
files: ./coverage/clover.xml
flags: unit
token: ${{ secrets.CODECOV_TOKEN }}
prepare-itg:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.tests.outputs.matrix }}
includes: ${{ steps.set.outputs.includes }}
steps:
-
name: Checkout
@@ -73,14 +80,49 @@ jobs:
name: Install
run: yarn install
-
name: Create matrix
id: tests
run: |
declare -a tests
for test in $(yarn run test:itg-list); do
tests+=("${test#$(pwd)/__tests__/}")
done
echo "matrix=$(echo ${tests[@]} | jq -cR 'split(" ")')" >>${GITHUB_OUTPUT}
name: Create includes
id: set
uses: actions/github-script@v7
with:
script: |
let tests = [];
await core.group(`Get tests`, async () => {
const res = await exec.getExecOutput('yarn', ['run', 'test:itg-list'], {
silent: true,
ignoreReturnCode: true
});
if (res.stderr.length > 0 && res.exitCode != 0) {
throw new Error(res.stderr);
}
for (const test of res.stdout.trim().split('\n')) {
tests.push(test.replace(/^.*__tests__\//, ''));
}
core.info(`tests: ${JSON.stringify(tests)}`);
});
await core.group(`Set includes`, async () => {
let includes = [];
for (const os of ['ubuntu-latest', 'ubuntu-22.04-arm', 'macos-13', 'windows-latest']) {
for (const test of tests) {
if (test === 'docker/install.test.itg.ts') {
includes.push({ os: os, test: test, test_name: 'root', docker_install_type: 'image', docker_install_version: '27.3.1' });
includes.push({ os: os, test: test, test_name: 'root', docker_install_type: 'image', docker_install_version: 'master' });
includes.push({ os: os, test: test, test_name: 'root', docker_install_type: 'image', docker_install_version: 'latest' });
includes.push({ os: os, test: test, test_name: 'root', docker_install_type: 'archive', docker_install_version: 'v26.1.4' });
includes.push({ os: os, test: test, test_name: 'root', docker_install_type: 'archive', docker_install_version: 'latest' });
if (os === 'ubuntu-latest') {
includes.push({ os: os, test: test, test_name: 'rootless', docker_install_type: 'image', docker_install_version: 'latest' });
includes.push({ os: os, test: test, test_name: 'rootless', docker_install_type: 'archive', docker_install_version: 'latest' });
}
includes.push({ os: os, test: test, test_name: 'tcp', docker_install_type: 'image', docker_install_version: 'latest' });
includes.push({ os: os, test: test, test_name: 'tcp', docker_install_type: 'archive', docker_install_version: 'latest' });
} else {
includes.push({ os: os, test: test });
}
}
}
core.info(`includes: ${JSON.stringify(includes)}`);
core.setOutput('includes', JSON.stringify(includes));
});
-
name: Show matrix
run: |
@@ -93,13 +135,7 @@ jobs:
strategy:
fail-fast: false
matrix:
test: ${{ fromJson(needs.prepare-itg.outputs.matrix) }}
os:
- ubuntu-latest
#- macos-14 # no virt: https://github.com/docker/actions-toolkit/issues/317
- macos-13
- macos-12
- windows-latest
include: ${{ fromJson(needs.prepare-itg.outputs.includes) }}
steps:
-
name: Checkout
@@ -146,12 +182,22 @@ jobs:
run: yarn install
-
name: Test
run: |
yarn test:itg-coverage --runTestsByPath __tests__/${{ matrix.test }} --coverageDirectory=./coverage
uses: actions/github-script@v7
with:
script: |
const testName = `${{ matrix.test_name }}`;
let args = ['test:itg-coverage'];
if (testName) {
args.push(`--testNamePattern=^${testName} `);
}
args.push(`--runTestsByPath`, `__tests__/${{ matrix.test }}`, `--coverageDirectory=./coverage`);
await exec.exec('yarn', args);
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CTN_BUILDER_NAME: ${{ steps.builder.outputs.name }}
TEST_FOR_SUMMARY: ${{ secrets.TEST_FOR_SUMMARY }}
DOCKER_INSTALL_TYPE: ${{ matrix.docker_install_type }}
DOCKER_INSTALL_VERSION: ${{ matrix.docker_install_version }}
-
name: Check coverage
run: |
@@ -163,9 +209,9 @@ jobs:
shell: bash
-
name: Upload coverage
uses: codecov/codecov-action@v4
uses: codecov/codecov-action@v5
if: env.RUN_CODECOV == 'true'
with:
file: ./coverage/clover.xml
files: ./coverage/clover.xml
flags: itg
token: ${{ secrets.CODECOV_TOKEN }}

View File

@@ -0,0 +1,58 @@
name: undock-releases-json
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
workflow_dispatch:
schedule:
- cron: '0 */12 * * *'
push:
branches:
- 'main'
pull_request:
paths:
- '.github/workflows/undock-releases-json.yml'
jobs:
generate:
uses: crazy-max/.github/.github/workflows/releases-json.yml@7f83a5a887650a38e4d0e05d5262309cfaa31459
with:
repository: crazy-max/undock
artifact_name: undock-releases-json
filename: undock-releases.json
secrets: inherit
open-pr:
runs-on: ubuntu-22.04
if: github.event_name != 'pull_request'
needs:
- generate
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Download
uses: actions/download-artifact@v4
with:
name: undock-releases-json
path: .github
-
name: Commit changes
run: |
git add -A .
-
name: Create PR
uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5
with:
base: main
branch: bot/undock-releases-json
commit-message: "github: update .github/undock-releases.json"
signoff: true
delete-branch: true
title: "Update `.github/undock-releases.json`"
body: |
Update `.github/undock-releases.json` to keep in sync with [https://github.com/crazy-max/undock](https://github.com/crazy-max/undock).
draft: false

View File

@@ -17,16 +17,17 @@ jobs:
prepare:
runs-on: ubuntu-20.04
outputs:
targets: ${{ steps.targets.outputs.matrix }}
targets: ${{ steps.generate.outputs.targets }}
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Matrix
id: targets
run: |
echo "matrix=$(docker buildx bake validate --print | jq -cr '.group.validate.targets')" >> $GITHUB_OUTPUT
name: List targets
id: generate
uses: docker/bake-action/subaction/list-targets@v6
with:
target: validate
validate:
runs-on: ubuntu-latest
@@ -37,11 +38,8 @@ jobs:
matrix:
target: ${{ fromJson(needs.prepare.outputs.targets) }}
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Validate
uses: docker/bake-action@v5
uses: docker/bake-action@v6
with:
targets: ${{ matrix.target }}

View File

@@ -24,6 +24,8 @@ jobs:
- ubuntu-24.04
- ubuntu-22.04
- ubuntu-20.04
- ubuntu-24.04-arm
- ubuntu-22.04-arm
steps:
-
name: File system

View File

@@ -25,6 +25,7 @@ a library by most of our GitHub Actions:
* [docker/login-action](https://github.com/docker/login-action)
* [docker/metadata-action](https://github.com/docker/metadata-action)
* [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action)
* [docker/setup-docker-action](https://github.com/docker/setup-docker-action)
* [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action)
This toolkit provides some utilities and common logic when developing GitHub

View File

@@ -22,7 +22,9 @@
"linux/amd64"
],
"output": [
"type=docker"
{
"type": "docker"
}
]
}
}

View File

@@ -22,7 +22,9 @@
"GO_VERSION": "1.20"
},
"output": [
"type=cacheonly"
{
"type": "cacheonly"
}
]
},
"validate-docs": {
@@ -36,7 +38,9 @@
},
"target": "validate",
"output": [
"type=cacheonly"
{
"type": "cacheonly"
}
]
},
"validate-vendor": {
@@ -48,7 +52,9 @@
},
"target": "validate",
"output": [
"type=cacheonly"
{
"type": "cacheonly"
}
]
}
}

View File

@@ -0,0 +1,68 @@
{
"group": {
"default": {
"targets": [
"default"
]
}
},
"target": {
"default": {
"context": ".",
"dockerfile": "Dockerfile",
"attest": [
{
"mode": "max",
"type": "provenance"
},
{
"disabled": true,
"type": "sbom"
}
],
"cache-from": [
{
"scope": "build",
"type": "gha"
},
{
"ref": "user/repo:cache",
"type": "registry"
}
],
"cache-to": [
{
"mode": "max",
"scope": "build",
"type": "gha"
},
{
"type": "inline"
}
],
"output": [
{
"dest": "./release-out",
"type": "local"
},
{
"ref": "user/app",
"type": "registry"
}
],
"secret": [
{
"env": "GITHUB_TOKEN",
"id": "GITHUB_TOKEN"
},
{
"id": "aws",
"src": "__tests__/.fixtures/secret.txt"
},
{
"id": "GITHUB_REPOSITORY"
}
]
}
}
}

View File

@@ -0,0 +1,37 @@
// Copyright 2024 actions-toolkit authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
target "default" {
attest = [
"type=provenance,mode=max",
"type=sbom,disabled=true",
]
cache-from = [
"type=gha,scope=build",
"user/repo:cache",
]
cache-to = [
"type=gha,scope=build,mode=max",
"type=inline"
]
output = [
"./release-out",
"type=registry,ref=user/app"
]
secret = [
"id=GITHUB_TOKEN,env=GITHUB_TOKEN",
"id=aws,src=__tests__/.fixtures/secret.txt",
"id=GITHUB_REPOSITORY"
]
}

View File

@@ -29,7 +29,10 @@
"windows/arm64"
],
"output": [
"./bin/build"
{
"dest": "./bin/build",
"type": "local"
}
]
}
}

View File

@@ -0,0 +1,74 @@
{
"created": "2024-12-16T23:44:38.698098711Z",
"architecture": "amd64",
"os": "linux",
"config": {
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"BUILDKIT_SETUP_CGROUPV2_ROOT=1"
],
"Entrypoint": [
"buildkitd"
],
"Volumes": {
"/var/lib/buildkit": {}
},
"WorkingDir": "/",
"ArgsEscaped": true
},
"rootfs": {
"type": "layers",
"diff_ids": [
"sha256:75654b8eeebd3beae97271a102f57cdeb794cc91e442648544963a7e951e9558",
"sha256:6a1b167dc4f30367cc713f6d48710dff20eb913bfaf14d7df23cfbe8a235319c",
"sha256:37453f29fa93eccde9d8ffa21c0b92c41a981c727ad6c32acee11caf4f5e42a8",
"sha256:cc4513cba548800cba786895e269f78eff73e7685e80b0447070f8c116652eea"
]
},
"history": [
{
"created": "2024-09-06T12:05:36Z",
"created_by": "ADD alpine-minirootfs-3.20.3-x86_64.tar.gz / # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-09-06T12:05:36Z",
"created_by": "CMD [\"/bin/sh\"]",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
},
{
"created": "2024-12-16T23:35:52.845698088Z",
"created_by": "RUN /bin/sh -c apk add --no-cache fuse3 git openssh pigz xz iptables ip6tables \u0026\u0026 ln -s fusermount3 /usr/bin/fusermount # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-12-16T23:35:49.452745107Z",
"created_by": "COPY examples/buildctl-daemonless/buildctl-daemonless.sh /usr/bin/ # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-12-16T23:44:38.698098711Z",
"created_by": "VOLUME [/var/lib/buildkit]",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
},
{
"created": "2024-12-16T23:44:38.698098711Z",
"created_by": "COPY / /usr/bin/ # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-12-16T23:44:38.698098711Z",
"created_by": "ENV BUILDKIT_SETUP_CGROUPV2_ROOT=1",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
},
{
"created": "2024-12-16T23:44:38.698098711Z",
"created_by": "ENTRYPOINT [\"buildkitd\"]",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
}
]
}

View File

@@ -0,0 +1,447 @@
{
"linux/amd64": {
"created": "2024-12-16T23:44:38.698098711Z",
"architecture": "amd64",
"os": "linux",
"config": {
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"BUILDKIT_SETUP_CGROUPV2_ROOT=1"
],
"Entrypoint": [
"buildkitd"
],
"Volumes": {
"/var/lib/buildkit": {}
},
"WorkingDir": "/",
"ArgsEscaped": true
},
"rootfs": {
"type": "layers",
"diff_ids": [
"sha256:75654b8eeebd3beae97271a102f57cdeb794cc91e442648544963a7e951e9558",
"sha256:6a1b167dc4f30367cc713f6d48710dff20eb913bfaf14d7df23cfbe8a235319c",
"sha256:37453f29fa93eccde9d8ffa21c0b92c41a981c727ad6c32acee11caf4f5e42a8",
"sha256:cc4513cba548800cba786895e269f78eff73e7685e80b0447070f8c116652eea"
]
},
"history": [
{
"created": "2024-09-06T12:05:36Z",
"created_by": "ADD alpine-minirootfs-3.20.3-x86_64.tar.gz / # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-09-06T12:05:36Z",
"created_by": "CMD [\"/bin/sh\"]",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
},
{
"created": "2024-12-16T23:35:52.845698088Z",
"created_by": "RUN /bin/sh -c apk add --no-cache fuse3 git openssh pigz xz iptables ip6tables \u0026\u0026 ln -s fusermount3 /usr/bin/fusermount # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-12-16T23:35:49.452745107Z",
"created_by": "COPY examples/buildctl-daemonless/buildctl-daemonless.sh /usr/bin/ # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-12-16T23:44:38.698098711Z",
"created_by": "VOLUME [/var/lib/buildkit]",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
},
{
"created": "2024-12-16T23:44:38.698098711Z",
"created_by": "COPY / /usr/bin/ # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-12-16T23:44:38.698098711Z",
"created_by": "ENV BUILDKIT_SETUP_CGROUPV2_ROOT=1",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
},
{
"created": "2024-12-16T23:44:38.698098711Z",
"created_by": "ENTRYPOINT [\"buildkitd\"]",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
}
]
},
"linux/arm/v7": {
"created": "2024-12-16T23:44:35.805758197Z",
"architecture": "arm",
"os": "linux",
"variant": "v7",
"config": {
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"BUILDKIT_SETUP_CGROUPV2_ROOT=1"
],
"Entrypoint": [
"buildkitd"
],
"Volumes": {
"/var/lib/buildkit": {}
},
"WorkingDir": "/",
"ArgsEscaped": true
},
"rootfs": {
"type": "layers",
"diff_ids": [
"sha256:0cee9b6e126689480f812b337d8926e8b051e2c1e40b3e36701ea2554f367b9d",
"sha256:4cfff05f912cc67c6ff688b2f53f84e6d74fe415725a228115a296634d919fd3",
"sha256:37453f29fa93eccde9d8ffa21c0b92c41a981c727ad6c32acee11caf4f5e42a8",
"sha256:e0962dfb9d203ce37963e41ec72119610633651f760570d20b0217db3632b5d5"
]
},
"history": [
{
"created": "2024-09-06T12:05:36Z",
"created_by": "ADD alpine-minirootfs-3.20.3-armv7.tar.gz / # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-09-06T12:05:36Z",
"created_by": "CMD [\"/bin/sh\"]",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
},
{
"created": "2024-12-16T23:36:02.690991835Z",
"created_by": "RUN /bin/sh -c apk add --no-cache fuse3 git openssh pigz xz iptables ip6tables \u0026\u0026 ln -s fusermount3 /usr/bin/fusermount # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-12-16T23:35:49.452745107Z",
"created_by": "COPY examples/buildctl-daemonless/buildctl-daemonless.sh /usr/bin/ # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-12-16T23:44:35.805758197Z",
"created_by": "VOLUME [/var/lib/buildkit]",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
},
{
"created": "2024-12-16T23:44:35.805758197Z",
"created_by": "COPY / /usr/bin/ # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-12-16T23:44:35.805758197Z",
"created_by": "ENV BUILDKIT_SETUP_CGROUPV2_ROOT=1",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
},
{
"created": "2024-12-16T23:44:35.805758197Z",
"created_by": "ENTRYPOINT [\"buildkitd\"]",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
}
]
},
"linux/arm64": {
"created": "2024-12-16T23:44:45.848423966Z",
"architecture": "arm64",
"os": "linux",
"config": {
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"BUILDKIT_SETUP_CGROUPV2_ROOT=1"
],
"Entrypoint": [
"buildkitd"
],
"Volumes": {
"/var/lib/buildkit": {}
},
"WorkingDir": "/",
"ArgsEscaped": true
},
"rootfs": {
"type": "layers",
"diff_ids": [
"sha256:651d9022c23486dfbd396c13db293af6845731cbd098a5f5606db4bc9f5573e8",
"sha256:9c138da7f7ea7cc8190f71ce15f125e2eb79fd360f4cc2d34513dad016cb1096",
"sha256:37453f29fa93eccde9d8ffa21c0b92c41a981c727ad6c32acee11caf4f5e42a8",
"sha256:9422ca7e65701d8eba4a5a31e325443dcbc753c2edef64e431c96702c94d2672"
]
},
"history": [
{
"created": "2024-09-06T12:05:36Z",
"created_by": "ADD alpine-minirootfs-3.20.3-aarch64.tar.gz / # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-09-06T12:05:36Z",
"created_by": "CMD [\"/bin/sh\"]",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
},
{
"created": "2024-12-16T23:36:03.586014466Z",
"created_by": "RUN /bin/sh -c apk add --no-cache fuse3 git openssh pigz xz iptables ip6tables \u0026\u0026 ln -s fusermount3 /usr/bin/fusermount # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-12-16T23:35:49.452745107Z",
"created_by": "COPY examples/buildctl-daemonless/buildctl-daemonless.sh /usr/bin/ # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-12-16T23:44:45.848423966Z",
"created_by": "VOLUME [/var/lib/buildkit]",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
},
{
"created": "2024-12-16T23:44:45.848423966Z",
"created_by": "COPY / /usr/bin/ # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-12-16T23:44:45.848423966Z",
"created_by": "ENV BUILDKIT_SETUP_CGROUPV2_ROOT=1",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
},
{
"created": "2024-12-16T23:44:45.848423966Z",
"created_by": "ENTRYPOINT [\"buildkitd\"]",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
}
]
},
"linux/ppc64le": {
"created": "2024-12-16T23:44:45.864267959Z",
"architecture": "ppc64le",
"os": "linux",
"config": {
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"BUILDKIT_SETUP_CGROUPV2_ROOT=1"
],
"Entrypoint": [
"buildkitd"
],
"Volumes": {
"/var/lib/buildkit": {}
},
"WorkingDir": "/",
"ArgsEscaped": true
},
"rootfs": {
"type": "layers",
"diff_ids": [
"sha256:fc80c1f6e8bee4861c27b2cee0f8edf887bd4d88d20063ba179f0caa93088770",
"sha256:e9fbfe005c7e2cd7d4f3159f07f6fbe82dad25c7e868a1ee2dd6503830d468c4",
"sha256:37453f29fa93eccde9d8ffa21c0b92c41a981c727ad6c32acee11caf4f5e42a8",
"sha256:86e0c30fb5e087f5cd324e082a0529c6326af1025f1a030fc1d2ac2979dec81c"
]
},
"history": [
{
"created": "2024-09-06T12:05:36Z",
"created_by": "ADD alpine-minirootfs-3.20.3-ppc64le.tar.gz / # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-09-06T12:05:36Z",
"created_by": "CMD [\"/bin/sh\"]",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
},
{
"created": "2024-12-16T23:36:03.82451378Z",
"created_by": "RUN /bin/sh -c apk add --no-cache fuse3 git openssh pigz xz iptables ip6tables \u0026\u0026 ln -s fusermount3 /usr/bin/fusermount # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-12-16T23:35:49.452745107Z",
"created_by": "COPY examples/buildctl-daemonless/buildctl-daemonless.sh /usr/bin/ # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-12-16T23:44:45.864267959Z",
"created_by": "VOLUME [/var/lib/buildkit]",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
},
{
"created": "2024-12-16T23:44:45.864267959Z",
"created_by": "COPY / /usr/bin/ # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-12-16T23:44:45.864267959Z",
"created_by": "ENV BUILDKIT_SETUP_CGROUPV2_ROOT=1",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
},
{
"created": "2024-12-16T23:44:45.864267959Z",
"created_by": "ENTRYPOINT [\"buildkitd\"]",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
}
]
},
"linux/riscv64": {
"created": "2024-12-16T23:44:51.369236518Z",
"architecture": "riscv64",
"os": "linux",
"config": {
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"BUILDKIT_SETUP_CGROUPV2_ROOT=1"
],
"Entrypoint": [
"buildkitd"
],
"Volumes": {
"/var/lib/buildkit": {}
},
"WorkingDir": "/",
"ArgsEscaped": true
},
"rootfs": {
"type": "layers",
"diff_ids": [
"sha256:f9a3c4be4be59ad69b98da83e848450a28193c63ecdb40736f854308873152f9",
"sha256:231aa6f6a7db1c4ac8dc807a8bdd250f92be3ffac79ef9fec89ca8ac2f78e688",
"sha256:37453f29fa93eccde9d8ffa21c0b92c41a981c727ad6c32acee11caf4f5e42a8",
"sha256:555c2f18bbe5d71e09387bdf745023055a8e5a6667905143c09a689e65f5ceff"
]
},
"history": [
{
"created": "2024-09-06T12:05:36Z",
"created_by": "ADD alpine-minirootfs-3.20.3-riscv64.tar.gz / # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-09-06T12:05:36Z",
"created_by": "CMD [\"/bin/sh\"]",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
},
{
"created": "2024-12-16T23:36:02.869897238Z",
"created_by": "RUN /bin/sh -c apk add --no-cache fuse3 git openssh pigz xz iptables ip6tables \u0026\u0026 ln -s fusermount3 /usr/bin/fusermount # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-12-16T23:35:49.452745107Z",
"created_by": "COPY examples/buildctl-daemonless/buildctl-daemonless.sh /usr/bin/ # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-12-16T23:44:51.369236518Z",
"created_by": "VOLUME [/var/lib/buildkit]",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
},
{
"created": "2024-12-16T23:44:51.369236518Z",
"created_by": "COPY / /usr/bin/ # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-12-16T23:44:51.369236518Z",
"created_by": "ENV BUILDKIT_SETUP_CGROUPV2_ROOT=1",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
},
{
"created": "2024-12-16T23:44:51.369236518Z",
"created_by": "ENTRYPOINT [\"buildkitd\"]",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
}
]
},
"linux/s390x": {
"created": "2024-12-16T23:44:38.777675109Z",
"architecture": "s390x",
"os": "linux",
"config": {
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"BUILDKIT_SETUP_CGROUPV2_ROOT=1"
],
"Entrypoint": [
"buildkitd"
],
"Volumes": {
"/var/lib/buildkit": {}
},
"WorkingDir": "/",
"ArgsEscaped": true
},
"rootfs": {
"type": "layers",
"diff_ids": [
"sha256:a772154591ea8d876b24f25db93db4753a9f05c6500413a5ff966d581957655e",
"sha256:920529bf8be4087e77ec129bbcd9f3c4a179ede2f35cac38c6f8517fc9e41b9b",
"sha256:37453f29fa93eccde9d8ffa21c0b92c41a981c727ad6c32acee11caf4f5e42a8",
"sha256:2b99eb6f0070abe514fde85b61fa4993f1edfb32365b2a246841521f24fc38c0"
]
},
"history": [
{
"created": "2024-09-06T12:05:36Z",
"created_by": "ADD alpine-minirootfs-3.20.3-s390x.tar.gz / # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-09-06T12:05:36Z",
"created_by": "CMD [\"/bin/sh\"]",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
},
{
"created": "2024-12-16T23:36:04.705568496Z",
"created_by": "RUN /bin/sh -c apk add --no-cache fuse3 git openssh pigz xz iptables ip6tables \u0026\u0026 ln -s fusermount3 /usr/bin/fusermount # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-12-16T23:35:49.452745107Z",
"created_by": "COPY examples/buildctl-daemonless/buildctl-daemonless.sh /usr/bin/ # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-12-16T23:44:38.777675109Z",
"created_by": "VOLUME [/var/lib/buildkit]",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
},
{
"created": "2024-12-16T23:44:38.777675109Z",
"created_by": "COPY / /usr/bin/ # buildkit",
"comment": "buildkit.dockerfile.v0"
},
{
"created": "2024-12-16T23:44:38.777675109Z",
"created_by": "ENV BUILDKIT_SETUP_CGROUPV2_ROOT=1",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
},
{
"created": "2024-12-16T23:44:38.777675109Z",
"created_by": "ENTRYPOINT [\"buildkitd\"]",
"comment": "buildkit.dockerfile.v0",
"empty_layer": true
}
]
}
}

View File

@@ -37,3 +37,15 @@ GC Policy rule#2:
GC Policy rule#3:
All: true
Keep Bytes: 94.06GiB
File#buildkitd.toml:
> debug = true
> insecure-entitlements = ["network.host", "security.insecure"]
> trace = true
>
> [log]
> format = "text"
>
File#foo.txt:
> foo = bar
> baz = qux
>

View File

@@ -94,7 +94,14 @@ describe('getDefinition', () => {
['*.output=type=docker', '*.platform=linux/amd64'],
undefined,
path.join(fixturesDir, 'bake-01-overrides.json')
]
],
[
[path.join(fixturesDir, 'bake-03.hcl')],
[],
[],
undefined,
path.join(fixturesDir, 'bake-03-default.json')
],
])('given %p', async (files: string[], targets: string[], overrides: string[], execOptions: ExecOptions | undefined, out: string) => {
const bake = new Bake();
const expectedDef = <BakeDefinition>JSON.parse(fs.readFileSync(out, {encoding: 'utf-8'}).trim())
@@ -103,7 +110,7 @@ describe('getDefinition', () => {
targets: targets,
overrides: overrides
}, execOptions)).toEqual(expectedDef);
});
}, 30 * 60 * 1000);
});
describe('hasLocalExporter', () => {
@@ -114,7 +121,9 @@ describe('hasLocalExporter', () => {
"target": {
"build": {
"output": [
"type=docker"
{
"type": "docker"
}
]
},
}
@@ -136,7 +145,10 @@ describe('hasLocalExporter', () => {
"target": {
"local": {
"output": [
"type=local,dest=./release-out"
{
"type": "local",
"dest": "./release-out"
}
]
},
}
@@ -148,19 +160,10 @@ describe('hasLocalExporter', () => {
"target": {
"tar": {
"output": [
"type=tar,dest=/tmp/image.tar"
]
},
}
} as unknown as BakeDefinition,
false
],
[
{
"target": {
"tar": {
"output": [
'"type=tar","dest=/tmp/image.tar"',
{
"type": "tar",
"dest": "/tmp/image.tar"
}
]
},
}
@@ -172,19 +175,10 @@ describe('hasLocalExporter', () => {
"target": {
"local": {
"output": [
'" type= local" , dest=./release-out',
]
},
}
} as unknown as BakeDefinition,
true
],
[
{
"target": {
"local": {
"output": [
".",
{
"type": "local",
"dest": "."
}
]
},
}
@@ -204,7 +198,10 @@ describe('hasTarExporter', () => {
"target": {
"reg": {
"output": [
"type=registry,ref=user/app"
{
"type": "registry",
"ref": "user/app"
}
]
},
}
@@ -216,7 +213,9 @@ describe('hasTarExporter', () => {
"target": {
"build": {
"output": [
"type=docker"
{
"type": "docker"
}
]
},
}
@@ -228,7 +227,10 @@ describe('hasTarExporter', () => {
"target": {
"local": {
"output": [
"type=local,dest=./release-out"
{
"type": "local",
"dest": "./release-out"
}
]
},
}
@@ -240,7 +242,10 @@ describe('hasTarExporter', () => {
"target": {
"tar": {
"output": [
"type=tar,dest=/tmp/image.tar"
{
"type": "tar",
"dest": "/tmp/image.tar"
}
]
},
}
@@ -252,20 +257,13 @@ describe('hasTarExporter', () => {
"target": {
"multi": {
"output": [
"type=docker",
"type=tar,dest=/tmp/image.tar"
]
},
}
} as unknown as BakeDefinition,
true
],
[
{
"target": {
"tar": {
"output": [
'"type=tar","dest=/tmp/image.tar"',
{
"type": "docker"
},
{
"type": "tar",
"dest": "/tmp/image.tar"
}
]
},
}
@@ -277,19 +275,10 @@ describe('hasTarExporter', () => {
"target": {
"local": {
"output": [
'" type= local" , dest=./release-out',
]
},
}
} as unknown as BakeDefinition,
false
],
[
{
"target": {
"local": {
"output": [
".",
{
"type": "local",
"dest": "."
}
]
},
}
@@ -309,7 +298,10 @@ describe('hasDockerExporter', () => {
"target": {
"reg": {
"output": [
"type=registry,ref=user/app"
{
"type": "registry",
"ref": "user/app"
}
]
},
}
@@ -322,7 +314,9 @@ describe('hasDockerExporter', () => {
"target": {
"build": {
"output": [
"type=docker"
{
"type": "docker"
}
]
},
}
@@ -335,8 +329,13 @@ describe('hasDockerExporter', () => {
"target": {
"multi": {
"output": [
"type=docker",
"type=tar,dest=/tmp/image.tar"
{
"type": "docker"
},
{
"type": "tar",
"dest": "/tmp/image.tar"
}
]
},
}
@@ -349,20 +348,10 @@ describe('hasDockerExporter', () => {
"target": {
"local": {
"output": [
'" type= local" , dest=./release-out'
]
},
}
} as unknown as BakeDefinition,
false,
undefined
],
[
{
"target": {
"local": {
"output": [
"type=local,dest=./release-out"
{
"type": "local",
"dest": "./release-out"
}
]
},
}
@@ -375,7 +364,10 @@ describe('hasDockerExporter', () => {
"target": {
"tar": {
"output": [
"type=tar,dest=/tmp/image.tar"
{
"type": "tar",
"dest": "/tmp/image.tar"
}
]
},
}
@@ -388,8 +380,13 @@ describe('hasDockerExporter', () => {
"target": {
"multi": {
"output": [
"type=docker",
"type=tar,dest=/tmp/image.tar"
{
"type": "docker"
},
{
"type": "tar",
"dest": "/tmp/image.tar"
}
]
},
}
@@ -397,51 +394,14 @@ describe('hasDockerExporter', () => {
true,
undefined
],
[
{
"target": {
"tar": {
"output": [
'"type=tar","dest=/tmp/image.tar"'
]
},
}
} as unknown as BakeDefinition,
false,
undefined
],
[
{
"target": {
"tar": {
"output": [
'"type=tar","dest=/tmp/image.tar"'
]
},
}
} as unknown as BakeDefinition,
false,
undefined
],
[
{
"target": {
"local": {
"output": [
'" type= local" , dest=./release-out'
]
},
}
} as unknown as BakeDefinition,
false,
undefined
],
[
{
"target": {
"build": {
"output": [
"type=docker"
{
"type": "docker"
}
]
},
}
@@ -454,7 +414,9 @@ describe('hasDockerExporter', () => {
"target": {
"build": {
"output": [
"type=docker"
{
"type": "docker"
}
]
},
}
@@ -467,7 +429,10 @@ describe('hasDockerExporter', () => {
"target": {
"build": {
"output": [
"."
{
"type": "local",
"dest": "."
}
]
},
}
@@ -479,3 +444,44 @@ describe('hasDockerExporter', () => {
expect(Bake.hasDockerExporter(def, load)).toEqual(expected);
});
});
describe('hasGitAuthTokenSecret', () => {
// prettier-ignore
test.each([
[
{
"target": {
"reg": {
"secret": [
{
"id": "A_SECRET",
"env": "A_SECRET"
}
]
},
}
} as unknown as BakeDefinition,
false
],
[
{
"target": {
"reg": {
"secret": [
{
"id": "A_SECRET",
"env": "A_SECRET"
},
{
"id": "GIT_AUTH_TOKEN"
}
]
},
}
} as unknown as BakeDefinition,
true
],
])('given %o returns %p', async (def: BakeDefinition, expected: boolean) => {
expect(Bake.hasGitAuthTokenSecret(def)).toEqual(expected);
});
});

View File

@@ -449,7 +449,19 @@ describe('parseInspect', () => {
"all": true,
"keepBytes": "94.06GiB",
}
]
],
"files": {
"buildkitd.toml": `debug = true
insecure-entitlements = ["network.host", "security.insecure"]
trace = true
[log]
format = "text"
`,
"foo.txt": `foo = bar
baz = qux
`,
}
}
]
}

View File

@@ -0,0 +1,39 @@
/**
* Copyright 2025 actions-toolkit authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import {describe, expect, it} from '@jest/globals';
import * as fs from 'fs';
import * as path from 'path';
import {ImageTools} from '../../src/buildx/imagetools';
import {Image} from '../../src/types/oci/config';
const fixturesDir = path.join(__dirname, '..', '.fixtures');
const maybe = !process.env.GITHUB_ACTIONS || (process.env.GITHUB_ACTIONS === 'true' && process.env.ImageOS && process.env.ImageOS.startsWith('ubuntu')) ? describe : describe.skip;
maybe('inspectImage', () => {
it('inspect single platform', async () => {
const image = await new ImageTools().inspectImage('moby/buildkit:latest@sha256:5769c54b98840147b74128f38fb0b0a049e24b11a75bd81664131edd2854593f');
const expectedImage = <Image>JSON.parse(fs.readFileSync(path.join(fixturesDir, 'imagetools-01.json'), {encoding: 'utf-8'}).trim());
expect(image).toEqual(expectedImage);
});
it('inspect multi platform', async () => {
const image = await new ImageTools().inspectImage('moby/buildkit:latest@sha256:86c0ad9d1137c186e9d455912167df20e530bdf7f7c19de802e892bb8ca16552');
const expectedImage = <Record<string, Image>>JSON.parse(fs.readFileSync(path.join(fixturesDir, 'imagetools-02.json'), {encoding: 'utf-8'}).trim());
expect(image).toEqual(expectedImage);
});
});

View File

@@ -24,7 +24,7 @@ const maybe = !process.env.GITHUB_ACTIONS || (process.env.GITHUB_ACTIONS === 'tr
maybe('download', () => {
// prettier-ignore
test.each(['latest'])(
'install docker %s', async (version) => {
'install buildx %s', async (version) => {
await expect((async () => {
const install = new Install({
standalone: true

View File

@@ -57,22 +57,26 @@ describe('download', () => {
['v0.9.0'],
['v0.10.5'],
])(
'acquires %p of buildx with cache', async (version) => {
const install = new Install({standalone: false});
const toolPath = await install.download(version);
expect(fs.existsSync(toolPath)).toBe(true);
});
'acquires %p of buildx with cache', async (version) => {
const install = new Install({standalone: false});
const toolPath = await install.download(version);
expect(fs.existsSync(toolPath)).toBe(true);
},
100000
);
// prettier-ignore
test.each([
['v0.11.2'],
['v0.12.0'],
])(
'acquires %p of buildx without cache', async (version) => {
const install = new Install({standalone: false});
const toolPath = await install.download(version, true);
expect(fs.existsSync(toolPath)).toBe(true);
});
'acquires %p of buildx without cache', async (version) => {
const install = new Install({standalone: false});
const toolPath = await install.download(version, true);
expect(fs.existsSync(toolPath)).toBe(true);
},
100000
);
// TODO: add tests for arm
// prettier-ignore
@@ -86,7 +90,7 @@ describe('download', () => {
['linux', 'ppc64'],
['linux', 's390x'],
])(
'acquires buildx for %s/%s', async (os, arch) => {
'acquires buildx for %s/%s', async (os, arch) => {
jest.spyOn(osm, 'platform').mockImplementation(() => os as NodeJS.Platform);
jest.spyOn(osm, 'arch').mockImplementation(() => arch);
const install = new Install();
@@ -134,22 +138,30 @@ describe('getDownloadVersion', () => {
expect(version.releasesURL).toEqual('https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/buildx-releases.json');
});
it('returns lab latest download version', async () => {
const version = await Install.getDownloadVersion('lab:latest');
expect(version.key).toEqual('lab');
it('returns cloud latest download version', async () => {
const version = await Install.getDownloadVersion('cloud:latest');
expect(version.key).toEqual('cloud');
expect(version.version).toEqual('latest');
expect(version.downloadURL).toEqual('https://github.com/docker/buildx-desktop/releases/download/v%s/%s');
expect(version.releasesURL).toEqual('https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/buildx-lab-releases.json');
});
it('returns lab v0.11.2-desktop.2 download version', async () => {
const version = await Install.getDownloadVersion('lab:v0.11.2-desktop.2');
expect(version.key).toEqual('lab');
it('returns cloud v0.11.2-desktop.2 download version', async () => {
const version = await Install.getDownloadVersion('cloud:v0.11.2-desktop.2');
expect(version.key).toEqual('cloud');
expect(version.version).toEqual('v0.11.2-desktop.2');
expect(version.downloadURL).toEqual('https://github.com/docker/buildx-desktop/releases/download/v%s/%s');
expect(version.releasesURL).toEqual('https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/buildx-lab-releases.json');
});
it('returns cloud for lab version', async () => {
const version = await Install.getDownloadVersion('lab:latest');
expect(version.key).toEqual('cloud');
expect(version.version).toEqual('latest');
expect(version.downloadURL).toEqual('https://github.com/docker/buildx-desktop/releases/download/v%s/%s');
expect(version.releasesURL).toEqual('https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/buildx-lab-releases.json');
});
it('unknown repo', async () => {
await expect(Install.getDownloadVersion('foo:bar')).rejects.toThrow(new Error('Cannot find buildx version for foo:bar'));
});
@@ -172,8 +184,8 @@ describe('getRelease', () => {
expect(release?.html_url).toEqual('https://github.com/docker/buildx/releases/tag/v0.10.1');
});
it('returns v0.11.2-desktop.2 lab GitHub release', async () => {
const version = await Install.getDownloadVersion('lab:v0.11.2-desktop.2');
it('returns v0.11.2-desktop.2 cloud GitHub release', async () => {
const version = await Install.getDownloadVersion('cloud:v0.11.2-desktop.2');
const release = await Install.getRelease(version);
expect(release).not.toBeNull();
expect(release?.id).toEqual(118213369);

View File

@@ -20,13 +20,27 @@ import os from 'os';
import path from 'path';
import {Cache} from '../src/cache';
import {Util} from '../src/util';
const fixturesDir = path.join(__dirname, '.fixtures');
const tmpDir = fs.mkdtempSync(path.join(process.env.TEMP || os.tmpdir(), 'cache-itg-'));
describe('cache', () => {
it('github-repo', async () => {
const r = (Math.random() + 1).toString(36).substring(7);
it('caches github-repo', async () => {
const r = Util.generateRandomString();
const htcName = `cache-test-github-repo-${r}`;
const c = new Cache({
htcName: htcName,
htcVersion: `v1.0.0+${r}`,
baseCacheDir: path.join(tmpDir, '.cache-test'),
cacheFile: 'github-repo.json'
});
expect(await c.save(path.join(fixturesDir, 'github-repo.json'), true)).not.toEqual('');
expect(await c.find()).not.toEqual('');
});
it('caches github-repo with post state', async () => {
const r = Util.generateRandomString();
const htcName = `cache-test-github-repo-${r}`;
const c = new Cache({
htcName: htcName,
@@ -35,6 +49,7 @@ describe('cache', () => {
cacheFile: 'github-repo.json'
});
expect(await c.save(path.join(fixturesDir, 'github-repo.json'))).not.toEqual('');
expect(await Cache.post()).not.toBeNull();
expect(await c.find()).not.toEqual('');
});
});

View File

@@ -0,0 +1,109 @@
/**
* Copyright 2025 actions-toolkit authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import {describe, expect, it, jest, test, afterEach} from '@jest/globals';
import fs from 'fs';
import os from 'os';
import path from 'path';
import * as rimraf from 'rimraf';
import * as semver from 'semver';
import {Context} from '../../src/context';
import {Exec} from '../../src/exec';
import {Compose} from '../../src/compose/compose';
const tmpDir = fs.mkdtempSync(path.join(process.env.TEMP || os.tmpdir(), 'compose-compose-'));
const tmpName = path.join(tmpDir, '.tmpname-jest');
jest.spyOn(Context, 'tmpDir').mockImplementation((): string => {
fs.mkdirSync(tmpDir, {recursive: true});
return tmpDir;
});
jest.spyOn(Context, 'tmpName').mockImplementation((): string => {
return tmpName;
});
afterEach(() => {
rimraf.sync(tmpDir);
});
describe('isAvailable', () => {
it('docker cli', async () => {
const execSpy = jest.spyOn(Exec, 'getExecOutput');
const compose = new Compose({
standalone: false
});
await compose.isAvailable();
// eslint-disable-next-line jest/no-standalone-expect
expect(execSpy).toHaveBeenCalledWith(`docker`, ['compose'], {
silent: true,
ignoreReturnCode: true
});
});
it('standalone', async () => {
const execSpy = jest.spyOn(Exec, 'getExecOutput');
const compose = new Compose({
standalone: true
});
await compose.isAvailable();
// eslint-disable-next-line jest/no-standalone-expect
expect(execSpy).toHaveBeenCalledWith(`compose`, [], {
silent: true,
ignoreReturnCode: true
});
});
});
describe('printVersion', () => {
it('docker cli', async () => {
const execSpy = jest.spyOn(Exec, 'exec');
const compose = new Compose({
standalone: false
});
await compose.printVersion();
expect(execSpy).toHaveBeenCalledWith(`docker`, ['compose', 'version'], {
failOnStdErr: false
});
});
it('standalone', async () => {
const execSpy = jest.spyOn(Exec, 'exec');
const compose = new Compose({
standalone: true
});
await compose.printVersion();
expect(execSpy).toHaveBeenCalledWith(`compose`, ['version'], {
failOnStdErr: false
});
});
});
describe('version', () => {
it('valid', async () => {
const compose = new Compose();
expect(semver.valid(await compose.version())).not.toBeUndefined();
});
});
describe('parseVersion', () => {
// prettier-ignore
test.each([
['Docker Compose version v2.31.0', '2.31.0'],
])('given %p', async (stdout, expected) => {
expect(Compose.parseVersion(stdout)).toEqual(expected);
});
});

View File

@@ -0,0 +1,42 @@
/**
* Copyright 2025 actions-toolkit authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import {describe, expect, test} from '@jest/globals';
import * as fs from 'fs';
import {Install} from '../../src/compose/install';
const maybe = !process.env.GITHUB_ACTIONS || (process.env.GITHUB_ACTIONS === 'true' && process.env.ImageOS && process.env.ImageOS.startsWith('ubuntu')) ? describe : describe.skip;
maybe('download', () => {
// prettier-ignore
test.each(['latest'])(
'install compose %s', async (version) => {
await expect((async () => {
const install = new Install({
standalone: true
});
const toolPath = await install.download(version);
if (!fs.existsSync(toolPath)) {
throw new Error('toolPath does not exist');
}
const binPath = await install.installStandalone(toolPath);
if (!fs.existsSync(binPath)) {
throw new Error('binPath does not exist');
}
})()).resolves.not.toThrow();
}, 60000);
});

View File

@@ -0,0 +1,165 @@
/**
* Copyright 2025 actions-toolkit authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import {describe, expect, it, jest, test, afterEach} from '@jest/globals';
import fs from 'fs';
import os from 'os';
import path from 'path';
import * as rimraf from 'rimraf';
import osm = require('os');
import {Install} from '../../src/compose/install';
const tmpDir = fs.mkdtempSync(path.join(process.env.TEMP || os.tmpdir(), 'compose-install-'));
afterEach(function () {
rimraf.sync(tmpDir);
});
describe('download', () => {
// prettier-ignore
test.each([
['v2.31.0', false],
['v2.32.4', true],
['latest', true]
])(
'acquires %p of compose (standalone: %p)', async (version, standalone) => {
const install = new Install({standalone: standalone});
const toolPath = await install.download(version);
expect(fs.existsSync(toolPath)).toBe(true);
let composeBin: string;
if (standalone) {
composeBin = await install.installStandalone(toolPath, tmpDir);
} else {
composeBin = await install.installPlugin(toolPath, tmpDir);
}
expect(fs.existsSync(composeBin)).toBe(true);
},
100000
);
// prettier-ignore
test.each([
// following versions are already cached to htc from previous test cases
['v2.31.0'],
['v2.32.4'],
])(
'acquires %p of compose with cache', async (version) => {
const install = new Install({standalone: false});
const toolPath = await install.download(version);
expect(fs.existsSync(toolPath)).toBe(true);
},
100000
);
// prettier-ignore
test.each([
['v2.27.1'],
['v2.28.0'],
])(
'acquires %p of compose without cache', async (version) => {
const install = new Install({standalone: false});
const toolPath = await install.download(version, true);
expect(fs.existsSync(toolPath)).toBe(true);
},
100000
);
// TODO: add tests for arm
// prettier-ignore
test.each([
['win32', 'x64'],
['win32', 'arm64'],
['darwin', 'x64'],
['darwin', 'arm64'],
['linux', 'x64'],
['linux', 'arm64'],
['linux', 'ppc64'],
['linux', 's390x'],
])(
'acquires compose for %s/%s', async (os, arch) => {
jest.spyOn(osm, 'platform').mockImplementation(() => os as NodeJS.Platform);
jest.spyOn(osm, 'arch').mockImplementation(() => arch);
const install = new Install();
const composeBin = await install.download('latest');
expect(fs.existsSync(composeBin)).toBe(true);
},
100000
);
});
describe('getDownloadVersion', () => {
it('returns official latest download version', async () => {
const version = await Install.getDownloadVersion('latest');
expect(version.key).toEqual('official');
expect(version.version).toEqual('latest');
expect(version.downloadURL).toEqual('https://github.com/docker/compose/releases/download/v%s/%s');
expect(version.releasesURL).toEqual('https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/compose-releases.json');
});
it('returns official v2.24.3 download version', async () => {
const version = await Install.getDownloadVersion('v2.24.3');
expect(version.key).toEqual('official');
expect(version.version).toEqual('v2.24.3');
expect(version.downloadURL).toEqual('https://github.com/docker/compose/releases/download/v%s/%s');
expect(version.releasesURL).toEqual('https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/compose-releases.json');
});
it('returns cloud latest download version', async () => {
const version = await Install.getDownloadVersion('cloud:latest');
expect(version.key).toEqual('cloud');
expect(version.version).toEqual('latest');
expect(version.downloadURL).toEqual('https://github.com/docker/compose-desktop/releases/download/v%s/%s');
expect(version.releasesURL).toEqual('https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/compose-lab-releases.json');
});
it('returns cloud v2.27.1-desktop.1 download version', async () => {
const version = await Install.getDownloadVersion('cloud:v2.27.1-desktop.1');
expect(version.key).toEqual('cloud');
expect(version.version).toEqual('v2.27.1-desktop.1');
expect(version.downloadURL).toEqual('https://github.com/docker/compose-desktop/releases/download/v%s/%s');
expect(version.releasesURL).toEqual('https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/compose-lab-releases.json');
});
it('unknown repo', async () => {
await expect(Install.getDownloadVersion('foo:bar')).rejects.toThrow(new Error('Cannot find compose version for foo:bar'));
});
});
describe('getRelease', () => {
it('returns latest official GitHub release', async () => {
const version = await Install.getDownloadVersion('latest');
const release = await Install.getRelease(version);
expect(release).not.toBeNull();
expect(release?.tag_name).not.toEqual('');
});
it('returns v2.24.3 official GitHub release', async () => {
const version = await Install.getDownloadVersion('v2.24.3');
const release = await Install.getRelease(version);
expect(release).not.toBeNull();
expect(release?.id).toEqual(138380726);
expect(release?.tag_name).toEqual('v2.24.3');
expect(release?.html_url).toEqual('https://github.com/docker/compose/releases/tag/v2.24.3');
});
it('returns v2.27.1-desktop.1 cloud GitHub release', async () => {
const version = await Install.getDownloadVersion('cloud:v2.27.1-desktop.1');
const release = await Install.getRelease(version);
expect(release).not.toBeNull();
expect(release?.id).toEqual(157591108);
expect(release?.tag_name).toEqual('v2.27.1-desktop.1');
expect(release?.html_url).toEqual('https://github.com/docker/compose-desktop/releases/tag/v2.27.1-desktop.1');
});
it('unknown release', async () => {
const version = await Install.getDownloadVersion('foo');
await expect(Install.getRelease(version)).rejects.toThrow(new Error('Cannot find Compose release foo in https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/compose-releases.json'));
});
});

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
import {describe, expect, jest, it, afterEach} from '@jest/globals';
import {describe, expect, jest, it, afterEach, beforeEach, test} from '@jest/globals';
import fs from 'fs';
import os from 'os';
import path from 'path';
@@ -44,6 +44,34 @@ describe('gitRef', () => {
});
});
describe('parseGitRef', () => {
const originalEnv = process.env;
beforeEach(() => {
jest.resetModules();
process.env = {
...originalEnv,
DOCKER_GIT_CONTEXT_PR_HEAD_REF: ''
};
});
afterEach(() => {
process.env = originalEnv;
});
// prettier-ignore
test.each([
['refs/heads/master', '860c1904a1ce19322e91ac35af1ab07466440c37', false, '860c1904a1ce19322e91ac35af1ab07466440c37'],
['master', '860c1904a1ce19322e91ac35af1ab07466440c37', false, '860c1904a1ce19322e91ac35af1ab07466440c37'],
['refs/pull/15/merge', '860c1904a1ce19322e91ac35af1ab07466440c37', false, 'refs/pull/15/merge'],
['refs/heads/master', '', false, 'refs/heads/master'],
['master', '', false, 'master'],
['refs/tags/v1.0.0', '', false, 'refs/tags/v1.0.0'],
['refs/pull/15/merge', '', false, 'refs/pull/15/merge'],
['refs/pull/15/merge', '', true, 'refs/pull/15/head'],
])('given %p and %p, should return %p', async (ref: string, sha: string, prHeadRef: boolean, expected: string) => {
process.env.DOCKER_DEFAULT_GIT_CONTEXT_PR_HEAD_REF = prHeadRef ? 'true' : '';
expect(Context.parseGitRef(ref, sha)).toEqual(expected);
});
});
describe('gitContext', () => {
it('returns refs/heads/master', async () => {
expect(Context.gitContext()).toEqual('https://github.com/docker/actions-toolkit.git#refs/heads/master');

View File

@@ -14,57 +14,152 @@
* limitations under the License.
*/
import {jest, describe, expect, test, beforeEach, afterEach} from '@jest/globals';
import {describe, test, expect} from '@jest/globals';
import fs from 'fs';
import os from 'os';
import path from 'path';
import {Install} from '../../src/docker/install';
import {Install, InstallSource, InstallSourceArchive, InstallSourceImage} from '../../src/docker/install';
import {Docker} from '../../src/docker/docker';
import {Exec} from '../../src/exec';
const tmpDir = fs.mkdtempSync(path.join(process.env.TEMP || os.tmpdir(), 'docker-install-itg-'));
const tmpDir = () => fs.mkdtempSync(path.join(process.env.TEMP || os.tmpdir(), 'docker-install-itg-'));
describe('install', () => {
const originalEnv = process.env;
beforeEach(() => {
jest.resetModules();
process.env = {
...originalEnv,
LIMA_START_ARGS: '--cpus 4 --memory 8',
LIMA_IMAGES: `x86_64:https://cloud.debian.org/images/cloud/bookworm/20231013-1532/debian-12-genericcloud-amd64-20231013-1532.qcow2@sha512:6b55e88b027c14da1b55c85a25a9f7069d4560a8fdb2d948c986a585db469728a06d2c528303e34bb62d8b2984def38fd9ddfc00965846ff6e05b01d6e883bfe
aarch64:https://cloud.debian.org/images/cloud/bookworm/20231013-1532/debian-12-genericcloud-arm64-20231013-1532.qcow2`
};
});
afterEach(() => {
process.env = originalEnv;
});
describe('root', () => {
// prettier-ignore
test.each(['v26.1.4'])(
'install docker %s', async (version) => {
if (process.env.ImageOS && process.env.ImageOS.startsWith('ubuntu')) {
// Remove containerd first on ubuntu runners to make sure it takes
// ones packaged with docker
await Exec.exec('sudo', ['apt-get', 'remove', '-y', 'containerd.io'], {
env: Object.assign({}, process.env, {
DEBIAN_FRONTEND: 'noninteractive'
}) as {
[key: string]: string;
}
});
}
await expect((async () => {
const install = new Install({
version: version,
runDir: tmpDir,
contextName: 'foo',
daemonConfig: `{"debug":true,"features":{"containerd-snapshotter":true}}`
});
await install.download();
await install.install();
await Docker.printVersion();
await Docker.printInfo();
await install.tearDown();
})()).resolves.not.toThrow();
}, 1200000);
test.each(getSources(true))(
'install docker %s', async (source) => {
await ensureNoSystemContainerd();
const install = new Install({
source: source,
runDir: tmpDir(),
contextName: 'foo',
daemonConfig: `{"debug":true,"features":{"containerd-snapshotter":true}}`
});
await expect(tryInstall(install)).resolves.not.toThrow();
}, 30 * 60 * 1000);
});
describe('rootless', () => {
// prettier-ignore
test.each(getSources(false))(
'install %s', async (source) => {
// Skip on non linux
if (os.platform() !== 'linux') {
return;
}
await ensureNoSystemContainerd();
const install = new Install({
source: source,
runDir: tmpDir(),
contextName: 'foo',
daemonConfig: `{"debug":true}`,
rootless: true
});
await expect(
tryInstall(install, async () => {
const out = await Docker.getExecOutput(['info', '-f', '{{json .SecurityOptions}}']);
expect(out.exitCode).toBe(0);
expect(out.stderr.trim()).toBe('');
expect(out.stdout.trim()).toContain('rootless');
})
).resolves.not.toThrow();
},
30 * 60 * 1000
);
});
describe('tcp', () => {
// prettier-ignore
test.each(getSources(false))(
'install %s', async (source) => {
await ensureNoSystemContainerd();
const install = new Install({
source: source,
runDir: tmpDir(),
contextName: 'foo',
daemonConfig: `{"debug":true}`,
localTCPPort: 2378
});
await expect(
tryInstall(install, async () => {
const out = await Docker.getExecOutput(['info'], {
env: Object.assign({}, process.env, {
DOCKER_HOST: 'tcp://localhost:2378',
DOCKER_CONTENT_TRUST: 'false'
}) as {
[key: string]: string;
}
});
expect(out.exitCode).toBe(0);
})
).resolves.not.toThrow();
},
30 * 60 * 1000
);
});
async function tryInstall(install: Install, extraCheck?: () => Promise<void>): Promise<void> {
try {
await install.download();
await install.install();
await Docker.printVersion();
await Docker.printInfo();
if (extraCheck) {
await extraCheck();
}
} catch (error) {
console.error(error);
throw error;
} finally {
await install.tearDown();
}
}
async function ensureNoSystemContainerd() {
if (process.env.ImageOS && process.env.ImageOS.startsWith('ubuntu')) {
// Remove containerd first on ubuntu runners to make sure it takes
// ones packaged with docker
await Exec.exec('sudo', ['apt-get', 'remove', '-y', 'containerd.io'], {
env: Object.assign({}, process.env, {
DEBIAN_FRONTEND: 'noninteractive'
}) as {
[key: string]: string;
}
});
}
}
function getSources(root: boolean): Array<InstallSource> {
const dockerInstallType = process.env.DOCKER_INSTALL_TYPE;
const dockerInstallVersion = process.env.DOCKER_INSTALL_VERSION;
if (dockerInstallType && dockerInstallVersion) {
if (dockerInstallType === 'archive') {
// prettier-ignore
return [
{ type: dockerInstallType, version: dockerInstallVersion, channel: 'stable'} as InstallSourceArchive
];
} else {
// prettier-ignore
return [
{ type: dockerInstallType, tag: dockerInstallVersion} as InstallSourceImage
];
}
}
if (root) {
// prettier-ignore
return [
{type: 'image', tag: '27.3.1'} as InstallSourceImage,
{type: 'image', tag: 'master'} as InstallSourceImage,
{type: 'image', tag: 'latest'} as InstallSourceImage,
{type: 'archive', version: 'v26.1.4', channel: 'stable'} as InstallSourceArchive,
{type: 'archive', version: 'latest', channel: 'stable'} as InstallSourceArchive
];
} else {
// prettier-ignore
return [
{type: 'image', tag: 'latest'} as InstallSourceImage,
{type: 'archive', version: 'latest', channel: 'stable'} as InstallSourceArchive
];
}
}

View File

@@ -21,7 +21,7 @@ import path from 'path';
import * as rimraf from 'rimraf';
import osm = require('os');
import {Install} from '../../src/docker/install';
import {Install, InstallSourceArchive, InstallSourceImage} from '../../src/docker/install';
const tmpDir = fs.mkdtempSync(path.join(process.env.TEMP || os.tmpdir(), 'docker-install-'));
@@ -29,18 +29,40 @@ afterEach(function () {
rimraf.sync(tmpDir);
});
const archive = (version: string, channel: string): InstallSourceArchive => {
return {
type: 'archive',
version: version,
channel: channel
};
};
const image = (tag: string): InstallSourceImage => {
return {
type: 'image',
tag: tag
};
};
describe('download', () => {
// prettier-ignore
test.each([
['v19.03.14', 'linux'],
['v20.10.22', 'linux'],
['v20.10.22', 'darwin'],
['v20.10.22', 'win32'],
[archive('v19.03.14', 'stable'), 'linux'],
[archive('v20.10.22', 'stable'), 'linux'],
[archive('v20.10.22', 'stable'), 'darwin'],
[archive('v20.10.22', 'stable'), 'win32'],
[image('master'), 'linux'],
[image('master'), 'win32'],
[image('27.3.1'), 'linux'],
[image('27.3.1'), 'win32'],
])(
'acquires %p of docker (%s)', async (version, platformOS) => {
'acquires %p of docker (%s)', async (source, platformOS) => {
jest.spyOn(osm, 'platform').mockImplementation(() => platformOS as NodeJS.Platform);
jest.spyOn(osm, 'arch').mockImplementation(() => 'x64');
const install = new Install({
version: version,
source: source,
runDir: tmpDir,
});
const toolPath = await install.download();

View File

@@ -279,3 +279,10 @@ describe('tag', () => {
});
});
});
describe('getCommitDate', () => {
it('head', async () => {
const date = await Git.commitDate('HEAD');
await expect(date).toBeInstanceOf(Date);
});
});

View File

@@ -25,6 +25,7 @@ import {Build} from '../src/buildx/build';
import {Exec} from '../src/exec';
import {GitHub} from '../src/github';
import {History} from '../src/buildx/history';
import {Util} from '../src/util';
const fixturesDir = path.join(__dirname, '.fixtures');
const tmpDir = fs.mkdtempSync(path.join(process.env.TEMP || os.tmpdir(), 'github-itg-'));
@@ -33,8 +34,10 @@ const maybe = !process.env.GITHUB_ACTIONS || (process.env.GITHUB_ACTIONS === 'tr
maybe('uploadArtifact', () => {
it('uploads an artifact', async () => {
const filename = path.join(tmpDir, `github-repo-${Util.generateRandomString()}.json`);
fs.copyFileSync(path.join(fixturesDir, `github-repo.json`), filename);
const res = await GitHub.uploadArtifact({
filename: path.join(fixturesDir, 'github-repo.json'),
filename: filename,
mimeType: 'application/json',
retentionDays: 1
});

View File

@@ -0,0 +1,38 @@
/**
* Copyright 2024 actions-toolkit authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import {describe, expect, test} from '@jest/globals';
import * as fs from 'fs';
import {Install} from '../../src/undock/install';
describe('download', () => {
// prettier-ignore
test.each(['latest'])(
'install undock %s', async (version) => {
await expect((async () => {
const install = new Install();
const toolPath = await install.download(version);
if (!fs.existsSync(toolPath)) {
throw new Error('toolPath does not exist');
}
const binPath = await install.install(toolPath);
if (!fs.existsSync(binPath)) {
throw new Error('binPath does not exist');
}
})()).resolves.not.toThrow();
}, 60000);
});

View File

@@ -0,0 +1,129 @@
/**
* Copyright 2024 actions-toolkit authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import {describe, expect, it, jest, test, afterEach} from '@jest/globals';
import fs from 'fs';
import os from 'os';
import path from 'path';
import * as rimraf from 'rimraf';
import osm = require('os');
import {Install} from '../../src/undock/install';
const tmpDir = fs.mkdtempSync(path.join(process.env.TEMP || os.tmpdir(), 'undock-install-'));
afterEach(function () {
rimraf.sync(tmpDir);
});
describe('download', () => {
// prettier-ignore
test.each([
['v0.4.0'],
['v0.7.0'],
['latest']
])(
'acquires %p of undock (standalone: %p)', async (version) => {
const install = new Install();
const toolPath = await install.download(version);
expect(fs.existsSync(toolPath)).toBe(true);
const undockBin = await install.install(toolPath, tmpDir);
expect(fs.existsSync(undockBin)).toBe(true);
},
100000
);
// prettier-ignore
test.each([
// following versions are already cached to htc from previous test cases
['v0.4.0'],
['v0.7.0'],
])(
'acquires %p of undock with cache', async (version) => {
const install = new Install();
const toolPath = await install.download(version);
expect(fs.existsSync(toolPath)).toBe(true);
});
// prettier-ignore
test.each([
['v0.5.0'],
['v0.6.0'],
])(
'acquires %p of undock without cache', async (version) => {
const install = new Install();
const toolPath = await install.download(version, true);
expect(fs.existsSync(toolPath)).toBe(true);
});
// TODO: add tests for arm
// prettier-ignore
test.each([
['win32', 'x64'],
['win32', 'arm64'],
['darwin', 'x64'],
['darwin', 'arm64'],
['linux', 'x64'],
['linux', 'arm64'],
['linux', 'ppc64'],
['linux', 's390x'],
])(
'acquires undock for %s/%s', async (os, arch) => {
jest.spyOn(osm, 'platform').mockImplementation(() => os as NodeJS.Platform);
jest.spyOn(osm, 'arch').mockImplementation(() => arch);
const install = new Install();
const undockBin = await install.download('latest');
expect(fs.existsSync(undockBin)).toBe(true);
},
100000
);
});
describe('getDownloadVersion', () => {
it('returns latest download version', async () => {
const version = await Install.getDownloadVersion('latest');
expect(version.version).toEqual('latest');
expect(version.downloadURL).toEqual('https://github.com/crazy-max/undock/releases/download/v%s/%s');
expect(version.releasesURL).toEqual('https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/undock-releases.json');
});
it('returns v0.6.0 download version', async () => {
const version = await Install.getDownloadVersion('v0.6.0');
expect(version.version).toEqual('v0.6.0');
expect(version.downloadURL).toEqual('https://github.com/crazy-max/undock/releases/download/v%s/%s');
expect(version.releasesURL).toEqual('https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/undock-releases.json');
});
});
describe('getRelease', () => {
it('returns latest GitHub release', async () => {
const version = await Install.getDownloadVersion('latest');
const release = await Install.getRelease(version);
expect(release).not.toBeNull();
expect(release?.tag_name).not.toEqual('');
});
it('returns v0.6.0 GitHub release', async () => {
const version = await Install.getDownloadVersion('v0.6.0');
const release = await Install.getRelease(version);
expect(release).not.toBeNull();
expect(release?.id).toEqual(121362767);
expect(release?.tag_name).toEqual('v0.6.0');
expect(release?.html_url).toEqual('https://github.com/crazy-max/undock/releases/tag/v0.6.0');
});
it('unknown release', async () => {
const version = await Install.getDownloadVersion('foo');
await expect(Install.getRelease(version)).rejects.toThrow(new Error('Cannot find Undock release foo in https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/undock-releases.json'));
});
});

View File

@@ -0,0 +1,84 @@
/**
* Copyright 2024 actions-toolkit authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import fs from 'fs';
import os from 'os';
import path from 'path';
import {describe, expect, it, jest, test} from '@jest/globals';
import * as semver from 'semver';
import {Exec} from '../../src/exec';
import {Undock} from '../../src/undock/undock';
const tmpDir = fs.mkdtempSync(path.join(process.env.TEMP || os.tmpdir(), 'undock-undock-'));
describe('run', () => {
it('extracts moby/moby-bin:26.1.5', async () => {
const undock = new Undock();
await expect(
(async () => {
// prettier-ignore
await undock.run({
source: 'moby/moby-bin:26.1.5',
dist: tmpDir,
all: true
});
})()
).resolves.not.toThrow();
}, 100000);
});
describe('isAvailable', () => {
it('checks undock is available', async () => {
const execSpy = jest.spyOn(Exec, 'getExecOutput');
const undock = new Undock();
await undock.isAvailable();
// eslint-disable-next-line jest/no-standalone-expect
expect(execSpy).toHaveBeenCalledWith(`undock`, [], {
silent: true,
ignoreReturnCode: true
});
});
});
describe('printVersion', () => {
it('prints undock version', async () => {
const execSpy = jest.spyOn(Exec, 'exec');
const undock = new Undock();
await undock.printVersion();
expect(execSpy).toHaveBeenCalledWith(`undock`, ['--version'], {
failOnStdErr: false
});
});
});
describe('version', () => {
it('valid', async () => {
const undock = new Undock();
expect(semver.valid(await undock.version())).not.toBeUndefined();
});
});
describe('versionSatisfies', () => {
test.each([
['v0.4.1', '>=0.3.2', true],
['v0.8.0', '>0.6.0', true],
['v0.8.0', '<0.3.0', false]
])('given %p', async (version, range, expected) => {
const undock = new Undock();
expect(await undock.versionSatisfies(range, version)).toBe(expected);
});
});

View File

@@ -201,6 +201,31 @@ ccccccccc`,
});
});
describe('getInputNumber', () => {
it('should return a number when input is a valid number string', () => {
setInput('foo', '42');
const result = Util.getInputNumber('foo');
expect(result).toBe(42);
});
it('should return undefined when input is an empty string', () => {
setInput('foo', '');
const result = Util.getInputNumber('foo');
expect(result).toBeUndefined();
});
it('should return undefined when input is not provided', () => {
const result = Util.getInputNumber('foo');
expect(result).toBeUndefined();
});
it('should return NaN when input is not a valid number', () => {
setInput('foo', 'invalid');
const result = Util.getInputNumber('foo');
expect(result).toBeNaN();
});
});
describe('asyncForEach', () => {
it('executes async tasks sequentially', async () => {
const testValues = [1, 2, 3, 4, 5];

View File

@@ -16,7 +16,9 @@
ARG NODE_VERSION=20
ARG DOCKER_VERSION=27.2.1
ARG BUILDX_VERSION=0.17.1
ARG BUILDX_VERSION=0.20.1
ARG COMPOSE_VERSION=2.32.4
ARG UNDOCK_VERSION=0.8.0
FROM node:${NODE_VERSION}-alpine AS base
RUN apk add --no-cache cpio findutils git
@@ -73,8 +75,10 @@ RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/node_modules \
yarn run lint
FROM docker:${DOCKER_VERSION} as docker
FROM docker/buildx-bin:${BUILDX_VERSION} as buildx
FROM docker:${DOCKER_VERSION} AS docker
FROM docker/buildx-bin:${BUILDX_VERSION} AS buildx
FROM docker/compose-bin:v${COMPOSE_VERSION} AS compose
FROM crazymax/undock:${UNDOCK_VERSION} AS undock
FROM deps AS test
RUN --mount=type=bind,target=.,rw \
@@ -83,6 +87,9 @@ RUN --mount=type=bind,target=.,rw \
--mount=type=bind,from=docker,source=/usr/local/bin/docker,target=/usr/bin/docker \
--mount=type=bind,from=buildx,source=/buildx,target=/usr/libexec/docker/cli-plugins/docker-buildx \
--mount=type=bind,from=buildx,source=/buildx,target=/usr/bin/buildx \
--mount=type=bind,from=compose,source=/docker-compose,target=/usr/libexec/docker/cli-plugins/docker-compose \
--mount=type=bind,from=compose,source=/docker-compose,target=/usr/bin/compose \
--mount=type=bind,from=undock,source=/usr/local/bin/undock,target=/usr/bin/undock \
--mount=type=secret,id=GITHUB_TOKEN \
GITHUB_TOKEN=$(cat /run/secrets/GITHUB_TOKEN) yarn run test:coverage --coverageDirectory=/tmp/coverage

View File

@@ -12,6 +12,10 @@
// See the License for the specific language governing permissions and
// limitations under the License.
variable "NODE_VERSION" {
default = null
}
group "default" {
targets = ["build"]
}
@@ -21,40 +25,66 @@ group "pre-checkin" {
}
group "validate" {
targets = ["lint", "vendor-validate", "license-validate"]
targets = ["lint", "vendor-validate", "dockerfile-validate", "license-validate"]
}
target "_common" {
args = {
BUILDKIT_CONTEXT_KEEP_GIT_DIR = 1
NODE_VERSION = NODE_VERSION
}
}
target "build" {
inherits = ["_common"]
dockerfile = "dev.Dockerfile"
target = "build-update"
output = ["."]
}
target "format" {
inherits = ["_common"]
dockerfile = "dev.Dockerfile"
target = "format-update"
output = ["."]
}
target "lint" {
inherits = ["_common"]
dockerfile = "dev.Dockerfile"
target = "lint"
output = ["type=cacheonly"]
}
target "vendor" {
inherits = ["_common"]
dockerfile = "dev.Dockerfile"
target = "vendor-update"
output = ["."]
}
target "vendor-validate" {
inherits = ["_common"]
dockerfile = "dev.Dockerfile"
target = "vendor-validate"
output = ["type=cacheonly"]
}
target "dockerfile-validate" {
matrix = {
dockerfile = [
"dev.Dockerfile",
"./hack/dockerfiles/license.Dockerfile"
]
}
inherits = ["_common"]
name = "dockerfile-validate-${md5(dockerfile)}"
dockerfile = dockerfile
call = "check"
}
target "test" {
inherits = ["_common"]
dockerfile = "dev.Dockerfile"
target = "test"
output = ["type=cacheonly"]
@@ -62,6 +92,7 @@ target "test" {
}
target "test-coverage" {
inherits = ["_common"]
dockerfile = "dev.Dockerfile"
target = "test-coverage"
output = ["./coverage"]
@@ -75,6 +106,7 @@ variable "GITHUB_REF" {
}
target "publish" {
inherits = ["_common"]
dockerfile = "dev.Dockerfile"
args = {
GITHUB_REF = GITHUB_REF
@@ -85,12 +117,14 @@ target "publish" {
}
target "license-validate" {
inherits = ["_common"]
dockerfile = "./hack/dockerfiles/license.Dockerfile"
target = "validate"
output = ["type=cacheonly"]
}
target "license-update" {
inherits = ["_common"]
dockerfile = "./hack/dockerfiles/license.Dockerfile"
target = "update"
output = ["."]

View File

@@ -14,23 +14,44 @@
# See the License for the specific language governing permissions and
# limitations under the License.
ARG ADDLICENSE_VERSION="v1.1.1"
ARG ALPINE_VERSION="3.21"
ARG GO_VERSION="1.23"
ARG XX_VERSION="1.6.1"
ARG LICENSE_HOLDER="actions-toolkit authors"
ARG LICENSE_TYPE="apache"
ARG LICENSE_FILES=".*\(Dockerfile\|Makefile\|\.js\|\.ts\|\.hcl\|\.sh|\.ps1\)"
ARG ADDLICENSE_VERSION="v1.0.0"
FROM ghcr.io/google/addlicense:${ADDLICENSE_VERSION} AS addlicense
FROM --platform=$BUILDPLATFORM tonistiigi/xx:${XX_VERSION} AS xx
FROM alpine:3.17 AS base
WORKDIR /src
FROM --platform=$BUILDPLATFORM golang:${GO_VERSION}-alpine${ALPINE_VERSION} AS base
RUN apk add --no-cache cpio findutils git
ENV CGO_ENABLED=0
WORKDIR /src
COPY --link --from=xx / /
FROM base AS addlicense
ARG ADDLICENSE_VERSION
ARG TARGETPLATFORM
RUN --mount=target=/root/.cache,type=cache \
--mount=type=cache,target=/go/pkg/mod <<EOT
set -ex
xx-go install "github.com/google/addlicense@${ADDLICENSE_VERSION}"
mkdir /out
if ! xx-info is-cross; then
mv /go/bin/addlicense /out
else
mv /go/bin/*/addlicense* /out
fi
EOT
FROM base AS set
ARG LICENSE_HOLDER
ARG LICENSE_TYPE
ARG LICENSE_FILES
RUN --mount=type=bind,target=.,rw \
--mount=from=addlicense,source=/app/addlicense,target=/usr/bin/addlicense \
--mount=from=addlicense,source=/out/addlicense,target=/usr/bin/addlicense \
find . -regex "${LICENSE_FILES}" -not -path "./.yarn/*" -not -path "./node_modules/*" | xargs addlicense -c "$LICENSE_HOLDER" -l "$LICENSE_TYPE" && \
mkdir /out && \
find . -regex "${LICENSE_FILES}" -not -path "./.yarn/*" -not -path "./node_modules/*" | cpio -pdm /out
@@ -43,5 +64,5 @@ ARG LICENSE_HOLDER
ARG LICENSE_TYPE
ARG LICENSE_FILES
RUN --mount=type=bind,target=. \
--mount=from=addlicense,source=/app/addlicense,target=/usr/bin/addlicense \
--mount=from=addlicense,source=/out/addlicense,target=/usr/bin/addlicense \
find . -regex "${LICENSE_FILES}" -not -path "./.yarn/*" -not -path "./node_modules/*" | xargs addlicense -check -c "$LICENSE_HOLDER" -l "$LICENSE_TYPE"

View File

@@ -45,19 +45,19 @@
"registry": "https://registry.npmjs.org/"
},
"dependencies": {
"@actions/artifact": "^2.1.9",
"@actions/cache": "^3.2.4",
"@actions/core": "^1.10.1",
"@actions/artifact": "^2.2.1",
"@actions/cache": "^4.0.0",
"@actions/core": "^1.11.1",
"@actions/exec": "^1.1.1",
"@actions/github": "^6.0.0",
"@actions/http-client": "^2.2.3",
"@actions/io": "^1.1.3",
"@actions/tool-cache": "^2.0.1",
"@actions/tool-cache": "^2.0.2",
"@azure/storage-blob": "^12.15.0",
"@octokit/core": "^5.1.0",
"@octokit/plugin-rest-endpoint-methods": "^10.4.0",
"async-retry": "^1.3.3",
"csv-parse": "^5.5.6",
"csv-parse": "^5.6.0",
"gunzip-maybe": "^1.4.2",
"handlebars": "^4.7.8",
"he": "^1.2.0",

View File

@@ -16,15 +16,15 @@
import fs from 'fs';
import path from 'path';
import {parse} from 'csv-parse/sync';
import {Build} from './build';
import {Buildx} from './buildx';
import {Context} from '../context';
import {Exec} from '../exec';
import {Util} from '../util';
import {ExecOptions} from '@actions/exec';
import {BakeDefinition} from '../types/buildx/bake';
import {AttestEntry, BakeDefinition, CacheEntry, ExportEntry, SecretEntry, SSHEntry} from '../types/buildx/bake';
import {BuildMetadata} from '../types/buildx/build';
import {VertexWarning} from '../types/buildkit/client';
@@ -33,6 +33,8 @@ export interface BakeOpts {
}
export interface BakeCmdOpts {
allow?: Array<string>;
call?: string;
files?: Array<string>;
load?: boolean;
noCache?: boolean;
@@ -142,6 +144,14 @@ export class Bake {
args.push('--set', override);
}
}
if (cmdOpts.allow) {
for (const allow of cmdOpts.allow) {
args.push('--allow', allow);
}
}
if (cmdOpts.call) {
args.push('--call', cmdOpts.call);
}
if (cmdOpts.load) {
args.push('--load');
}
@@ -168,29 +178,250 @@ export class Bake {
}
public static parseDefinition(dt: string): BakeDefinition {
return <BakeDefinition>JSON.parse(dt);
const definition = <BakeDefinition>JSON.parse(dt);
// convert to composable attributes: https://github.com/docker/buildx/pull/2758
for (const name in definition.target) {
const target = definition.target[name];
if (target['attest'] && Array.isArray(target['attest'])) {
target['attest'] = target['attest'].map((item: string | AttestEntry): AttestEntry => {
return Bake.parseAttestEntry(item);
});
}
if (target['cache-from'] && Array.isArray(target['cache-from'])) {
target['cache-from'] = target['cache-from'].map((item: string | CacheEntry): CacheEntry => {
return Bake.parseCacheEntry(item);
});
}
if (target['cache-to'] && Array.isArray(target['cache-to'])) {
target['cache-to'] = target['cache-to'].map((item: string | CacheEntry): CacheEntry => {
return Bake.parseCacheEntry(item);
});
}
if (target['output'] && Array.isArray(target['output'])) {
target['output'] = target['output'].map((item: string | ExportEntry): ExportEntry => {
return Bake.parseExportEntry(item);
});
}
if (target['secret'] && Array.isArray(target['secret'])) {
target['secret'] = target['secret'].map((item: string | SecretEntry): SecretEntry => {
return Bake.parseSecretEntry(item);
});
}
if (target['ssh'] && Array.isArray(target['ssh'])) {
target['ssh'] = target['ssh'].map((item: string | SSHEntry): SSHEntry => {
return Bake.parseSSHEntry(item);
});
}
}
return definition;
}
private static parseAttestEntry(item: AttestEntry | string): AttestEntry {
if (typeof item !== 'string') {
return item;
}
const attestEntry: AttestEntry = {type: ''};
const fields = parse(item, {
relaxColumnCount: true,
skipEmptyLines: true
})[0];
for (const field of fields) {
const [key, value] = field
.toString()
.split(/(?<=^[^=]+?)=/)
.map((item: string) => item.trim());
switch (key) {
case 'type':
attestEntry.type = value;
break;
case 'disabled':
attestEntry.disabled = Util.parseBool(value);
break;
default:
attestEntry[key] = value;
}
}
return attestEntry;
}
private static parseCacheEntry(item: CacheEntry | string): CacheEntry {
if (typeof item !== 'string') {
return item;
}
const cacheEntry: CacheEntry = {type: ''};
const fields = parse(item, {
relaxColumnCount: true,
skipEmptyLines: true
})[0];
if (fields.length === 1 && !fields[0].includes('=')) {
cacheEntry.type = 'registry';
cacheEntry.ref = fields[0];
return cacheEntry;
}
for (const field of fields) {
const [key, value] = field
.toString()
.split(/(?<=^[^=]+?)=/)
.map((item: string) => item.trim());
switch (key) {
case 'type':
cacheEntry.type = value;
break;
default:
cacheEntry[key] = value;
}
}
return cacheEntry;
}
private static parseExportEntry(item: ExportEntry | string): ExportEntry {
if (typeof item !== 'string') {
return item;
}
const exportEntry: ExportEntry = {type: ''};
const fields = parse(item, {
relaxColumnCount: true,
skipEmptyLines: true
})[0];
if (fields.length === 1 && fields[0] === item && !item.startsWith('type=')) {
if (item !== '-') {
exportEntry.type = 'local';
exportEntry.dest = item;
return exportEntry;
}
exportEntry.type = 'tar';
exportEntry.dest = item;
return exportEntry;
}
for (const field of fields) {
const [key, value] = field
.toString()
.split(/(?<=^[^=]+?)=/)
.map((item: string) => item.trim());
switch (key) {
case 'type':
exportEntry.type = value;
break;
default:
exportEntry[key] = value;
}
}
return exportEntry;
}
private static parseSecretEntry(item: SecretEntry | string): SecretEntry {
if (typeof item !== 'string') {
return item;
}
const secretEntry: SecretEntry = {};
const fields = parse(item, {
relaxColumnCount: true,
skipEmptyLines: true
})[0];
let typ = '';
for (const field of fields) {
const [key, value] = field
.toString()
.split(/(?<=^[^=]+?)=/)
.map((item: string) => item.trim());
switch (key) {
case 'type':
typ = value;
break;
case 'id':
secretEntry.id = value;
break;
case 'source':
case 'src':
secretEntry.src = value;
break;
case 'env':
secretEntry.env = value;
break;
}
}
if (typ === 'env' && !secretEntry.env) {
secretEntry.env = secretEntry.src;
secretEntry.src = undefined;
}
return secretEntry;
}
private static parseSSHEntry(item: SSHEntry | string): SSHEntry {
if (typeof item !== 'string') {
return item;
}
const sshEntry: SSHEntry = {};
const [key, value] = item.split('=', 2);
sshEntry.id = key;
if (value) {
sshEntry.paths = value.split(',');
}
return sshEntry;
}
public static hasLocalExporter(def: BakeDefinition): boolean {
return Build.hasExporterType('local', Bake.exporters(def));
return Bake.hasExporterType('local', Bake.exporters(def));
}
public static hasTarExporter(def: BakeDefinition): boolean {
return Build.hasExporterType('tar', Bake.exporters(def));
return Bake.hasExporterType('tar', Bake.exporters(def));
}
public static hasDockerExporter(def: BakeDefinition, load?: boolean): boolean {
return load || Build.hasExporterType('docker', Bake.exporters(def));
return load || Bake.hasExporterType('docker', Bake.exporters(def));
}
private static exporters(def: BakeDefinition): Array<string> {
const exporters = new Array<string>();
public static hasExporterType(name: string, exporters: Array<ExportEntry>): boolean {
for (const exporter of exporters) {
if (exporter.type == name) {
return true;
}
}
return false;
}
private static exporters(def: BakeDefinition): Array<ExportEntry> {
const exporters = new Array<ExportEntry>();
for (const key in def.target) {
const target = def.target[key];
if (target.output) {
exporters.push(...target.output);
for (const output of target.output) {
exporters.push(Bake.parseExportEntry(output));
}
}
}
return exporters;
}
public static hasGitAuthTokenSecret(def: BakeDefinition): boolean {
for (const key in def.target) {
const target = def.target[key];
if (target.secret) {
for (const secret of target.secret) {
if (Bake.parseSecretEntry(secret).id === 'GIT_AUTH_TOKEN') {
return true;
}
}
}
}
return false;
}
}

View File

@@ -89,6 +89,7 @@ export class Builder {
let parsingType: string | undefined;
let currentNode: NodeInfo = {};
let currentGCPolicy: GCPolicy | undefined;
let currentFile: string | undefined;
for (const line of data.trim().split(`\n`)) {
const [key, ...rest] = line.split(':');
const lkey = key.toLowerCase();
@@ -178,6 +179,12 @@ export class Builder {
currentGCPolicy = undefined;
}
break;
case lkey.startsWith('file#'):
parsingType = 'file';
currentFile = key.split('#')[1];
currentNode.files = currentNode.files || {};
currentNode.files[currentFile] = '';
break;
default: {
switch (parsingType || '') {
case 'features': {
@@ -215,6 +222,15 @@ export class Builder {
}
break;
}
case 'file': {
if (currentFile && currentNode.files) {
if (currentNode.files[currentFile].length > 0) {
currentNode.files[currentFile] += '\n';
}
currentNode.files[currentFile] += line.replace(/^\s>\s?/, '');
}
break;
}
}
}
}

View File

@@ -26,6 +26,7 @@ import {Context} from '../context';
import {Docker} from '../docker/docker';
import {Exec} from '../exec';
import {GitHub} from '../github';
import {Util} from '../util';
import {ExportRecordOpts, ExportRecordResponse, Summaries} from '../types/buildx/history';
@@ -85,7 +86,7 @@ export class History {
fs.mkdirSync(outDir, {recursive: true});
// wait 3 seconds to ensure build records are finalized: https://github.com/moby/buildkit/pull/5109
await new Promise(resolve => setTimeout(resolve, 3000));
await Util.sleep(3);
const buildxInFifoPath = Context.tmpName({
template: 'buildx-in-XXXXXX.fifo',

61
src/buildx/imagetools.ts Normal file
View File

@@ -0,0 +1,61 @@
/**
* Copyright 2025 actions-toolkit authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import {Buildx} from './buildx';
import {Exec} from '../exec';
import {Image} from '../types/oci/config';
export interface ImageToolsOpts {
buildx?: Buildx;
}
export class ImageTools {
private readonly buildx: Buildx;
constructor(opts?: ImageToolsOpts) {
this.buildx = opts?.buildx || new Buildx();
}
public async getCommand(args: Array<string>) {
return await this.buildx.getCommand(['imagetools', ...args]);
}
public async getInspectCommand(args: Array<string>) {
return await this.getCommand(['inspect', ...args]);
}
public async inspectImage(name: string): Promise<Record<string, Image> | Image> {
const cmd = await this.getInspectCommand([name, '--format', '{{json .Image}}']);
return await Exec.getExecOutput(cmd.command, cmd.args, {
ignoreReturnCode: true,
silent: true
}).then(res => {
if (res.stderr.length > 0 && res.exitCode != 0) {
throw new Error(res.stderr.trim());
}
const parsedOutput = JSON.parse(res.stdout);
if (typeof parsedOutput === 'object' && !Array.isArray(parsedOutput) && parsedOutput !== null) {
if (Object.prototype.hasOwnProperty.call(parsedOutput, 'config')) {
return <Image>parsedOutput;
} else {
return <Record<string, Image>>parsedOutput;
}
}
throw new Error('Unexpected output format');
});
}
}

View File

@@ -276,6 +276,9 @@ export class Install {
version = repoKey;
repoKey = 'official';
}
if (repoKey === 'lab') {
repoKey = 'cloud';
}
switch (repoKey) {
case 'official': {
return {
@@ -285,7 +288,7 @@ export class Install {
releasesURL: 'https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/buildx-releases.json'
};
}
case 'lab': {
case 'cloud': {
return {
key: repoKey,
version: version,

View File

@@ -55,7 +55,7 @@ export class Cache {
}
}
public async save(file: string): Promise<string> {
public async save(file: string, skipState?: boolean): Promise<string> {
core.debug(`Cache.save ${file}`);
const cachePath = this.copyToCache(file);
@@ -63,14 +63,19 @@ export class Cache {
core.debug(`Cache.save cached to hosted tool cache ${htcPath}`);
if (!this.ghaNoCache && cache.isFeatureAvailable()) {
core.debug(`Cache.save sending ${this.ghaCacheKey} to post state`);
core.saveState(
Cache.POST_CACHE_KEY,
JSON.stringify({
dir: this.cacheDir,
key: this.ghaCacheKey
} as CachePostState)
);
if (skipState) {
core.debug(`Cache.save caching ${this.ghaCacheKey} to GitHub Actions cache`);
await cache.saveCache([this.cacheDir], this.ghaCacheKey);
} else {
core.debug(`Cache.save sending ${this.ghaCacheKey} to post state`);
core.saveState(
Cache.POST_CACHE_KEY,
JSON.stringify({
dir: this.cacheDir,
key: this.ghaCacheKey
} as CachePostState)
);
}
}
return cachePath;

106
src/compose/compose.ts Normal file
View File

@@ -0,0 +1,106 @@
/**
* Copyright 2025 actions-toolkit authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import * as core from '@actions/core';
import {Docker} from '../docker/docker';
import {Exec} from '../exec';
export interface ComposeOpts {
standalone?: boolean;
}
export class Compose {
private _version: string;
private _versionOnce: boolean;
private readonly _standalone: boolean | undefined;
constructor(opts?: ComposeOpts) {
this._standalone = opts?.standalone;
this._version = '';
this._versionOnce = false;
}
public async isStandalone(): Promise<boolean> {
const standalone = this._standalone ?? !(await Docker.isAvailable());
core.debug(`Compose.isStandalone: ${standalone}`);
return standalone;
}
public async getCommand(args: Array<string>) {
const standalone = await this.isStandalone();
return {
command: standalone ? 'compose' : 'docker',
args: standalone ? args : ['compose', ...args]
};
}
public async isAvailable(): Promise<boolean> {
const cmd = await this.getCommand([]);
const ok: boolean = await Exec.getExecOutput(cmd.command, cmd.args, {
ignoreReturnCode: true,
silent: true
})
.then(res => {
if (res.stderr.length > 0 && res.exitCode != 0) {
core.debug(`Compose.isAvailable cmd err: ${res.stderr.trim()}`);
return false;
}
return res.exitCode == 0;
})
.catch(error => {
core.debug(`Compose.isAvailable error: ${error}`);
return false;
});
core.debug(`Compose.isAvailable: ${ok}`);
return ok;
}
public async version(): Promise<string> {
if (this._versionOnce) {
return this._version;
}
this._versionOnce = true;
const cmd = await this.getCommand(['version']);
this._version = await Exec.getExecOutput(cmd.command, cmd.args, {
ignoreReturnCode: true,
silent: true
}).then(res => {
if (res.stderr.length > 0 && res.exitCode != 0) {
throw new Error(res.stderr.trim());
}
return Compose.parseVersion(res.stdout.trim());
});
return this._version;
}
public async printVersion() {
const cmd = await this.getCommand(['version']);
await Exec.exec(cmd.command, cmd.args, {
failOnStdErr: false
});
}
public static parseVersion(stdout: string): string {
const matches = /\sv?([0-9a-f]{7}|[0-9.]+)/.exec(stdout);
if (!matches) {
throw new Error(`Cannot parse compose version`);
}
return matches[1];
}
}

217
src/compose/install.ts Normal file
View File

@@ -0,0 +1,217 @@
/**
* Copyright 2025 actions-toolkit authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import fs from 'fs';
import os from 'os';
import path from 'path';
import * as core from '@actions/core';
import * as httpm from '@actions/http-client';
import * as tc from '@actions/tool-cache';
import * as semver from 'semver';
import * as util from 'util';
import {Cache} from '../cache';
import {Context} from '../context';
import {DownloadVersion} from '../types/compose/compose';
import {GitHubRelease} from '../types/github';
import {Docker} from '../docker/docker';
export interface InstallOpts {
standalone?: boolean;
}
export class Install {
private readonly _standalone: boolean | undefined;
constructor(opts?: InstallOpts) {
this._standalone = opts?.standalone;
}
/*
* Download compose binary from GitHub release
* @param v: version semver version or latest
* @param ghaNoCache: disable binary caching in GitHub Actions cache backend
* @returns path to the compose binary
*/
public async download(v: string, ghaNoCache?: boolean): Promise<string> {
const version: DownloadVersion = await Install.getDownloadVersion(v);
core.debug(`Install.download version: ${version.version}`);
const release: GitHubRelease = await Install.getRelease(version);
core.debug(`Install.download release tag name: ${release.tag_name}`);
const vspec = await this.vspec(release.tag_name);
core.debug(`Install.download vspec: ${vspec}`);
const c = semver.clean(vspec) || '';
if (!semver.valid(c)) {
throw new Error(`Invalid Compose version "${vspec}".`);
}
const installCache = new Cache({
htcName: version.key != 'official' ? `compose-dl-bin-${version.key}` : 'compose-dl-bin',
htcVersion: vspec,
baseCacheDir: path.join(os.homedir(), '.bin'),
cacheFile: os.platform() == 'win32' ? 'docker-compose.exe' : 'docker-compose',
ghaNoCache: ghaNoCache
});
const cacheFoundPath = await installCache.find();
if (cacheFoundPath) {
core.info(`Compose binary found in ${cacheFoundPath}`);
return cacheFoundPath;
}
const downloadURL = util.format(version.downloadURL, vspec, this.filename());
core.info(`Downloading ${downloadURL}`);
const htcDownloadPath = await tc.downloadTool(downloadURL);
core.debug(`Install.download htcDownloadPath: ${htcDownloadPath}`);
const cacheSavePath = await installCache.save(htcDownloadPath);
core.info(`Cached to ${cacheSavePath}`);
return cacheSavePath;
}
public async installStandalone(binPath: string, dest?: string): Promise<string> {
core.info('Standalone mode');
dest = dest || Context.tmpDir();
const binDir = path.join(dest, 'compose-bin-standalone');
if (!fs.existsSync(binDir)) {
fs.mkdirSync(binDir, {recursive: true});
}
const binName: string = os.platform() == 'win32' ? 'compose.exe' : 'compose';
const composePath: string = path.join(binDir, binName);
fs.copyFileSync(binPath, composePath);
core.info('Fixing perms');
fs.chmodSync(composePath, '0755');
core.addPath(binDir);
core.info('Added Compose to PATH');
core.info(`Binary path: ${composePath}`);
return composePath;
}
public async installPlugin(binPath: string, dest?: string): Promise<string> {
core.info('Docker plugin mode');
dest = dest || Docker.configDir;
const pluginsDir: string = path.join(dest, 'cli-plugins');
if (!fs.existsSync(pluginsDir)) {
fs.mkdirSync(pluginsDir, {recursive: true});
}
const binName: string = os.platform() == 'win32' ? 'docker-compose.exe' : 'docker-compose';
const pluginPath: string = path.join(pluginsDir, binName);
fs.copyFileSync(binPath, pluginPath);
core.info('Fixing perms');
fs.chmodSync(pluginPath, '0755');
core.info(`Plugin path: ${pluginPath}`);
return pluginPath;
}
private async isStandalone(): Promise<boolean> {
const standalone = this._standalone ?? !(await Docker.isAvailable());
core.debug(`Install.isStandalone: ${standalone}`);
return standalone;
}
private filename(): string {
let arch: string;
switch (os.arch()) {
case 'x64': {
arch = 'x86_64';
break;
}
case 'ppc64': {
arch = 'ppc64le';
break;
}
case 'arm': {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const arm_version = (process.config.variables as any).arm_version;
arch = arm_version ? 'armv' + arm_version : 'arm';
break;
}
case 'arm64': {
arch = 'aarch64';
break;
}
default: {
arch = os.arch();
break;
}
}
const platform: string = os.platform() == 'win32' ? 'windows' : os.platform();
const ext: string = os.platform() == 'win32' ? '.exe' : '';
return util.format('docker-compose-%s-%s%s', platform, arch, ext);
}
private async vspec(version: string): Promise<string> {
const v = version.replace(/^v+|v+$/g, '');
core.info(`Use ${v} version spec cache key for ${version}`);
return v;
}
public static async getDownloadVersion(v: string): Promise<DownloadVersion> {
let [repoKey, version] = v.split(':');
if (!version) {
version = repoKey;
repoKey = 'official';
}
switch (repoKey) {
case 'official': {
return {
key: repoKey,
version: version,
downloadURL: 'https://github.com/docker/compose/releases/download/v%s/%s',
releasesURL: 'https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/compose-releases.json'
};
}
case 'cloud': {
return {
key: repoKey,
version: version,
downloadURL: 'https://github.com/docker/compose-desktop/releases/download/v%s/%s',
releasesURL: 'https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/compose-lab-releases.json'
};
}
default: {
throw new Error(`Cannot find compose version for ${v}`);
}
}
}
public static async getRelease(version: DownloadVersion): Promise<GitHubRelease> {
const http: httpm.HttpClient = new httpm.HttpClient('docker-actions-toolkit');
const resp: httpm.HttpClientResponse = await http.get(version.releasesURL);
const body = await resp.readBody();
const statusCode = resp.message.statusCode || 500;
if (statusCode >= 400) {
throw new Error(`Failed to get Compose releases from ${version.releasesURL} with status code ${statusCode}: ${body}`);
}
const releases = <Record<string, GitHubRelease>>JSON.parse(body);
if (!releases[version.version]) {
throw new Error(`Cannot find Compose release ${version.version} in ${version.releasesURL}`);
}
return releases[version.version];
}
}

View File

@@ -39,21 +39,23 @@ export class Context {
}
public static gitRef(): string {
let gitRef = github.context.ref;
if (github.context.sha && gitRef && !gitRef.startsWith('refs/')) {
gitRef = `refs/heads/${github.context.ref}`;
return Context.parseGitRef(github.context.ref, github.context.sha);
}
public static parseGitRef(ref: string, sha: string): string {
const setPullRequestHeadRef: boolean = !!(process.env.DOCKER_DEFAULT_GIT_CONTEXT_PR_HEAD_REF && process.env.DOCKER_DEFAULT_GIT_CONTEXT_PR_HEAD_REF === 'true');
if (sha && ref && !ref.startsWith('refs/')) {
ref = `refs/heads/${ref}`;
}
if (github.context.sha && !gitRef.startsWith(`refs/pull/`)) {
gitRef = github.context.sha;
if (sha && !ref.startsWith(`refs/pull/`)) {
ref = sha;
} else if (ref.startsWith(`refs/pull/`) && setPullRequestHeadRef) {
ref = ref.replace(/\/merge$/g, '/head');
}
return gitRef;
return ref;
}
public static gitContext(): string {
return `${GitHub.serverURL}/${github.context.repo.owner}/${github.context.repo.repo}.git#${Context.gitRef()}`;
}
public static provenanceBuilderID(): string {
return `${GitHub.serverURL}/${github.context.repo.owner}/${github.context.repo.repo}/actions/runs/${github.context.runId}`;
}
}

View File

@@ -51,7 +51,10 @@ param(
[string]$RunDir,
[Parameter(Mandatory = $true)]
[string]$DockerHost,
[string]$DockerHostSocket,
[Parameter(Mandatory = $false)]
[string]$DockerHostTCP,
[Parameter(Mandatory = $false)]
[string]$DaemonConfig)
@@ -82,7 +85,7 @@ if (Get-Service docker -ErrorAction SilentlyContinue) {
$env:Path = "$ToolDir;" + [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
Write-Host "Path: $env:Path"
$env:DOCKER_HOST = $DockerHost
$env:DOCKER_HOST = $DockerHostSocket
Write-Host "DOCKER_HOST: $env:DOCKER_HOST"
if ($DaemonConfig) {
@@ -91,16 +94,21 @@ if ($DaemonConfig) {
$DaemonConfig | Out-File -FilePath "$env:ProgramData\\Docker\\config\\daemon.json"
}
$arguments = @(
"--host=$DockerHostSocket",
"--data-root=$RunDir\\\\moby-root",
"--exec-root=$RunDir\\\\moby-exec",
"--pidfile=$RunDir\\\\docker.pid",
"--register-service"
)
if ($DockerHostTCP) {
$arguments += "--host=$DockerHostTCP"
}
Write-Host "Creating service"
New-Item -ItemType Directory "$RunDir\\moby-root" -ErrorAction SilentlyContinue | Out-Null
New-Item -ItemType Directory "$RunDir\\moby-exec" -ErrorAction SilentlyContinue | Out-Null
Start-Process -Wait -NoNewWindow "$ToolDir\\dockerd" \`
-ArgumentList \`
"--host=$DockerHost", \`
"--data-root=$RunDir\\moby-root", \`
"--exec-root=$RunDir\\moby-exec", \`
"--pidfile=$RunDir\\docker.pid", \`
"--register-service"
Start-Process -Wait -NoNewWindow "$ToolDir\\dockerd" -ArgumentList $arguments
Write-Host "Starting service"
Start-Service -Name docker
Write-Host "Service started successfully!"
@@ -132,6 +140,8 @@ Get-WinEvent -ea SilentlyContinue \`
`;
export const limaYamlData = `
# Source: https://github.com/lima-vm/lima/blob/master/templates/docker-rootful.yaml
# VM type: "qemu" or "vz" (on macOS 13 and later).
# The vmType can be specified only on creating the instance.
# The vmType of existing instances cannot be changed.
@@ -152,12 +162,18 @@ images:
arch: "{{arch}}"
digest: "{{digest}}"
{{/each}}
- location: "https://cloud-images.ubuntu.com/releases/22.04/release-20231026/ubuntu-22.04-server-cloudimg-amd64.img"
- location: "https://cloud-images.ubuntu.com/releases/24.04/release-20241004/ubuntu-24.04-server-cloudimg-amd64.img"
arch: "x86_64"
digest: "sha256:054db2d88c454bb0ad8dfd8883955e3946b57d2b0bf0d023f3ade3c93cdd14e5"
- location: "https://cloud-images.ubuntu.com/releases/22.04/release-20231026/ubuntu-22.04-server-cloudimg-arm64.img"
digest: "sha256:fad101d50b06b26590cf30542349f9e9d3041ad7929e3bc3531c81ec27f2c788"
- location: "https://cloud-images.ubuntu.com/releases/24.04/release-20241004/ubuntu-24.04-server-cloudimg-arm64.img"
arch: "aarch64"
digest: "sha256:e380b683b0c497d2a87af8a5dbe94c42eb54548fa976167f307ed8cf3944ec57"
# Fallback to the latest release image.
# Hint: run \`limactl prune\` to invalidate the cache
- location: "https://cloud-images.ubuntu.com/releases/24.04/release/ubuntu-24.04-server-cloudimg-amd64.img"
arch: "x86_64"
- location: "https://cloud-images.ubuntu.com/releases/24.04/release/ubuntu-24.04-server-cloudimg-arm64.img"
arch: "aarch64"
digest: "sha256:eafa7742ce5ff109222ea313d31ea366d587b4e89b900b11d8285ae775dfe8c3"
# CPUs
# Builtin default: min(4, host CPU cores)
@@ -221,16 +237,52 @@ provision:
EOF
fi
export DEBIAN_FRONTEND=noninteractive
curl -fsSL https://get.docker.com | sh -s -- --channel {{dockerBinChannel}} --version {{dockerBinVersion}}
if [ "{{srcType}}" == "archive" ]; then
curl -fsSL https://get.docker.com | sh -s -- --channel {{srcArchiveChannel}} --version {{srcArchiveVersion}}
sed -i 's|^ExecStart=.*|ExecStart=/usr/bin/dockerd -H fd://{{#if localTCPPort}} -H tcp://0.0.0.0:2375{{/if}} --containerd=/run/containerd/containerd.sock|' /usr/lib/systemd/system/docker.service
systemctl daemon-reload
systemctl restart docker
systemctl status docker.socket || true
systemctl status docker.service || true
elif [ "{{srcType}}" == "image" ]; then
arch=$(uname -m)
case $arch in
x86_64) arch=amd64;;
aarch64) arch=arm64;;
esac
url="https://github.com/crazy-max/undock/releases/download/v0.8.0/undock_0.8.0_linux_$arch.tar.gz"
wget "$url" -O /tmp/undock.tar.gz
tar -C /usr/local/bin -xvf /tmp/undock.tar.gz
undock --version
HOME=/tmp undock moby/moby-bin:{{srcImageTag}} /usr/local/bin
wget https://raw.githubusercontent.com/moby/moby/{{gitCommit}}/contrib/init/systemd/docker.service \
-O /etc/systemd/system/docker.service
wget https://raw.githubusercontent.com/moby/moby/{{gitCommit}}/contrib/init/systemd/docker.socket \
-O /etc/systemd/system/docker.socket
sed -i 's|^ExecStart=.*|ExecStart=/usr/local/bin/dockerd -H fd://{{#if localTCPPort}} -H tcp://0.0.0.0:2375{{/if}}|' /etc/systemd/system/docker.service
sed -i 's|containerd.service||' /etc/systemd/system/docker.service
if ! getent group docker; then
groupadd --system docker
fi
systemctl daemon-reload
fail=0
if ! systemctl enable --now docker; then
fail=1
fi
systemctl status docker.socket || true
systemctl status docker.service || true
exit $fail
fi
probes:
- script: |
#!/bin/bash
set -eux -o pipefail
if ! timeout 30s bash -c "until command -v docker >/dev/null 2>&1; do sleep 3; done"; then
echo >&2 "docker is not installed yet"
exit 1
fi
# Don't check for docker CLI as it's not installed in the VM (only on the host)
if ! timeout 30s bash -c "until pgrep dockerd; do sleep 3; done"; then
echo >&2 "dockerd is not running"
exit 1
@@ -246,6 +298,10 @@ hostResolver:
portForwards:
- guestSocket: "/var/run/docker.sock"
hostSocket: "{{dockerSock}}"
{{#if localTCPPort}}
- guestPort: 2375
hostPort: {{localTCPPort}}
{{/if}}
audio:
# EXPERIMENTAL

View File

@@ -21,7 +21,6 @@ import os from 'os';
import path from 'path';
import retry from 'async-retry';
import * as handlebars from 'handlebars';
import * as util from 'util';
import * as core from '@actions/core';
import * as httpm from '@actions/http-client';
import * as io from '@actions/io';
@@ -33,13 +32,31 @@ import {Exec} from '../exec';
import {Util} from '../util';
import {limaYamlData, dockerServiceLogsPs1, setupDockerWinPs1} from './assets';
import {GitHubRelease} from '../types/github';
import {HubRepository} from '../hubRepository';
import {Image} from '../types/oci/config';
export interface InstallSourceImage {
type: 'image';
tag: string;
}
export interface InstallSourceArchive {
type: 'archive';
version: string;
channel: string;
}
export type InstallSource = InstallSourceImage | InstallSourceArchive;
export interface InstallOpts {
version?: string;
channel?: string;
source?: InstallSource;
// ...
runDir: string;
contextName?: string;
daemonConfig?: string;
rootless?: boolean;
localTCPPort?: number;
}
interface LimaImage {
@@ -50,48 +67,122 @@ interface LimaImage {
export class Install {
private readonly runDir: string;
private readonly version: string;
private readonly channel: string;
private readonly source: InstallSource;
private readonly contextName: string;
private readonly daemonConfig?: string;
private readonly rootless: boolean;
private readonly localTCPPort?: number;
private _version: string | undefined;
private _toolDir: string | undefined;
private gitCommit: string | undefined;
private readonly limaInstanceName = 'docker-actions-toolkit';
constructor(opts: InstallOpts) {
this.runDir = opts.runDir;
this.version = opts.version || 'latest';
this.channel = opts.channel || 'stable';
this.source = opts.source || {
type: 'archive',
version: 'latest',
channel: 'stable'
};
this.contextName = opts.contextName || 'setup-docker-action';
this.daemonConfig = opts.daemonConfig;
this.rootless = opts.rootless || false;
this.localTCPPort = opts.localTCPPort;
}
get toolDir(): string {
return this._toolDir || Context.tmpDir();
}
public async download(): Promise<string> {
const release: GitHubRelease = await Install.getRelease(this.version);
async downloadStaticArchive(component: 'docker' | 'docker-rootless-extras', src: InstallSourceArchive): Promise<string> {
const release: GitHubRelease = await Install.getRelease(src.version);
this._version = release.tag_name.replace(/^v+|v+$/g, '');
core.debug(`docker.Install.download version: ${this._version}`);
const downloadURL = this.downloadURL(this._version, this.channel);
const downloadURL = this.downloadURL(component, this._version, src.channel);
core.info(`Downloading ${downloadURL}`);
const downloadPath = await tc.downloadTool(downloadURL);
core.debug(`docker.Install.download downloadPath: ${downloadPath}`);
let extractFolder: string;
let extractFolder;
if (os.platform() == 'win32') {
extractFolder = await tc.extractZip(downloadPath);
extractFolder = await tc.extractZip(downloadPath, extractFolder);
} else {
extractFolder = await tc.extractTar(downloadPath);
extractFolder = await tc.extractTar(downloadPath, extractFolder);
}
if (Util.isDirectory(path.join(extractFolder, 'docker'))) {
extractFolder = path.join(extractFolder, 'docker');
if (Util.isDirectory(path.join(extractFolder, component))) {
extractFolder = path.join(extractFolder, component);
}
core.debug(`docker.Install.download extractFolder: ${extractFolder}`);
return extractFolder;
}
public async download(): Promise<string> {
let extractFolder: string;
let cacheKey: string;
const platform = os.platform();
switch (this.source.type) {
case 'image': {
const tag = this.source.tag;
this._version = tag;
cacheKey = `docker-image`;
core.info(`Downloading docker cli from dockereng/cli-bin:${tag}`);
const cli = await HubRepository.build('dockereng/cli-bin');
extractFolder = await cli.extractImage(tag);
const moby = await HubRepository.build('moby/moby-bin');
if (['win32', 'linux'].includes(platform)) {
core.info(`Downloading dockerd from moby/moby-bin:${tag}`);
await moby.extractImage(tag, extractFolder);
} else if (platform == 'darwin') {
// On macOS, the docker daemon binary will be downloaded inside the lima VM.
// However, we will get the exact git revision from the image config
// to get the matching systemd unit files.
core.info(`Getting git revision from moby/moby-bin:${tag}`);
// There's no macOS image for moby/moby-bin - a linux daemon is run inside lima.
const manifest = await moby.getPlatformManifest(tag, 'linux');
const config = await moby.getJSONBlob<Image>(manifest.config.digest);
core.debug(`Config ${JSON.stringify(config.config)}`);
this.gitCommit = config.config?.Labels?.['org.opencontainers.image.revision'];
if (!this.gitCommit) {
core.warning(`No git revision can be determined from the image. Will use master.`);
this.gitCommit = 'master';
}
core.info(`Git revision is ${this.gitCommit}`);
} else {
core.warning(`dockerd not supported on ${platform}, only the Docker cli will be available`);
}
break;
}
case 'archive': {
const version = this.source.version;
const channel = this.source.channel;
cacheKey = `docker-archive-${channel}`;
this._version = version;
core.info(`Downloading Docker ${version} from ${this.source.channel} at download.docker.com`);
extractFolder = await this.downloadStaticArchive('docker', this.source);
if (this.rootless) {
core.info(`Downloading Docker rootless extras ${version} from ${this.source.channel} at download.docker.com`);
const extrasFolder = await this.downloadStaticArchive('docker-rootless-extras', this.source);
fs.readdirSync(extrasFolder).forEach(file => {
const src = path.join(extrasFolder, file);
const dest = path.join(extractFolder, file);
fs.copyFileSync(src, dest);
});
}
break;
}
}
core.info('Fixing perms');
fs.readdir(path.join(extractFolder), function (err, files) {
@@ -104,7 +195,7 @@ export class Install {
});
});
const tooldir = await tc.cacheDir(extractFolder, `docker-${this.channel}`, this._version.replace(/(0+)([1-9]+)/, '$2'));
const tooldir = await tc.cacheDir(extractFolder, cacheKey, this._version.replace(/(0+)([1-9]+)/, '$2'));
core.addPath(tooldir);
core.info('Added Docker to PATH');
@@ -119,7 +210,13 @@ export class Install {
if (!this.runDir) {
throw new Error('runDir must be set');
}
switch (os.platform()) {
const platform = os.platform();
if (this.rootless && platform != 'linux') {
// TODO: Support on macOS (via lima)
throw new Error(`rootless is only supported on linux`);
}
switch (platform) {
case 'darwin': {
return await this.installDarwin();
}
@@ -136,6 +233,10 @@ export class Install {
}
private async installDarwin(): Promise<string> {
if (this.source.type == 'image' && !this.gitCommit) {
throw new Error('gitCommit must be set. Run download first.');
}
const src = this.source;
const limaDir = path.join(os.homedir(), '.lima', this.limaInstanceName);
await io.mkdirP(limaDir);
const dockerHost = `unix://${limaDir}/docker.sock`;
@@ -166,21 +267,31 @@ export class Install {
handlebars.registerHelper('stringify', function (obj) {
return new handlebars.SafeString(JSON.stringify(obj));
});
const srcArchive = src as InstallSourceArchive;
const limaCfg = handlebars.compile(limaYamlData)({
customImages: Install.limaCustomImages(),
daemonConfig: limaDaemonConfig,
dockerSock: `${limaDir}/docker.sock`,
dockerBinVersion: this._version,
dockerBinChannel: this.channel
localTCPPort: this.localTCPPort,
gitCommit: this.gitCommit,
srcType: src.type,
srcArchiveVersion: this._version, // Use the resolved version (e.g. latest -> 27.4.0)
srcArchiveChannel: srcArchive.channel,
srcImageTag: (src as InstallSourceImage).tag
});
core.info(`Writing lima config to ${path.join(limaDir, 'lima.yaml')}`);
fs.writeFileSync(path.join(limaDir, 'lima.yaml'), limaCfg);
core.info(limaCfg);
});
const qemuArch = await Install.qemuArch();
if (!(await Install.qemuInstalled())) {
await core.group('Installing QEMU', async () => {
await Exec.exec('brew', ['install', 'qemu'], {env: envs});
});
}
const qemuBin = await Install.qemuBin();
await core.group('QEMU version', async () => {
await Exec.exec(`qemu-system-${qemuArch} --version`);
await Exec.exec(qemuBin, ['--version']);
});
// lima might already be started on the runner so env var added in download
@@ -255,21 +366,36 @@ export class Install {
}
const envs = Object.assign({}, process.env, {
PATH: `${this.toolDir}:${process.env.PATH}`
PATH: `${this.toolDir}:${process.env.PATH}`,
XDG_RUNTIME_DIR: (this.rootless && this.runDir) || undefined
}) as {
[key: string]: string;
};
await core.group('Start Docker daemon', async () => {
const bashPath: string = await io.which('bash', true);
const cmd = `${this.toolDir}/dockerd --host="${dockerHost}" --config-file="${daemonConfigPath}" --exec-root="${this.runDir}/execroot" --data-root="${this.runDir}/data" --pidfile="${this.runDir}/docker.pid" --userland-proxy=false`;
let dockerPath = `${this.toolDir}/dockerd`;
if (this.rootless) {
dockerPath = `${this.toolDir}/dockerd-rootless.sh`;
if (fs.existsSync('/proc/sys/kernel/apparmor_restrict_unprivileged_userns')) {
await Exec.exec('sudo', ['sh', '-c', 'echo 0 > /proc/sys/kernel/apparmor_restrict_unprivileged_userns']);
}
}
let cmd = `${dockerPath} --host="${dockerHost}" --config-file="${daemonConfigPath}" --exec-root="${this.runDir}/execroot" --data-root="${this.runDir}/data" --pidfile="${this.runDir}/docker.pid"`;
if (this.localTCPPort) {
cmd += ` --host="tcp://127.0.0.1:${this.localTCPPort}"`;
}
core.info(`[command] ${cmd}`); // https://github.com/actions/toolkit/blob/3d652d3133965f63309e4b2e1c8852cdbdcb3833/packages/exec/src/toolrunner.ts#L47
let sudo = 'sudo';
if (this.rootless) {
sudo += ' -u \\#1001';
}
const proc = await child_process.spawn(
// We can't use Exec.exec here because we need to detach the process to
// avoid killing it when the action finishes running. Even if detached,
// we also need to run dockerd in a subshell and unref the process so
// GitHub Action doesn't wait for it to finish.
`sudo env "PATH=$PATH" ${bashPath} << EOF
`${sudo} env "PATH=$PATH" ${bashPath} << EOF
( ${cmd} 2>&1 | tee "${this.runDir}/dockerd.log" ) &
EOF`,
[],
@@ -319,7 +445,7 @@ EOF`,
}
private async installWindows(): Promise<string> {
const dockerHost = 'npipe:////./pipe/setup_docker_action';
const dockerHostSocket = 'npipe:////./pipe/setup_docker_action';
let daemonConfig = undefined;
const daemonConfigPath = path.join(this.runDir, 'daemon.json');
@@ -341,24 +467,29 @@ EOF`,
});
}
const params = {
ToolDir: this.toolDir,
RunDir: this.runDir,
DockerHostSocket: dockerHostSocket,
DaemonConfig: daemonConfigStr
};
if (this.localTCPPort) {
params['DockerHostTCP'] = `tcp://127.0.0.1:${this.localTCPPort}`;
}
await core.group('Install Docker daemon service', async () => {
const setupCmd = await Util.powershellCommand(setupDockerWinPs1(), {
ToolDir: this.toolDir,
RunDir: this.runDir,
DockerHost: dockerHost,
DaemonConfig: daemonConfigStr
});
const setupCmd = await Util.powershellCommand(setupDockerWinPs1(), params);
await Exec.exec(setupCmd.command, setupCmd.args);
const logCmd = await Util.powershellCommand(dockerServiceLogsPs1());
await Exec.exec(logCmd.command, logCmd.args);
});
await core.group('Create Docker context', async () => {
await Docker.exec(['context', 'create', this.contextName, '--docker', `host=${dockerHost}`]);
await Docker.exec(['context', 'create', this.contextName, '--docker', `host=${dockerHostSocket}`]);
await Docker.exec(['context', 'use', this.contextName]);
});
return dockerHost;
return dockerHostSocket;
}
public async tearDown(): Promise<void> {
@@ -382,6 +513,13 @@ EOF`,
throw new Error(`Unsupported platform: ${os.platform()}`);
}
}
await core.group(`Cleaning up toolDir`, async () => {
if (!this._toolDir) {
return;
}
fs.rmSync(this._toolDir, {recursive: true, force: true});
});
}
private async tearDownDarwin(): Promise<void> {
@@ -431,13 +569,16 @@ EOF`,
await core.group('Removing Docker context', async () => {
await Docker.exec(['context', 'rm', '-f', this.contextName]);
});
await core.group('Stopping Docker daemon service', async () => {
await Exec.exec('powershell', ['-Command', `Stop-Service -Name docker -Force`]);
});
}
private downloadURL(version: string, channel: string): string {
private downloadURL(component: 'docker' | 'docker-rootless-extras', version: string, channel: string): string {
const platformOS = Install.platformOS();
const platformArch = Install.platformArch();
const ext = platformOS === 'win' ? '.zip' : '.tgz';
return util.format('https://download.docker.com/%s/static/%s/%s/docker-%s%s', platformOS, channel, platformArch, version, ext);
return `https://download.docker.com/${platformOS}/static/${channel}/${platformArch}/${component}-${version}${ext}`;
}
private static platformOS(): string {
@@ -493,29 +634,42 @@ EOF`,
return await io
.which('lima', true)
.then(res => {
core.debug(`docker.Install.limaAvailable ok: ${res}`);
core.debug(`docker.Install.limaInstalled ok: ${res}`);
return true;
})
.catch(error => {
core.debug(`docker.Install.limaAvailable error: ${error}`);
core.debug(`docker.Install.limaInstalled error: ${error}`);
return false;
});
}
private static async qemuArch(): Promise<string> {
private static async qemuBin(): Promise<string> {
switch (os.arch()) {
case 'x64': {
return 'x86_64';
return `qemu-system-x86_64`;
}
case 'arm64': {
return 'aarch64';
return `qemu-system-aarch64`;
}
default: {
return os.arch();
return `qemu-system-${os.arch()}`;
}
}
}
private static async qemuInstalled(): Promise<boolean> {
return await io
.which(await Install.qemuBin(), true)
.then(res => {
core.debug(`docker.Install.qemuInstalled ok: ${res}`);
return true;
})
.catch(error => {
core.debug(`docker.Install.qemuInstalled error: ${error}`);
return false;
});
}
public static async getRelease(version: string): Promise<GitHubRelease> {
const url = `https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/docker-releases.json`;
const http: httpm.HttpClient = new httpm.HttpClient('docker-actions-toolkit');
@@ -527,7 +681,10 @@ EOF`,
}
const releases = <Record<string, GitHubRelease>>JSON.parse(body);
if (!releases[version]) {
throw new Error(`Cannot find Docker release ${version} in ${url}`);
if (!releases['v' + version]) {
throw new Error(`Cannot find Docker release ${version} in ${url}`);
}
return releases['v' + version];
}
return releases[version];
}

View File

@@ -111,17 +111,21 @@ export class DockerHub {
const body = await resp.readBody();
resp.message.statusCode = resp.message.statusCode || HttpCodes.InternalServerError;
if (resp.message.statusCode < 200 || resp.message.statusCode >= 300) {
if (resp.message.statusCode == HttpCodes.Unauthorized) {
throw new Error(`Docker Hub API: operation not permitted`);
}
const errResp = <Record<string, string>>JSON.parse(body);
for (const k of ['message', 'detail', 'error']) {
if (errResp[k]) {
throw new Error(`Docker Hub API: bad status code ${resp.message.statusCode}: ${errResp[k]}`);
}
}
throw new Error(`Docker Hub API: bad status code ${resp.message.statusCode}`);
throw DockerHub.parseError(resp, body);
}
return body;
}
public static parseError(resp: httpm.HttpClientResponse, body: string): Error {
if (resp.message.statusCode == HttpCodes.Unauthorized) {
throw new Error(`Docker Hub API: operation not permitted`);
}
const errResp = <Record<string, string>>JSON.parse(body);
for (const k of ['message', 'detail', 'error']) {
if (errResp[k]) {
throw new Error(`Docker Hub API: bad status code ${resp.message.statusCode}: ${errResp[k]}`);
}
}
throw new Error(`Docker Hub API: bad status code ${resp.message.statusCode}`);
}
}

View File

@@ -163,4 +163,8 @@ export class Git {
return res.stdout.trim();
});
}
public static async commitDate(ref: string): Promise<Date> {
return new Date(await Git.exec(['show', '-s', '--format="%ci"', ref]));
}
}

174
src/hubRepository.ts Normal file
View File

@@ -0,0 +1,174 @@
/**
* Copyright 2023 actions-toolkit authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import * as httpm from '@actions/http-client';
import {Index} from './types/oci';
import os from 'os';
import * as core from '@actions/core';
import {Manifest} from './types/oci/manifest';
import * as tc from '@actions/tool-cache';
import fs from 'fs';
import {MEDIATYPE_IMAGE_CONFIG_V1, MEDIATYPE_IMAGE_INDEX_V1, MEDIATYPE_IMAGE_MANIFEST_V1} from './types/oci/mediatype';
import {MEDIATYPE_IMAGE_CONFIG_V1 as DOCKER_MEDIATYPE_IMAGE_CONFIG_V1, MEDIATYPE_IMAGE_MANIFEST_LIST_V2, MEDIATYPE_IMAGE_MANIFEST_V2} from './types/docker/mediatype';
import {DockerHub} from './dockerhub';
export class HubRepository {
private repo: string;
private token: string;
private static readonly http: httpm.HttpClient = new httpm.HttpClient('setup-docker-action');
private constructor(repository: string, token: string) {
this.repo = repository;
this.token = token;
}
public static async build(repository: string): Promise<HubRepository> {
const token = await this.getToken(repository);
return new HubRepository(repository, token);
}
public async getPlatformManifest(tagOrDigest: string, os?: string): Promise<Manifest> {
const index = await this.getManifest<Index>(tagOrDigest);
if (index.mediaType != MEDIATYPE_IMAGE_INDEX_V1 && index.mediaType != MEDIATYPE_IMAGE_MANIFEST_LIST_V2) {
core.error(`Unsupported image media type: ${index.mediaType}`);
throw new Error(`Unsupported image media type: ${index.mediaType}`);
}
const digest = HubRepository.getPlatformManifestDigest(index, os);
return await this.getManifest<Manifest>(digest);
}
// Unpacks the image layers and returns the path to the extracted image.
// Only OCI indexes/manifest list are supported for now.
public async extractImage(tag: string, destDir?: string): Promise<string> {
const manifest = await this.getPlatformManifest(tag);
const paths = manifest.layers.map(async layer => {
const url = this.blobUrl(layer.digest);
return await tc.downloadTool(url, undefined, undefined, {
authorization: `Bearer ${this.token}`
});
});
let files = await Promise.all(paths);
let extractFolder: string;
if (!destDir) {
extractFolder = await tc.extractTar(files[0]);
files = files.slice(1);
} else {
extractFolder = destDir;
}
await Promise.all(
files.map(async file => {
return await tc.extractTar(file, extractFolder);
})
);
fs.readdirSync(extractFolder).forEach(file => {
core.info(`extractImage(${this.repo}:${tag}) file: ${file}`);
});
return extractFolder;
}
private static async getToken(repo: string): Promise<string> {
const url = `https://auth.docker.io/token?service=registry.docker.io&scope=repository:${repo}:pull`;
const resp = await this.http.get(url);
const body = await resp.readBody();
const statusCode = resp.message.statusCode || 500;
if (statusCode != 200) {
throw DockerHub.parseError(resp, body);
}
const json = JSON.parse(body);
return json.token;
}
private blobUrl(digest: string): string {
return `https://registry-1.docker.io/v2/${this.repo}/blobs/${digest}`;
}
public async getManifest<T>(tagOrDigest: string): Promise<T> {
return await this.registryGet<T>(tagOrDigest, 'manifests', [MEDIATYPE_IMAGE_INDEX_V1, MEDIATYPE_IMAGE_MANIFEST_LIST_V2, MEDIATYPE_IMAGE_MANIFEST_V1, MEDIATYPE_IMAGE_MANIFEST_V2]);
}
public async getJSONBlob<T>(tagOrDigest: string): Promise<T> {
return await this.registryGet<T>(tagOrDigest, 'blobs', [MEDIATYPE_IMAGE_CONFIG_V1, DOCKER_MEDIATYPE_IMAGE_CONFIG_V1]);
}
private async registryGet<T>(tagOrDigest: string, endpoint: 'manifests' | 'blobs', accept: Array<string>): Promise<T> {
const url = `https://registry-1.docker.io/v2/${this.repo}/${endpoint}/${tagOrDigest}`;
const headers = {
Authorization: `Bearer ${this.token}`,
Accept: accept.join(', ')
};
const resp = await HubRepository.http.get(url, headers);
const body = await resp.readBody();
const statusCode = resp.message.statusCode || 500;
if (statusCode != 200) {
core.error(`registryGet(${this.repo}:${tagOrDigest}) failed: ${statusCode} ${body}`);
throw DockerHub.parseError(resp, body);
}
return <T>JSON.parse(body);
}
private static getPlatformManifestDigest(index: Index, osOverride?: string): string {
// This doesn't handle all possible platforms normalizations, but it's good enough for now.
let pos: string = osOverride || os.platform();
if (pos == 'win32') {
pos = 'windows';
}
let arch = os.arch();
if (arch == 'x64') {
arch = 'amd64';
}
let variant = '';
if (arch == 'arm') {
variant = 'v7';
}
const manifest = index.manifests.find(m => {
if (!m.platform) {
return false;
}
if (m.platform.os != pos) {
core.debug(`Skipping manifest ${m.digest} because of os: ${m.platform.os} != ${pos}`);
return false;
}
if (m.platform.architecture != arch) {
core.debug(`Skipping manifest ${m.digest} because of arch: ${m.platform.architecture} != ${arch}`);
return false;
}
if ((m.platform.variant || '') != variant) {
core.debug(`Skipping manifest ${m.digest} because of variant: ${m.platform.variant} != ${variant}`);
return false;
}
return true;
});
if (!manifest) {
core.error(`Cannot find manifest for ${pos}/${arch}/${variant}`);
throw new Error(`Cannot find manifest for ${pos}/${arch}/${variant}`);
}
return manifest.digest;
}
}

View File

@@ -20,6 +20,9 @@ import {Bake as BuildxBake} from './buildx/bake';
import {Install as BuildxInstall} from './buildx/install';
import {Builder} from './buildx/builder';
import {BuildKit} from './buildkit/buildkit';
import {Compose} from './compose/compose';
import {Install as ComposeInstall} from './compose/install';
import {Undock} from './undock/undock';
import {GitHub} from './github';
export interface ToolkitOpts {
@@ -38,6 +41,9 @@ export class Toolkit {
public buildxInstall: BuildxInstall;
public builder: Builder;
public buildkit: BuildKit;
public compose: Compose;
public composeInstall: ComposeInstall;
public undock: Undock;
constructor(opts: ToolkitOpts = {}) {
this.github = new GitHub({token: opts.githubToken});
@@ -47,5 +53,8 @@ export class Toolkit {
this.buildxInstall = new BuildxInstall();
this.builder = new Builder({buildx: this.buildx});
this.buildkit = new BuildKit({buildx: this.buildx});
this.compose = new Compose();
this.composeInstall = new ComposeInstall();
this.undock = new Undock();
}
}

View File

@@ -20,28 +20,59 @@ export interface BakeDefinition {
}
export interface Group {
description?: string;
targets: Array<string>;
}
export interface Target {
description?: string;
args?: Record<string, string>;
attest?: Array<string>;
'cache-from'?: Array<string>;
'cache-to'?: Array<string>;
attest?: Array<AttestEntry> | Array<string>;
'cache-from'?: Array<CacheEntry> | Array<string>;
'cache-to'?: Array<CacheEntry> | Array<string>;
call?: string;
context: string;
contexts?: Record<string, string>;
dockerfile: string;
'dockerfile-inline'?: string;
entitlements?: Array<string>;
labels?: Record<string, string>;
'no-cache'?: boolean;
'no-cache-filter'?: Array<string>;
output?: Array<string>;
output?: Array<ExportEntry> | Array<string>;
platforms?: Array<string>;
pull?: boolean;
secret?: Array<string>;
secret?: Array<SecretEntry> | Array<string>;
'shm-size'?: string;
ssh?: Array<string>;
ssh?: Array<SSHEntry> | Array<string>;
tags?: Array<string>;
target?: string;
ulimits?: Array<string>;
}
export interface AttestEntry {
type: string;
disabled?: string | boolean;
[key: string]: string | boolean | undefined;
}
export interface CacheEntry {
type: string;
[key: string]: string;
}
export interface ExportEntry {
type: string;
[key: string]: string;
}
export interface SecretEntry {
id?: string;
src?: string;
env?: string;
}
export interface SSHEntry {
id?: string;
paths?: Array<string>;
}

View File

@@ -35,6 +35,7 @@ export interface NodeInfo extends Node {
features?: Record<string, boolean>;
labels?: Record<string, string>;
gcPolicy?: Array<GCPolicy>;
files?: Record<string, string>;
}
export interface GCPolicy {

View File

@@ -0,0 +1,22 @@
/**
* Copyright 2025 actions-toolkit authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export interface DownloadVersion {
key: string;
version: string;
downloadURL: string;
releasesURL: string;
}

View File

@@ -0,0 +1,21 @@
/**
* Copyright 2023 actions-toolkit authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export const MEDIATYPE_IMAGE_MANIFEST_LIST_V2 = 'application/vnd.docker.distribution.manifest.list.v2+json';
export const MEDIATYPE_IMAGE_MANIFEST_V2 = 'application/vnd.docker.distribution.manifest.v2+json';
export const MEDIATYPE_IMAGE_CONFIG_V1 = 'application/vnd.docker.container.image.v1+json';

View File

@@ -23,3 +23,5 @@ export const MEDIATYPE_IMAGE_INDEX_V1 = 'application/vnd.oci.image.index.v1+json
export const MEDIATYPE_IMAGE_LAYER_V1 = 'application/vnd.oci.image.layer.v1.tar';
export const MEDIATYPE_EMPTY_JSON_V1 = 'application/vnd.oci.empty.v1+json';
export const MEDIATYPE_IMAGE_CONFIG_V1 = 'application/vnd.oci.image.config.v1+json';

View File

@@ -0,0 +1,21 @@
/**
* Copyright 2024 actions-toolkit authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export interface DownloadVersion {
version: string;
downloadURL: string;
releasesURL: string;
}

166
src/undock/install.ts Normal file
View File

@@ -0,0 +1,166 @@
/**
* Copyright 2024 actions-toolkit authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import fs from 'fs';
import os from 'os';
import path from 'path';
import * as core from '@actions/core';
import * as httpm from '@actions/http-client';
import * as tc from '@actions/tool-cache';
import * as semver from 'semver';
import * as util from 'util';
import {Cache} from '../cache';
import {Context} from '../context';
import {GitHubRelease} from '../types/github';
import {DownloadVersion} from '../types/undock/undock';
export class Install {
/*
* Download undock binary from GitHub release
* @param v: version semver version or latest
* @param ghaNoCache: disable binary caching in GitHub Actions cache backend
* @returns path to the undock binary
*/
public async download(v: string, ghaNoCache?: boolean): Promise<string> {
const version: DownloadVersion = await Install.getDownloadVersion(v);
core.debug(`Install.download version: ${version.version}`);
const release: GitHubRelease = await Install.getRelease(version);
core.debug(`Install.download release tag name: ${release.tag_name}`);
const vspec = await this.vspec(release.tag_name);
core.debug(`Install.download vspec: ${vspec}`);
const c = semver.clean(vspec) || '';
if (!semver.valid(c)) {
throw new Error(`Invalid Undock version "${vspec}".`);
}
const installCache = new Cache({
htcName: 'undock-dl-bin',
htcVersion: vspec,
baseCacheDir: path.join(os.homedir(), '.bin'),
cacheFile: os.platform() == 'win32' ? 'undock.exe' : 'undock',
ghaNoCache: ghaNoCache
});
const cacheFoundPath = await installCache.find();
if (cacheFoundPath) {
core.info(`Unodck binary found in ${cacheFoundPath}`);
return cacheFoundPath;
}
const downloadURL = util.format(version.downloadURL, vspec, this.filename(vspec));
core.info(`Downloading ${downloadURL}`);
const htcDownloadPath = await tc.downloadTool(downloadURL);
core.debug(`Install.download htcDownloadPath: ${htcDownloadPath}`);
let htcExtPath: string;
if (os.platform() == 'win32') {
htcExtPath = await tc.extractZip(htcDownloadPath);
} else {
htcExtPath = await tc.extractTar(htcDownloadPath);
}
core.info(`Extracted to ${htcExtPath}`);
const exePath: string = path.join(htcExtPath, os.platform() == 'win32' ? 'undock.exe' : 'undock');
core.debug(`Install.download exePath: ${exePath}`);
const cacheSavePath = await installCache.save(exePath);
core.info(`Cached to ${cacheSavePath}`);
return cacheSavePath;
}
public async install(binPath: string, dest?: string): Promise<string> {
dest = dest || Context.tmpDir();
const binDir = path.join(dest, 'undock-bin');
if (!fs.existsSync(binDir)) {
fs.mkdirSync(binDir, {recursive: true});
}
const binName: string = os.platform() == 'win32' ? 'undock.exe' : 'undock';
const undockPath: string = path.join(binDir, binName);
fs.copyFileSync(binPath, undockPath);
core.info('Fixing perms');
fs.chmodSync(undockPath, '0755');
core.addPath(binDir);
core.info('Added Unodck to PATH');
core.info(`Binary path: ${undockPath}`);
return undockPath;
}
private filename(version: string): string {
let arch: string;
switch (os.arch()) {
case 'x64': {
arch = 'amd64';
break;
}
case 'ppc64': {
arch = 'ppc64le';
break;
}
case 'arm': {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const arm_version = (process.config.variables as any).arm_version;
arch = arm_version ? 'armv' + arm_version : 'arm';
break;
}
default: {
arch = os.arch();
break;
}
}
const platform: string = os.platform() == 'win32' ? 'windows' : os.platform();
const ext: string = os.platform() == 'win32' ? '.zip' : '.tar.gz';
return util.format('undock_%s_%s_%s%s', version, platform, arch, ext);
}
private async vspec(version: string): Promise<string> {
const v = version.replace(/^v+|v+$/g, '');
core.info(`Use ${v} version spec cache key for ${version}`);
return v;
}
public static async getDownloadVersion(v: string): Promise<DownloadVersion> {
return {
version: v,
downloadURL: 'https://github.com/crazy-max/undock/releases/download/v%s/%s',
releasesURL: 'https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/undock-releases.json'
};
}
public static async getRelease(version: DownloadVersion): Promise<GitHubRelease> {
const http: httpm.HttpClient = new httpm.HttpClient('docker-actions-toolkit');
const resp: httpm.HttpClientResponse = await http.get(version.releasesURL);
const body = await resp.readBody();
const statusCode = resp.message.statusCode || 500;
if (statusCode >= 400) {
throw new Error(`Failed to get Undock releases from ${version.releasesURL} with status code ${statusCode}: ${body}`);
}
const releases = <Record<string, GitHubRelease>>JSON.parse(body);
if (!releases[version.version]) {
throw new Error(`Cannot find Undock release ${version.version} in ${version.releasesURL}`);
}
return releases[version.version];
}
}

148
src/undock/undock.ts Normal file
View File

@@ -0,0 +1,148 @@
/**
* Copyright 2024 actions-toolkit authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import * as core from '@actions/core';
import * as semver from 'semver';
import {Exec} from '../exec';
export interface UndockOpts {
binPath?: string;
}
export interface UndockRunOpts {
source: string;
dist: string;
logLevel?: string;
logCaller?: boolean;
cacheDir?: string;
platform?: string;
all?: boolean;
include?: Array<string>;
insecure?: boolean;
rmDist?: boolean;
wrap?: boolean;
}
export class Undock {
private readonly binPath: string;
private _version: string;
private _versionOnce: boolean;
constructor(opts?: UndockOpts) {
this.binPath = opts?.binPath || 'undock';
this._version = '';
this._versionOnce = false;
}
public async run(opts: UndockRunOpts): Promise<void> {
if (!opts.source) {
throw new Error('source is required');
}
if (!opts.dist) {
throw new Error('dist is required');
}
const args: Array<string> = [];
if (opts.logLevel) {
args.push(`--log-level=${opts.logLevel}`);
}
if (opts.logCaller) {
args.push('--log-caller');
}
if (opts.cacheDir) {
args.push(`--cachedir=${opts.cacheDir}`);
}
if (opts.platform) {
args.push(`--platform=${opts.platform}`);
}
if (opts.all) {
args.push('--all');
}
if (opts.include) {
opts.include.forEach(i => {
args.push(`--include=${i}`);
});
}
if (opts.insecure) {
args.push('--insecure');
}
if (opts.rmDist) {
args.push('--rm-dist');
}
if (opts.wrap) {
args.push('--wrap');
}
args.push(opts.source, opts.dist);
await Exec.exec(this.binPath, args, {
failOnStdErr: false
});
}
public async isAvailable(): Promise<boolean> {
const ok: boolean = await Exec.getExecOutput(this.binPath, [], {
ignoreReturnCode: true,
silent: true
})
.then(res => {
if (res.stderr.length > 0 && res.exitCode != 0) {
core.debug(`Undock.isAvailable cmd err: ${res.stderr.trim()}`);
return false;
}
return res.exitCode == 0;
})
.catch(error => {
core.debug(`Undock.isAvailable error: ${error}`);
return false;
});
core.debug(`Undock.isAvailable: ${ok}`);
return ok;
}
public async version(): Promise<string> {
if (this._versionOnce) {
return this._version;
}
this._versionOnce = true;
this._version = await Exec.getExecOutput(this.binPath, ['--version'], {
ignoreReturnCode: true,
silent: true
}).then(res => {
if (res.stderr.length > 0 && res.exitCode != 0) {
throw new Error(res.stderr.trim());
}
return res.stdout.trim();
});
return this._version;
}
public async printVersion() {
await Exec.exec(this.binPath, ['--version'], {
failOnStdErr: false
});
}
public async versionSatisfies(range: string, version?: string): Promise<boolean> {
const ver = version ?? (await this.version());
if (!ver) {
core.debug(`Undock.versionSatisfies false: undefined version`);
return false;
}
const res = semver.satisfies(ver, range) || /^[0-9a-f]{7}$/.exec(ver) !== null;
core.debug(`Undock.versionSatisfies ${ver} statisfies ${range}: ${res}`);
return res;
}
}

View File

@@ -64,6 +64,14 @@ export class Util {
return res.filter(item => item).map(pat => pat.trim());
}
public static getInputNumber(name: string): number | undefined {
const value = core.getInput(name);
if (!value) {
return undefined;
}
return parseInt(value);
}
public static async asyncForEach(array, callback) {
for (let index = 0; index < array.length; index++) {
await callback(array[index], index, array);

View File

@@ -12,9 +12,9 @@ __metadata:
languageName: node
linkType: hard
"@actions/artifact@npm:^2.1.9":
version: 2.1.9
resolution: "@actions/artifact@npm:2.1.9"
"@actions/artifact@npm:^2.2.1":
version: 2.2.1
resolution: "@actions/artifact@npm:2.2.1"
dependencies:
"@actions/core": ^1.10.0
"@actions/github": ^5.1.1
@@ -26,19 +26,18 @@ __metadata:
"@octokit/request-error": ^5.0.0
"@protobuf-ts/plugin": ^2.2.3-alpha.1
archiver: ^7.0.1
crypto: ^1.0.1
jwt-decode: ^3.1.2
twirp-ts: ^2.5.0
unzip-stream: ^0.3.1
checksum: b01404aa6b4d47186e04a64c0002100ff68a8473eafb811a3d49275a7e1135d1981ccaf527b81c4856f6da764beabe7489fd296bb287906fd7c1964dfaeef3df
checksum: 6ce4e62d941f17743c845637cdd832ca34c77efe0c31cf7f6ab3ad0531e54e62d4379198e8af5e84463b5f5ae0bc0ea11d41cc77c5fae7e511c7ef01742892ea
languageName: node
linkType: hard
"@actions/cache@npm:^3.2.4":
version: 3.2.4
resolution: "@actions/cache@npm:3.2.4"
"@actions/cache@npm:^4.0.0":
version: 4.0.0
resolution: "@actions/cache@npm:4.0.0"
dependencies:
"@actions/core": ^1.10.0
"@actions/core": ^1.11.1
"@actions/exec": ^1.0.1
"@actions/glob": ^0.1.0
"@actions/http-client": ^2.1.1
@@ -46,9 +45,10 @@ __metadata:
"@azure/abort-controller": ^1.1.0
"@azure/ms-rest-js": ^2.6.0
"@azure/storage-blob": ^12.13.0
"@protobuf-ts/plugin": ^2.9.4
semver: ^6.3.1
uuid: ^3.3.3
checksum: 5bf5f7541bea4906b553440a9ffee5699e11dfb729365c6cb0bbd37e147a1a0993369fdad16bfa3e2b01ec7fa57dac66276278bfd4a389009246a75ea953e61d
twirp-ts: ^2.5.0
checksum: 8ab819a67b578a5ce6de984f4ef8420066f8270e1f9db053700f4a8f084d0bbe4f911114f7088a95a987372ea63078550355d99849412152dd0efdf688bf9144
languageName: node
linkType: hard
@@ -62,13 +62,13 @@ __metadata:
languageName: node
linkType: hard
"@actions/core@npm:^1.10.1":
version: 1.10.1
resolution: "@actions/core@npm:1.10.1"
"@actions/core@npm:^1.11.1":
version: 1.11.1
resolution: "@actions/core@npm:1.11.1"
dependencies:
"@actions/exec": ^1.1.1
"@actions/http-client": ^2.0.1
uuid: ^8.3.2
checksum: 96524c2725e70e3c3176b4e4d93a1358a86f3c5ca777db9a2f65eadfa672f00877db359bf60fffc416c33838ffb4743db93bcc5bf53e76199dd28bf7f7ff8e80
checksum: 9ac7a3e0b478bfefd862dcb4ddaa1d8c3f9076bb1931d3d280918d1749e7783480c6a009c1b009c8bf5093e2d77d9f4e023d70416145bf246f0071736d4ef839
languageName: node
linkType: hard
@@ -170,17 +170,16 @@ __metadata:
languageName: node
linkType: hard
"@actions/tool-cache@npm:^2.0.1":
version: 2.0.1
resolution: "@actions/tool-cache@npm:2.0.1"
"@actions/tool-cache@npm:^2.0.2":
version: 2.0.2
resolution: "@actions/tool-cache@npm:2.0.2"
dependencies:
"@actions/core": ^1.2.6
"@actions/core": ^1.11.1
"@actions/exec": ^1.0.0
"@actions/http-client": ^2.0.1
"@actions/io": ^1.1.1
semver: ^6.1.0
uuid: ^3.3.2
checksum: 33f6393b9b163e4af2b9759e8d37cda4f018f10ddda3643355bb8a9f92d732e5bdff089cf8036b46d181e1ef2b3210b895b2f746fdf54487afe88f1d340aa9e1
checksum: c2bab4297be752bdda9dd61f8159a201ad0d37d026134b960f1edcc9418a80387f44d1f24a070fe992c44dcfc28a152f70600e76669bb0578132789a6f37a596
languageName: node
linkType: hard
@@ -1109,14 +1108,14 @@ __metadata:
version: 0.0.0-use.local
resolution: "@docker/actions-toolkit@workspace:."
dependencies:
"@actions/artifact": ^2.1.9
"@actions/cache": ^3.2.4
"@actions/core": ^1.10.1
"@actions/artifact": ^2.2.1
"@actions/cache": ^4.0.0
"@actions/core": ^1.11.1
"@actions/exec": ^1.1.1
"@actions/github": ^6.0.0
"@actions/http-client": ^2.2.3
"@actions/io": ^1.1.3
"@actions/tool-cache": ^2.0.1
"@actions/tool-cache": ^2.0.2
"@azure/storage-blob": ^12.15.0
"@octokit/core": ^5.1.0
"@octokit/plugin-rest-endpoint-methods": ^10.4.0
@@ -1131,7 +1130,7 @@ __metadata:
"@typescript-eslint/eslint-plugin": ^7.8.0
"@typescript-eslint/parser": ^7.8.0
async-retry: ^1.3.3
csv-parse: ^5.5.6
csv-parse: ^5.6.0
dotenv: ^16.4.5
eslint: ^8.57.0
eslint-config-prettier: ^9.1.0
@@ -2011,7 +2010,7 @@ __metadata:
languageName: node
linkType: hard
"@protobuf-ts/plugin@npm:^2.2.3-alpha.1":
"@protobuf-ts/plugin@npm:^2.2.3-alpha.1, @protobuf-ts/plugin@npm:^2.9.4":
version: 2.9.4
resolution: "@protobuf-ts/plugin@npm:2.9.4"
dependencies:
@@ -3405,20 +3404,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
languageName: node
linkType: hard
"crypto@npm:^1.0.1":
version: 1.0.1
resolution: "crypto@npm:1.0.1"
checksum: 087fe3165bd94c333a49e6ed66a0193911f63eac38a24f379b3001a5fe260a59c413646e53a0f67875ba13902b2686d81dc703cb2c147a4ec727dcdc04e5645e
checksum: 8d306efacaf6f3f60e0224c287664093fa9185680b2d195852ba9a863f85d02dcc737094c6e512175f8ee0161f9b87c73c6826034c2422e39de7d6569cf4503b
languageName: node
linkType: hard
@@ -3429,10 +3421,10 @@ __metadata:
languageName: node
linkType: hard
"csv-parse@npm:^5.5.6":
version: 5.5.6
resolution: "csv-parse@npm:5.5.6"
checksum: ee06f97f674487dc1d001b360de8ea510a41b9d971abf43bcf9c3be22c83a3634df0d3ebfbe52fd49d145077066be7ff9f25de3fc6b71aefb973099b04147a25
"csv-parse@npm:^5.6.0":
version: 5.6.0
resolution: "csv-parse@npm:5.6.0"
checksum: 173e176bdaf212bab37d0f6d39a06d039d24a1c0ee40b9f1023ebf8b36095934807deeb493c0fb58592b39b0682ccd0be5c9e8d2b137c08807e7031595ea7a51
languageName: node
linkType: hard
@@ -8371,15 +8363,6 @@ __metadata:
languageName: node
linkType: hard
"uuid@npm:^3.3.2, uuid@npm:^3.3.3":
version: 3.4.0
resolution: "uuid@npm:3.4.0"
bin:
uuid: ./bin/uuid
checksum: 58de2feed61c59060b40f8203c0e4ed7fd6f99d42534a499f1741218a1dd0c129f4aa1de797bcf822c8ea5da7e4137aa3673431a96dae729047f7aca7b27866f
languageName: node
linkType: hard
"uuid@npm:^8.3.0, uuid@npm:^8.3.2":
version: 8.3.2
resolution: "uuid@npm:8.3.2"