Compare commits
242 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3c328a53eb | ||
|
|
2c62255f2d | ||
|
|
ed7e9a44e0 | ||
|
|
dd0f91b30b | ||
|
|
5c369b71ab | ||
|
|
8ac9d9c3bd | ||
|
|
c6b95cb147 | ||
|
|
4b7b2c4fd1 | ||
|
|
ea42e3a061 | ||
|
|
0bcd5b25a2 | ||
|
|
4b68aa828a | ||
|
|
ba8d872626 | ||
|
|
2ecc3150d2 | ||
|
|
5bc1041760 | ||
|
|
ed5ad08108 | ||
|
|
acc213a00a | ||
|
|
e6e18dee25 | ||
|
|
d9bd2d45ba | ||
|
|
1229986252 | ||
|
|
2925ff2bef | ||
|
|
41bd4c9503 | ||
|
|
b93cb9e902 | ||
|
|
6e5cf7117a | ||
|
|
6b5c60adb0 | ||
|
|
1b6fc2257f | ||
|
|
dd2160f477 | ||
|
|
a54d83c644 | ||
|
|
3cdc15c881 | ||
|
|
c901021fb1 | ||
|
|
5b8e902c4d | ||
|
|
cab9e2952c | ||
|
|
ac9dc8b527 | ||
|
|
9b3822d698 | ||
|
|
84930a3d2d | ||
|
|
1195b4311b | ||
|
|
f8d303b336 | ||
|
|
4a31b494f0 | ||
|
|
703a1d1973 | ||
|
|
e75da9cf2f | ||
|
|
f3bf577877 | ||
|
|
9ed9b1d1aa | ||
|
|
38fd60d94a | ||
|
|
246ac9634b | ||
|
|
afc5fed49b | ||
|
|
88b5826b8a | ||
|
|
d49a8c5927 | ||
|
|
f5f997cc54 | ||
|
|
2f6f85d000 | ||
|
|
f2b7ab25b0 | ||
|
|
f795e92af9 | ||
|
|
e46ec802f8 | ||
|
|
f2e802cdcd | ||
|
|
e02b7d7dab | ||
|
|
9881e80bfd | ||
|
|
a824931115 | ||
|
|
cc12dc0f23 | ||
|
|
13bd9c8b43 | ||
|
|
231937b397 | ||
|
|
54bdcf6c08 | ||
|
|
b754abce91 | ||
|
|
73473a8d30 | ||
|
|
1fcf059bc3 | ||
|
|
e36200f754 | ||
|
|
7811a01457 | ||
|
|
bfc74cf338 | ||
|
|
d78e250f06 | ||
|
|
9c90456f05 | ||
|
|
d973aa3819 | ||
|
|
8a08fe2806 | ||
|
|
6187bb12a9 | ||
|
|
4198f608fc | ||
|
|
f3bd84d2d9 | ||
|
|
7d8134f7ee | ||
|
|
b8e5bf5d47 | ||
|
|
fd7471e4b3 | ||
|
|
de32b3cb22 | ||
|
|
8e982c7ecb | ||
|
|
7fe0176aa4 | ||
|
|
ea0e154248 | ||
|
|
6dba1dff74 | ||
|
|
6e604a85da | ||
|
|
97f8928706 | ||
|
|
a7d1113dcb | ||
|
|
c37ffdb5fc | ||
|
|
621224b486 | ||
|
|
3537a9ed79 | ||
|
|
b67f68d8d3 | ||
|
|
ea5e6b5583 | ||
|
|
e6e545e60d | ||
|
|
ca8094202e | ||
|
|
18f86e8bbe | ||
|
|
015ed3d61a | ||
|
|
e1103fddef | ||
|
|
1d49775be9 | ||
|
|
51e66210fb | ||
|
|
cd8a555683 | ||
|
|
e908dafd1d | ||
|
|
ba72b5ac36 | ||
|
|
697daea613 | ||
|
|
cf3b7825d1 | ||
|
|
c02def4ec1 | ||
|
|
f24e36809f | ||
|
|
525e465d20 | ||
|
|
21b322a03a | ||
|
|
e30237e575 | ||
|
|
4ab23ad060 | ||
|
|
516e8d5ec9 | ||
|
|
4126481cc3 | ||
|
|
e1274f2024 | ||
|
|
0a8b89fa07 | ||
|
|
0d31942772 | ||
|
|
f3ecebd074 | ||
|
|
0d60eaffd1 | ||
|
|
068b0dcb39 | ||
|
|
36650ca702 | ||
|
|
b232f18282 | ||
|
|
2e6acb85f0 | ||
|
|
a8ef02b62a | ||
|
|
4d3be21dad | ||
|
|
5b4f5428ef | ||
|
|
c368aca6cf | ||
|
|
d05cdc6878 | ||
|
|
df61593ae1 | ||
|
|
dd0ab4171a | ||
|
|
b0ac581cb1 | ||
|
|
5a8b57c95a | ||
|
|
3deaa610c5 | ||
|
|
b6c56c35d0 | ||
|
|
aae39d4354 | ||
|
|
670488c531 | ||
|
|
d7243bf353 | ||
|
|
63258eae90 | ||
|
|
9f942b9006 | ||
|
|
b7d7639e37 | ||
|
|
1b47583286 | ||
|
|
52a861f9a6 | ||
|
|
4ec6da1c34 | ||
|
|
fe4847c275 | ||
|
|
4ea16daf18 | ||
|
|
ae68f5e35d | ||
|
|
48ef9fdac6 | ||
|
|
48b9f27a7b | ||
|
|
d51946fd4b | ||
|
|
0a1859004b | ||
|
|
ecd73afcbd | ||
|
|
5cd47162a7 | ||
|
|
dcacfbd8df | ||
|
|
79b9812052 | ||
|
|
ade18ca4a9 | ||
|
|
d9b2332555 | ||
|
|
8e475672d0 | ||
|
|
9e42346af2 | ||
|
|
c1f346a886 | ||
|
|
51fe51827b | ||
|
|
76fc6aa044 | ||
|
|
d99f9fda4d | ||
|
|
2f29958913 | ||
|
|
24f1be5fbb | ||
|
|
e2dbc9880e | ||
|
|
fd7e21c0b5 | ||
|
|
51752522b5 | ||
|
|
881c88b74d | ||
|
|
59d1b48622 | ||
|
|
e39e91a6d0 | ||
|
|
db6372e84f | ||
|
|
ed273243e8 | ||
|
|
749fc87fb2 | ||
|
|
9f6ff3da7f | ||
|
|
c2a62c4476 | ||
|
|
8dfe7ecbd9 | ||
|
|
d19019dc11 | ||
|
|
1362d80447 | ||
|
|
05607289aa | ||
|
|
91444bd3bd | ||
|
|
cc17e76a52 | ||
|
|
8672cc70f4 | ||
|
|
31cb9c3bde | ||
|
|
781874f7fa | ||
|
|
54e0f74a84 | ||
|
|
15a9f92044 | ||
|
|
0b611e6c46 | ||
|
|
4980de30fc | ||
|
|
37b0f81ca2 | ||
|
|
2d2bc848fe | ||
|
|
8c97b0d9b4 | ||
|
|
9da4a47d60 | ||
|
|
80e4f3c485 | ||
|
|
cb33662ebc | ||
|
|
1b63de84b1 | ||
|
|
577f9b9555 | ||
|
|
c6389d840e | ||
|
|
d90b053e7c | ||
|
|
853d5fa804 | ||
|
|
61c10b2d7d | ||
|
|
e84b18afd5 | ||
|
|
f06ec3b4a1 | ||
|
|
991feac6c3 | ||
|
|
a79473b652 | ||
|
|
6f86e0250d | ||
|
|
0a09638c5b | ||
|
|
ea7b423421 | ||
|
|
24115c327a | ||
|
|
bdd1a426f5 | ||
|
|
e2acba1767 | ||
|
|
735c66bebf | ||
|
|
5abb5fce3e | ||
|
|
a9941711bb | ||
|
|
68dcb5ad15 | ||
|
|
52919ae07e | ||
|
|
a9dd20af6c | ||
|
|
faef3be239 | ||
|
|
a2e60f6191 | ||
|
|
8e2d2ceec1 | ||
|
|
5b53556941 | ||
|
|
be5b9d1575 | ||
|
|
517a5c577f | ||
|
|
c65952ed7a | ||
|
|
6336902578 | ||
|
|
e3d0e4e199 | ||
|
|
b143889d3e | ||
|
|
de390e0872 | ||
|
|
b8a96071a8 | ||
|
|
10424facaf | ||
|
|
1335f081af | ||
|
|
a59a5f8e3f | ||
|
|
3b49d01274 | ||
|
|
53822af427 | ||
|
|
deeee5473b | ||
|
|
eec0a5d809 | ||
|
|
b4d81c6478 | ||
|
|
6e3f195d06 | ||
|
|
fc3d393292 | ||
|
|
19ca9ade20 | ||
|
|
8b84506b77 | ||
|
|
ccc7548899 | ||
|
|
5f0354dc09 | ||
|
|
3af0a38475 | ||
|
|
acd6a3be6b | ||
|
|
3b9fba85ba | ||
|
|
38d1dce1ff | ||
|
|
958f229292 | ||
|
|
368e2f559c |
17
.github/actions/macos-setup-qemu/action.yml
vendored
Normal file
17
.github/actions/macos-setup-qemu/action.yml
vendored
Normal 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
|
||||
551
.github/buildx-lab-releases.json
vendored
551
.github/buildx-lab-releases.json
vendored
@@ -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": {
|
||||
|
||||
886
.github/buildx-releases.json
vendored
886
.github/buildx-releases.json
vendored
@@ -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
281
.github/compose-lab-releases.json
vendored
Normal 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
4710
.github/compose-releases.json
vendored
Normal file
File diff suppressed because it is too large
Load Diff
90
.github/docker-releases.json
vendored
90
.github/docker-releases.json
vendored
@@ -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
339
.github/undock-releases.json
vendored
Normal 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"
|
||||
]
|
||||
}
|
||||
}
|
||||
13
.github/workflows/build.yml
vendored
13
.github/workflows/build.yml
vendored
@@ -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 }}
|
||||
|
||||
@@ -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
|
||||
|
||||
2
.github/workflows/buildx-releases-json.yml
vendored
2
.github/workflows/buildx-releases-json.yml
vendored
@@ -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
|
||||
|
||||
58
.github/workflows/compose-lab-releases-json.yml
vendored
Normal file
58
.github/workflows/compose-lab-releases-json.yml
vendored
Normal 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
|
||||
58
.github/workflows/compose-releases-json.yml
vendored
Normal file
58
.github/workflows/compose-releases-json.yml
vendored
Normal 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
|
||||
2
.github/workflows/docker-releases-json.yml
vendored
2
.github/workflows/docker-releases-json.yml
vendored
@@ -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
|
||||
|
||||
5
.github/workflows/publish.yml
vendored
5
.github/workflows/publish.yml
vendored
@@ -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:
|
||||
|
||||
106
.github/workflows/test.yml
vendored
106
.github/workflows/test.yml
vendored
@@ -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 }}
|
||||
|
||||
58
.github/workflows/undock-releases-json.yml
vendored
Normal file
58
.github/workflows/undock-releases-json.yml
vendored
Normal 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
|
||||
16
.github/workflows/validate.yml
vendored
16
.github/workflows/validate.yml
vendored
@@ -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 }}
|
||||
|
||||
2
.github/workflows/virtual-env.yml
vendored
2
.github/workflows/virtual-env.yml
vendored
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -22,7 +22,9 @@
|
||||
"linux/amd64"
|
||||
],
|
||||
"output": [
|
||||
"type=docker"
|
||||
{
|
||||
"type": "docker"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
68
__tests__/.fixtures/bake-03-default.json
Normal file
68
__tests__/.fixtures/bake-03-default.json
Normal 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"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
37
__tests__/.fixtures/bake-03.hcl
Normal file
37
__tests__/.fixtures/bake-03.hcl
Normal 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"
|
||||
]
|
||||
}
|
||||
@@ -29,7 +29,10 @@
|
||||
"windows/arm64"
|
||||
],
|
||||
"output": [
|
||||
"./bin/build"
|
||||
{
|
||||
"dest": "./bin/build",
|
||||
"type": "local"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
74
__tests__/.fixtures/imagetools-01.json
Normal file
74
__tests__/.fixtures/imagetools-01.json
Normal 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
|
||||
}
|
||||
]
|
||||
}
|
||||
447
__tests__/.fixtures/imagetools-02.json
Normal file
447
__tests__/.fixtures/imagetools-02.json
Normal 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
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
>
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -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
|
||||
`,
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
39
__tests__/buildx/imagetools.test.itg.ts
Normal file
39
__tests__/buildx/imagetools.test.itg.ts
Normal 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);
|
||||
});
|
||||
});
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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('');
|
||||
});
|
||||
});
|
||||
|
||||
109
__tests__/compose/compose.test.ts
Normal file
109
__tests__/compose/compose.test.ts
Normal 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);
|
||||
});
|
||||
});
|
||||
42
__tests__/compose/install.test.itg.ts
Normal file
42
__tests__/compose/install.test.itg.ts
Normal 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);
|
||||
});
|
||||
165
__tests__/compose/install.test.ts
Normal file
165
__tests__/compose/install.test.ts
Normal 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'));
|
||||
});
|
||||
});
|
||||
@@ -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');
|
||||
|
||||
@@ -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
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -279,3 +279,10 @@ describe('tag', () => {
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('getCommitDate', () => {
|
||||
it('head', async () => {
|
||||
const date = await Git.commitDate('HEAD');
|
||||
await expect(date).toBeInstanceOf(Date);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -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
|
||||
});
|
||||
|
||||
38
__tests__/undock/install.test.itg.ts
Normal file
38
__tests__/undock/install.test.itg.ts
Normal 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);
|
||||
});
|
||||
129
__tests__/undock/install.test.ts
Normal file
129
__tests__/undock/install.test.ts
Normal 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'));
|
||||
});
|
||||
});
|
||||
84
__tests__/undock/undock.test.ts
Normal file
84
__tests__/undock/undock.test.ts
Normal 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);
|
||||
});
|
||||
});
|
||||
@@ -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];
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 = ["."]
|
||||
|
||||
@@ -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"
|
||||
|
||||
10
package.json
10
package.json
@@ -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",
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
61
src/buildx/imagetools.ts
Normal 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');
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -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,
|
||||
|
||||
23
src/cache.ts
23
src/cache.ts
@@ -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
106
src/compose/compose.ts
Normal 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
217
src/compose/install.ts
Normal 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];
|
||||
}
|
||||
}
|
||||
@@ -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}`;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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];
|
||||
}
|
||||
|
||||
@@ -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}`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
174
src/hubRepository.ts
Normal 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;
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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>;
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
22
src/types/compose/compose.ts
Normal file
22
src/types/compose/compose.ts
Normal 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;
|
||||
}
|
||||
21
src/types/docker/mediatype.ts
Normal file
21
src/types/docker/mediatype.ts
Normal 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';
|
||||
@@ -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';
|
||||
|
||||
21
src/types/undock/undock.ts
Normal file
21
src/types/undock/undock.ts
Normal 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
166
src/undock/install.ts
Normal 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
148
src/undock/undock.ts
Normal 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;
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
85
yarn.lock
85
yarn.lock
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user