Compare commits
69 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f1593e3aa2 | ||
|
|
db5c712dec | ||
|
|
fd97af130e | ||
|
|
ec700a3813 | ||
|
|
324e807d2e | ||
|
|
8e45354f0c | ||
|
|
906aacf7ff | ||
|
|
1d9f94872d | ||
|
|
b99f9ec3ef | ||
|
|
8d02bad9a9 | ||
|
|
c1edd0b5e3 | ||
|
|
70c0e12f74 | ||
|
|
ddcd63c92a | ||
|
|
0e5fc3661a | ||
|
|
3d49d98580 | ||
|
|
ca519e1aa8 | ||
|
|
b13ef76b5e | ||
|
|
2043356c92 | ||
|
|
84371bb189 | ||
|
|
ad6e71b881 | ||
|
|
e47142d45b | ||
|
|
e79f79bcd9 | ||
|
|
ab02f62089 | ||
|
|
8cef70fefb | ||
|
|
321a028303 | ||
|
|
80eaf0972b | ||
|
|
101a44b0a7 | ||
|
|
22cc0b6c27 | ||
|
|
21fdfc52c4 | ||
|
|
eebb677d5a | ||
|
|
495c96b050 | ||
|
|
b1e0aeed50 | ||
|
|
d0ee813215 | ||
|
|
b2a51dd6b4 | ||
|
|
acd3c9df19 | ||
|
|
8ad595b445 | ||
|
|
9450a454a7 | ||
|
|
a7221012c8 | ||
|
|
6fc5565c73 | ||
|
|
7492c7193a | ||
|
|
f05a598a08 | ||
|
|
fc85cef9e1 | ||
|
|
a5b683b46e | ||
|
|
0b166c63ef | ||
|
|
e072607266 | ||
|
|
a1ffbe9606 | ||
|
|
fdd740da2d | ||
|
|
8a9577d5e2 | ||
|
|
ca7a29d2d7 | ||
|
|
d39585b339 | ||
|
|
2e3ba6678f | ||
|
|
337a7240a5 | ||
|
|
728fcdbea9 | ||
|
|
dfa1a320c4 | ||
|
|
4ff86b974f | ||
|
|
181782ba21 | ||
|
|
dd977d3597 | ||
|
|
776422c908 | ||
|
|
d86a125551 | ||
|
|
633f41191f | ||
|
|
79def6b218 | ||
|
|
31e5d12fd9 | ||
|
|
1eda4b6a6c | ||
|
|
c71f3fe1ba | ||
|
|
8c8294806e | ||
|
|
ec382328c4 | ||
|
|
051c91700a | ||
|
|
471068fc6f | ||
|
|
60feaf2f84 |
279
.github/buildx-releases.json
vendored
279
.github/buildx-releases.json
vendored
@@ -1,43 +1,248 @@
|
||||
{
|
||||
"latest": {
|
||||
"id": 94659464,
|
||||
"tag_name": "v0.10.4",
|
||||
"html_url": "https://github.com/docker/buildx/releases/tag/v0.10.4",
|
||||
"id": 111149999,
|
||||
"tag_name": "v0.11.1",
|
||||
"html_url": "https://github.com/docker/buildx/releases/tag/v0.11.1",
|
||||
"assets": [
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.darwin-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.darwin-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.darwin-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.darwin-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.darwin-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.darwin-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.linux-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.linux-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.linux-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.linux-arm-v6",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.linux-arm-v6.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.linux-arm-v6.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.linux-arm-v7",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.linux-arm-v7.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.linux-arm-v7.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.linux-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.linux-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.linux-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.linux-ppc64le",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.linux-ppc64le.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.linux-ppc64le.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.linux-riscv64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.linux-riscv64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.linux-riscv64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.linux-s390x",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.linux-s390x.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.linux-s390x.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.windows-amd64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.windows-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.windows-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.windows-arm64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.windows-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/buildx-v0.10.4.windows-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.4/checksums.txt"
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.darwin-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.darwin-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.darwin-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.darwin-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.darwin-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.darwin-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-arm-v6",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-arm-v6.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-arm-v6.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-arm-v7",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-arm-v7.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-arm-v7.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-ppc64le",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-ppc64le.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-ppc64le.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-riscv64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-riscv64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-riscv64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-s390x",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-s390x.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-s390x.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.windows-amd64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.windows-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.windows-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.windows-arm64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.windows-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.windows-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/checksums.txt"
|
||||
]
|
||||
},
|
||||
"v0.11.1": {
|
||||
"id": 111149999,
|
||||
"tag_name": "v0.11.1",
|
||||
"html_url": "https://github.com/docker/buildx/releases/tag/v0.11.1",
|
||||
"assets": [
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.darwin-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.darwin-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.darwin-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.darwin-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.darwin-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.darwin-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-arm-v6",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-arm-v6.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-arm-v6.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-arm-v7",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-arm-v7.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-arm-v7.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-ppc64le",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-ppc64le.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-ppc64le.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-riscv64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-riscv64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-riscv64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-s390x",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-s390x.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.linux-s390x.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.windows-amd64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.windows-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.windows-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.windows-arm64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.windows-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/buildx-v0.11.1.windows-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.1/checksums.txt"
|
||||
]
|
||||
},
|
||||
"v0.11.0": {
|
||||
"id": 108385289,
|
||||
"tag_name": "v0.11.0",
|
||||
"html_url": "https://github.com/docker/buildx/releases/tag/v0.11.0",
|
||||
"assets": [
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.darwin-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.darwin-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.darwin-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.darwin-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.darwin-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.darwin-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.linux-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.linux-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.linux-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.linux-arm-v6",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.linux-arm-v6.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.linux-arm-v6.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.linux-arm-v7",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.linux-arm-v7.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.linux-arm-v7.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.linux-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.linux-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.linux-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.linux-ppc64le",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.linux-ppc64le.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.linux-ppc64le.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.linux-riscv64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.linux-riscv64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.linux-riscv64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.linux-s390x",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.linux-s390x.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.linux-s390x.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.windows-amd64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.windows-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.windows-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.windows-arm64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.windows-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.windows-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0/checksums.txt"
|
||||
]
|
||||
},
|
||||
"v0.11.0-rc2": {
|
||||
"id": 107680036,
|
||||
"tag_name": "v0.11.0-rc2",
|
||||
"html_url": "https://github.com/docker/buildx/releases/tag/v0.11.0-rc2",
|
||||
"assets": [
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.darwin-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.darwin-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.darwin-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.darwin-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.darwin-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.darwin-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.linux-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.linux-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.linux-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.linux-arm-v6",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.linux-arm-v6.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.linux-arm-v6.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.linux-arm-v7",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.linux-arm-v7.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.linux-arm-v7.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.linux-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.linux-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.linux-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.linux-ppc64le",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.linux-ppc64le.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.linux-ppc64le.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.linux-riscv64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.linux-riscv64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.linux-riscv64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.linux-s390x",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.linux-s390x.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.linux-s390x.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.windows-amd64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.windows-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.windows-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.windows-arm64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.windows-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/buildx-v0.11.0-rc2.windows-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc2/checksums.txt"
|
||||
]
|
||||
},
|
||||
"v0.10.5": {
|
||||
"id": 103872471,
|
||||
"tag_name": "v0.10.5",
|
||||
"html_url": "https://github.com/docker/buildx/releases/tag/v0.10.5",
|
||||
"assets": [
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.darwin-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.darwin-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.darwin-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.darwin-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.darwin-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.darwin-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.linux-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.linux-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.linux-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.linux-arm-v6",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.linux-arm-v6.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.linux-arm-v6.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.linux-arm-v7",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.linux-arm-v7.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.linux-arm-v7.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.linux-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.linux-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.linux-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.linux-ppc64le",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.linux-ppc64le.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.linux-ppc64le.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.linux-riscv64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.linux-riscv64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.linux-riscv64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.linux-s390x",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.linux-s390x.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.linux-s390x.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.windows-amd64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.windows-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.windows-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.windows-arm64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.windows-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/buildx-v0.10.5.windows-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.10.5/checksums.txt"
|
||||
]
|
||||
},
|
||||
"v0.11.0-rc1": {
|
||||
"id": 102797153,
|
||||
"tag_name": "v0.11.0-rc1",
|
||||
"html_url": "https://github.com/docker/buildx/releases/tag/v0.11.0-rc1",
|
||||
"assets": [
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.darwin-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.darwin-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.darwin-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.darwin-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.darwin-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.darwin-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.linux-amd64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.linux-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.linux-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.linux-arm-v6",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.linux-arm-v6.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.linux-arm-v6.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.linux-arm-v7",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.linux-arm-v7.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.linux-arm-v7.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.linux-arm64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.linux-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.linux-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.linux-ppc64le",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.linux-ppc64le.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.linux-ppc64le.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.linux-riscv64",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.linux-riscv64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.linux-riscv64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.linux-s390x",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.linux-s390x.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.linux-s390x.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.windows-amd64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.windows-amd64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.windows-amd64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.windows-arm64.exe",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.windows-arm64.provenance.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/buildx-v0.11.0-rc1.windows-arm64.sbom.json",
|
||||
"https://github.com/docker/buildx/releases/download/v0.11.0-rc1/checksums.txt"
|
||||
]
|
||||
},
|
||||
"v0.10.4": {
|
||||
|
||||
78
.github/docker-releases.json
vendored
78
.github/docker-releases.json
vendored
@@ -1,8 +1,80 @@
|
||||
{
|
||||
"latest": {
|
||||
"id": 99811576,
|
||||
"tag_name": "v23.0.4",
|
||||
"html_url": "https://github.com/moby/moby/releases/tag/v23.0.4",
|
||||
"id": 111464537,
|
||||
"tag_name": "v24.0.4",
|
||||
"html_url": "https://github.com/moby/moby/releases/tag/v24.0.4",
|
||||
"assets": []
|
||||
},
|
||||
"v24.0.4": {
|
||||
"id": 111464537,
|
||||
"tag_name": "v24.0.4",
|
||||
"html_url": "https://github.com/moby/moby/releases/tag/v24.0.4",
|
||||
"assets": []
|
||||
},
|
||||
"v24.0.3": {
|
||||
"id": 111300256,
|
||||
"tag_name": "v24.0.3",
|
||||
"html_url": "https://github.com/moby/moby/releases/tag/v24.0.3",
|
||||
"assets": []
|
||||
},
|
||||
"v24.0.2": {
|
||||
"id": 104366762,
|
||||
"tag_name": "v24.0.2",
|
||||
"html_url": "https://github.com/moby/moby/releases/tag/v24.0.2",
|
||||
"assets": []
|
||||
},
|
||||
"v24.0.1": {
|
||||
"id": 103671743,
|
||||
"tag_name": "v24.0.1",
|
||||
"html_url": "https://github.com/moby/moby/releases/tag/v24.0.1",
|
||||
"assets": []
|
||||
},
|
||||
"v24.0.0": {
|
||||
"id": 103200193,
|
||||
"tag_name": "v24.0.0",
|
||||
"html_url": "https://github.com/moby/moby/releases/tag/v24.0.0",
|
||||
"assets": []
|
||||
},
|
||||
"v20.10.25": {
|
||||
"id": 103070540,
|
||||
"tag_name": "v20.10.25",
|
||||
"html_url": "https://github.com/moby/moby/releases/tag/v20.10.25",
|
||||
"assets": []
|
||||
},
|
||||
"v24.0.0-rc.4": {
|
||||
"id": 102846110,
|
||||
"tag_name": "v24.0.0-rc.4",
|
||||
"html_url": "https://github.com/moby/moby/releases/tag/v24.0.0-rc.4",
|
||||
"assets": []
|
||||
},
|
||||
"v24.0.0-rc.3": {
|
||||
"id": 102708870,
|
||||
"tag_name": "v24.0.0-rc.3",
|
||||
"html_url": "https://github.com/moby/moby/releases/tag/v24.0.0-rc.3",
|
||||
"assets": []
|
||||
},
|
||||
"v23.0.6": {
|
||||
"id": 102196340,
|
||||
"tag_name": "v23.0.6",
|
||||
"html_url": "https://github.com/moby/moby/releases/tag/v23.0.6",
|
||||
"assets": []
|
||||
},
|
||||
"v24.0.0-rc.2": {
|
||||
"id": 102091676,
|
||||
"tag_name": "v24.0.0-rc.2",
|
||||
"html_url": "https://github.com/moby/moby/releases/tag/v24.0.0-rc.2",
|
||||
"assets": []
|
||||
},
|
||||
"v24.0.0-rc.1": {
|
||||
"id": 101305950,
|
||||
"tag_name": "v24.0.0-rc.1",
|
||||
"html_url": "https://github.com/moby/moby/releases/tag/v24.0.0-rc.1",
|
||||
"assets": []
|
||||
},
|
||||
"v23.0.5": {
|
||||
"id": 101005794,
|
||||
"tag_name": "v23.0.5",
|
||||
"html_url": "https://github.com/moby/moby/releases/tag/v23.0.5",
|
||||
"assets": []
|
||||
},
|
||||
"v23.0.4": {
|
||||
|
||||
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
@@ -21,6 +21,6 @@ jobs:
|
||||
uses: actions/checkout@v3
|
||||
-
|
||||
name: Build
|
||||
uses: docker/bake-action@v2
|
||||
uses: docker/bake-action@v3
|
||||
with:
|
||||
targets: build
|
||||
|
||||
2
.github/workflows/buildx-releases-json.yml
vendored
2
.github/workflows/buildx-releases-json.yml
vendored
@@ -45,7 +45,7 @@ jobs:
|
||||
git add -A .
|
||||
-
|
||||
name: Create PR
|
||||
uses: peter-evans/create-pull-request@5b4a9f6a9e2af26e5f02351490b90d01eb8ec1e5
|
||||
uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38
|
||||
with:
|
||||
base: main
|
||||
branch: bot/buildx-releases-json
|
||||
|
||||
2
.github/workflows/docker-releases-json.yml
vendored
2
.github/workflows/docker-releases-json.yml
vendored
@@ -45,7 +45,7 @@ jobs:
|
||||
git add -A .
|
||||
-
|
||||
name: Create PR
|
||||
uses: peter-evans/create-pull-request@5b4a9f6a9e2af26e5f02351490b90d01eb8ec1e5
|
||||
uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38
|
||||
with:
|
||||
base: main
|
||||
branch: bot/docker-releases-json
|
||||
|
||||
2
.github/workflows/publish.yml
vendored
2
.github/workflows/publish.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
uses: docker/setup-buildx-action@v2
|
||||
-
|
||||
name: Publish
|
||||
uses: docker/bake-action@v2
|
||||
uses: docker/bake-action@v3
|
||||
with:
|
||||
targets: publish
|
||||
env:
|
||||
|
||||
2
.github/workflows/test.yml
vendored
2
.github/workflows/test.yml
vendored
@@ -22,7 +22,7 @@ jobs:
|
||||
uses: actions/checkout@v3
|
||||
-
|
||||
name: Test
|
||||
uses: docker/bake-action@v2
|
||||
uses: docker/bake-action@v3
|
||||
with:
|
||||
targets: test-coverage
|
||||
env:
|
||||
|
||||
2
.github/workflows/validate.yml
vendored
2
.github/workflows/validate.yml
vendored
@@ -42,6 +42,6 @@ jobs:
|
||||
uses: actions/checkout@v3
|
||||
-
|
||||
name: Validate
|
||||
uses: docker/bake-action@v2
|
||||
uses: docker/bake-action@v3
|
||||
with:
|
||||
targets: ${{ matrix.target }}
|
||||
|
||||
@@ -210,6 +210,189 @@ describe('parseInspect', () => {
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
[
|
||||
'inspect8.txt',
|
||||
{
|
||||
"name": "builder-52aa0611-faf0-42ac-a940-461e4e287d68",
|
||||
"driver": "docker-container",
|
||||
"lastActivity": new Date("2023-06-13T13:52:31.000Z"),
|
||||
"nodes": [
|
||||
{
|
||||
"buildkit": "v0.11.6",
|
||||
"buildkitd-flags": "--debug --allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host",
|
||||
"driver-opts": [
|
||||
"image=moby/buildkit:buildx-stable-1",
|
||||
"network=host",
|
||||
],
|
||||
"endpoint": "unix:///var/run/docker.sock",
|
||||
"name": "builder-52aa0611-faf0-42ac-a940-461e4e287d680",
|
||||
"platforms": "linux/amd64,linux/amd64/v2,linux/amd64/v3,linux/amd64/v4,linux/arm64,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6",
|
||||
"status": "running",
|
||||
"labels": {
|
||||
"org.mobyproject.buildkit.worker.executor": "oci",
|
||||
"org.mobyproject.buildkit.worker.hostname": "fv-az572-38",
|
||||
"org.mobyproject.buildkit.worker.network": "host",
|
||||
"org.mobyproject.buildkit.worker.oci.process-mode": "sandbox",
|
||||
"org.mobyproject.buildkit.worker.selinux.enabled": "false",
|
||||
"org.mobyproject.buildkit.worker.snapshotter": "overlayfs",
|
||||
},
|
||||
"gcPolicy": [
|
||||
{
|
||||
"all": false,
|
||||
"filter": [
|
||||
"type==source.local",
|
||||
"type==exec.cachemount",
|
||||
"type==source.git.checkout"
|
||||
],
|
||||
"keepDuration": "48h0m0s",
|
||||
"keepBytes": "488.3MiB",
|
||||
},
|
||||
{
|
||||
"all": false,
|
||||
"keepDuration": "1440h0m0s",
|
||||
"keepBytes": "8.382GiB",
|
||||
},
|
||||
{
|
||||
"all": false,
|
||||
"keepBytes": "8.382GiB",
|
||||
},
|
||||
{
|
||||
"all": true,
|
||||
"keepBytes": "8.382GiB",
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
[
|
||||
'inspect9.txt',
|
||||
{
|
||||
"name": "default",
|
||||
"driver": "docker",
|
||||
"lastActivity": new Date("2023-06-13T18:13:43.000Z"),
|
||||
"nodes": [
|
||||
{
|
||||
"buildkit": "v0.11.7-0.20230525183624-798ad6b0ce9f",
|
||||
"endpoint": "default",
|
||||
"name": "default",
|
||||
"platforms": "linux/amd64,linux/amd64/v2,linux/amd64/v3,linux/arm64,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6",
|
||||
"status": "running",
|
||||
"gcPolicy": [
|
||||
{
|
||||
"all": true,
|
||||
"keepBytes": "100GiB",
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
[
|
||||
'inspect10.txt',
|
||||
{
|
||||
"name": "remote-builder",
|
||||
"driver": "remote",
|
||||
"lastActivity": new Date("2023-04-20T12:47:49.000Z"),
|
||||
"nodes": [
|
||||
{
|
||||
"name": "remote-builder0",
|
||||
"endpoint": "docker-container://buildx_buildkit_dk-remote-builder0",
|
||||
"status": "inactive"
|
||||
},
|
||||
{
|
||||
"name": "aws_graviton2",
|
||||
"endpoint": "tcp://10.0.0.1:1234",
|
||||
"driver-opts": [
|
||||
"cacert=/home/user/.certs/aws_graviton2/ca.pem",
|
||||
"cert=/home/user/.certs/aws_graviton2/cert.pem",
|
||||
"key=/home/user/.certs/aws_graviton2/key.pem"
|
||||
],
|
||||
"status": "running",
|
||||
"buildkit": "v0.11.6",
|
||||
"platforms": "darwin/arm64,linux/arm64,linux/arm/v5,linux/arm/v6,linux/arm/v7,windows/arm64",
|
||||
"labels": {
|
||||
"org.mobyproject.buildkit.worker.executor": "oci",
|
||||
"org.mobyproject.buildkit.worker.hostname": "77ebc22e2d82",
|
||||
"org.mobyproject.buildkit.worker.network": "host",
|
||||
"org.mobyproject.buildkit.worker.oci.process-mode": "sandbox",
|
||||
"org.mobyproject.buildkit.worker.selinux.enabled": "false",
|
||||
"org.mobyproject.buildkit.worker.snapshotter": "overlayfs"
|
||||
},
|
||||
"gcPolicy": [
|
||||
{
|
||||
"all": false,
|
||||
"filter": [
|
||||
"type==source.local",
|
||||
"type==exec.cachemount",
|
||||
"type==source.git.checkout"
|
||||
],
|
||||
"keepDuration": "48h0m0s",
|
||||
"keepBytes": "488.3MiB"
|
||||
},
|
||||
{
|
||||
"all": false,
|
||||
"keepDuration": "1440h0m0s",
|
||||
"keepBytes": "23.28GiB"
|
||||
},
|
||||
{
|
||||
"all": false,
|
||||
"keepBytes": "23.28GiB"
|
||||
},
|
||||
{
|
||||
"all": true,
|
||||
"keepBytes": "23.28GiB"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "linuxone_s390x",
|
||||
"endpoint": "tcp://10.0.0.2:1234",
|
||||
"driver-opts": [
|
||||
"cacert=/home/user/.certs/linuxone_s390x/ca.pem",
|
||||
"cert=/home/user/.certs/linuxone_s390x/cert.pem",
|
||||
"key=/home/user/.certs/linuxone_s390x/key.pem"
|
||||
],
|
||||
"status": "running",
|
||||
"buildkit": "v0.11.6",
|
||||
"platforms": "linux/s390x",
|
||||
"labels": {
|
||||
"org.mobyproject.buildkit.worker.executor": "oci",
|
||||
"org.mobyproject.buildkit.worker.hostname": "9d0d62a96818",
|
||||
"org.mobyproject.buildkit.worker.network": "host",
|
||||
"org.mobyproject.buildkit.worker.oci.process-mode": "sandbox",
|
||||
"org.mobyproject.buildkit.worker.selinux.enabled": "false",
|
||||
"org.mobyproject.buildkit.worker.snapshotter": "overlayfs"
|
||||
},
|
||||
"gcPolicy": [
|
||||
{
|
||||
"all": false,
|
||||
"keepBytes": "488.3MiB",
|
||||
"filter": [
|
||||
"type==source.local",
|
||||
"type==exec.cachemount",
|
||||
"type==source.git.checkout"
|
||||
],
|
||||
"keepDuration": "48h0m0s"
|
||||
},
|
||||
{
|
||||
"all": false,
|
||||
"keepDuration": "1440h0m0s",
|
||||
"keepBytes": "9.313GiB"
|
||||
},
|
||||
{
|
||||
"all": false,
|
||||
"keepBytes": "9.313GiB"
|
||||
},
|
||||
{
|
||||
"all": true,
|
||||
"keepBytes": "9.313GiB"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
}
|
||||
]
|
||||
])('given %p', async (inspectFile, expected) => {
|
||||
expect(await Builder.parseInspect(fs.readFileSync(path.join(fixturesDir, inspectFile)).toString())).toEqual(expected);
|
||||
|
||||
@@ -177,6 +177,21 @@ describe('resolveBuildSecret', () => {
|
||||
expect(e.message).toEqual(error?.message);
|
||||
}
|
||||
});
|
||||
|
||||
test.each([
|
||||
['FOO=bar', 'FOO', 'bar', null],
|
||||
['FOO=', 'FOO', '', new Error('FOO= is not a valid secret')],
|
||||
['=bar', '', '', new Error('=bar is not a valid secret')],
|
||||
['FOO=bar=baz', 'FOO', 'bar=baz', null]
|
||||
])('given %p key and %p env', async (kvp: string, exKey: string, exValue: string, error: Error | null) => {
|
||||
try {
|
||||
const secret = Inputs.resolveBuildSecretEnv(kvp);
|
||||
expect(secret).toEqual(`id=${exKey},env="${exValue}"`);
|
||||
} catch (e) {
|
||||
// eslint-disable-next-line jest/no-conditional-expect
|
||||
expect(e.message).toEqual(error?.message);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
describe('hasLocalExporter', () => {
|
||||
|
||||
@@ -36,9 +36,8 @@ afterEach(function () {
|
||||
describe('download', () => {
|
||||
// prettier-ignore
|
||||
test.each([
|
||||
['v0.9.1', false],
|
||||
['latest', false],
|
||||
['v0.9.1', true],
|
||||
['v0.9.0', false],
|
||||
['v0.10.5', true],
|
||||
['latest', true]
|
||||
])(
|
||||
'acquires %p of buildx (standalone: %p)', async (version, standalone) => {
|
||||
@@ -56,6 +55,18 @@ describe('download', () => {
|
||||
100000
|
||||
);
|
||||
|
||||
// prettier-ignore
|
||||
test.each([
|
||||
// following versions are already cached to htc from previous test cases
|
||||
['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);
|
||||
});
|
||||
|
||||
// TODO: add tests for arm
|
||||
// prettier-ignore
|
||||
test.each([
|
||||
|
||||
@@ -15,17 +15,30 @@
|
||||
*/
|
||||
|
||||
import {afterEach, beforeEach, describe, expect, it, jest} from '@jest/globals';
|
||||
import * as fs from 'fs';
|
||||
import path from 'path';
|
||||
import * as io from '@actions/io';
|
||||
import osm = require('os');
|
||||
import * as rimraf from 'rimraf';
|
||||
|
||||
import {Docker} from '../../src/docker/docker';
|
||||
import {Exec} from '../../src/exec';
|
||||
|
||||
import {ConfigFile} from '../../src/types/docker';
|
||||
|
||||
const fixturesDir = path.join(__dirname, '..', 'fixtures');
|
||||
|
||||
// prettier-ignore
|
||||
const tmpDir = path.join(process.env.TEMP || '/tmp', 'docker-jest');
|
||||
|
||||
beforeEach(() => {
|
||||
jest.clearAllMocks();
|
||||
});
|
||||
|
||||
afterEach(function () {
|
||||
rimraf.sync(tmpDir);
|
||||
});
|
||||
|
||||
describe('configDir', () => {
|
||||
const originalEnv = process.env;
|
||||
beforeEach(() => {
|
||||
@@ -48,6 +61,45 @@ describe('configDir', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('configFile', () => {
|
||||
const originalEnv = process.env;
|
||||
beforeEach(() => {
|
||||
jest.resetModules();
|
||||
if (!fs.existsSync(tmpDir)) {
|
||||
fs.mkdirSync(tmpDir, {recursive: true});
|
||||
}
|
||||
process.env = {
|
||||
...originalEnv,
|
||||
DOCKER_CONFIG: tmpDir
|
||||
};
|
||||
});
|
||||
afterEach(() => {
|
||||
process.env = originalEnv;
|
||||
});
|
||||
it('auths', async () => {
|
||||
fs.copyFileSync(path.join(fixturesDir, 'docker-config-auths.json'), path.join(tmpDir, 'config.json'));
|
||||
expect(Docker.configFile()).toEqual({
|
||||
auths: {
|
||||
'https://index.docker.io/v1/': {
|
||||
auth: 'am9lam9lOmhlbGxv',
|
||||
email: 'user@example.com'
|
||||
}
|
||||
}
|
||||
} as unknown as ConfigFile);
|
||||
});
|
||||
it('proxies', async () => {
|
||||
fs.copyFileSync(path.join(fixturesDir, 'docker-config-proxies.json'), path.join(tmpDir, 'config.json'));
|
||||
expect(Docker.configFile()).toEqual({
|
||||
proxies: {
|
||||
default: {
|
||||
httpProxy: 'http://127.0.0.1:3128',
|
||||
httpsProxy: 'http://127.0.0.1:3128'
|
||||
}
|
||||
}
|
||||
} as unknown as ConfigFile);
|
||||
});
|
||||
});
|
||||
|
||||
describe('isAvailable', () => {
|
||||
it('cli', async () => {
|
||||
const ioWhichSpy = jest.spyOn(io, 'which');
|
||||
|
||||
8
__tests__/fixtures/docker-config-auths.json
Normal file
8
__tests__/fixtures/docker-config-auths.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"auths": {
|
||||
"https://index.docker.io/v1/": {
|
||||
"auth": "am9lam9lOmhlbGxv",
|
||||
"email": "user@example.com"
|
||||
}
|
||||
}
|
||||
}
|
||||
8
__tests__/fixtures/docker-config-proxies.json
Normal file
8
__tests__/fixtures/docker-config-proxies.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"proxies": {
|
||||
"default": {
|
||||
"httpProxy": "http://127.0.0.1:3128",
|
||||
"httpsProxy": "http://127.0.0.1:3128"
|
||||
}
|
||||
}
|
||||
}
|
||||
67
__tests__/fixtures/inspect10.txt
Normal file
67
__tests__/fixtures/inspect10.txt
Normal file
@@ -0,0 +1,67 @@
|
||||
Name: remote-builder
|
||||
Driver: remote
|
||||
Last Activity: 2023-04-20 12:47:49 +0000 UTC
|
||||
|
||||
Nodes:
|
||||
Name: remote-builder0
|
||||
Endpoint: docker-container://buildx_buildkit_dk-remote-builder0
|
||||
Status: inactive
|
||||
Platforms:
|
||||
|
||||
Name: aws_graviton2
|
||||
Endpoint: tcp://10.0.0.1:1234
|
||||
Driver Options: cacert="/home/user/.certs/aws_graviton2/ca.pem" cert="/home/user/.certs/aws_graviton2/cert.pem" key="/home/user/.certs/aws_graviton2/key.pem"
|
||||
Status: running
|
||||
Buildkit: v0.11.6
|
||||
Platforms: darwin/arm64*, linux/arm64*, linux/arm/v5*, linux/arm/v6*, linux/arm/v7*, windows/arm64*
|
||||
Labels:
|
||||
org.mobyproject.buildkit.worker.executor: oci
|
||||
org.mobyproject.buildkit.worker.hostname: 77ebc22e2d82
|
||||
org.mobyproject.buildkit.worker.network: host
|
||||
org.mobyproject.buildkit.worker.oci.process-mode: sandbox
|
||||
org.mobyproject.buildkit.worker.selinux.enabled: false
|
||||
org.mobyproject.buildkit.worker.snapshotter: overlayfs
|
||||
GC Policy rule#0:
|
||||
All: false
|
||||
Filters: type==source.local,type==exec.cachemount,type==source.git.checkout
|
||||
Keep Duration: 48h0m0s
|
||||
Keep Bytes: 488.3MiB
|
||||
GC Policy rule#1:
|
||||
All: false
|
||||
Keep Duration: 1440h0m0s
|
||||
Keep Bytes: 23.28GiB
|
||||
GC Policy rule#2:
|
||||
All: false
|
||||
Keep Bytes: 23.28GiB
|
||||
GC Policy rule#3:
|
||||
All: true
|
||||
Keep Bytes: 23.28GiB
|
||||
|
||||
Name: linuxone_s390x
|
||||
Endpoint: tcp://10.0.0.2:1234
|
||||
Driver Options: cacert="/home/user/.certs/linuxone_s390x/ca.pem" cert="/home/user/.certs/linuxone_s390x/cert.pem" key="/home/user/.certs/linuxone_s390x/key.pem"
|
||||
Status: running
|
||||
Buildkit: v0.11.6
|
||||
Platforms: linux/s390x*
|
||||
Labels:
|
||||
org.mobyproject.buildkit.worker.executor: oci
|
||||
org.mobyproject.buildkit.worker.hostname: 9d0d62a96818
|
||||
org.mobyproject.buildkit.worker.network: host
|
||||
org.mobyproject.buildkit.worker.oci.process-mode: sandbox
|
||||
org.mobyproject.buildkit.worker.selinux.enabled: false
|
||||
org.mobyproject.buildkit.worker.snapshotter: overlayfs
|
||||
GC Policy rule#0:
|
||||
All: false
|
||||
Filters: type==source.local,type==exec.cachemount,type==source.git.checkout
|
||||
Keep Duration: 48h0m0s
|
||||
Keep Bytes: 488.3MiB
|
||||
GC Policy rule#1:
|
||||
All: false
|
||||
Keep Duration: 1440h0m0s
|
||||
Keep Bytes: 9.313GiB
|
||||
GC Policy rule#2:
|
||||
All: false
|
||||
Keep Bytes: 9.313GiB
|
||||
GC Policy rule#3:
|
||||
All: true
|
||||
Keep Bytes: 9.313GiB
|
||||
34
__tests__/fixtures/inspect8.txt
Normal file
34
__tests__/fixtures/inspect8.txt
Normal file
@@ -0,0 +1,34 @@
|
||||
Name: builder-52aa0611-faf0-42ac-a940-461e4e287d68
|
||||
Driver: docker-container
|
||||
Last Activity: 2023-06-13 13:52:31 +0000 UTC
|
||||
|
||||
Nodes:
|
||||
Name: builder-52aa0611-faf0-42ac-a940-461e4e287d680
|
||||
Endpoint: unix:///var/run/docker.sock
|
||||
Driver Options: image="moby/buildkit:buildx-stable-1" network="host"
|
||||
Status: running
|
||||
Flags: --debug --allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host
|
||||
Buildkit: v0.11.6
|
||||
Platforms: linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/amd64/v4, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6
|
||||
Labels:
|
||||
org.mobyproject.buildkit.worker.executor: oci
|
||||
org.mobyproject.buildkit.worker.hostname: fv-az572-38
|
||||
org.mobyproject.buildkit.worker.network: host
|
||||
org.mobyproject.buildkit.worker.oci.process-mode: sandbox
|
||||
org.mobyproject.buildkit.worker.selinux.enabled: false
|
||||
org.mobyproject.buildkit.worker.snapshotter: overlayfs
|
||||
GC Policy rule#0:
|
||||
All: false
|
||||
Filters: type==source.local,type==exec.cachemount,type==source.git.checkout
|
||||
Keep Duration: 48h0m0s
|
||||
Keep Bytes: 488.3MiB
|
||||
GC Policy rule#1:
|
||||
All: false
|
||||
Keep Duration: 1440h0m0s
|
||||
Keep Bytes: 8.382GiB
|
||||
GC Policy rule#2:
|
||||
All: false
|
||||
Keep Bytes: 8.382GiB
|
||||
GC Policy rule#3:
|
||||
All: true
|
||||
Keep Bytes: 8.382GiB
|
||||
14
__tests__/fixtures/inspect9.txt
Normal file
14
__tests__/fixtures/inspect9.txt
Normal file
@@ -0,0 +1,14 @@
|
||||
Name: default
|
||||
Driver: docker
|
||||
Last Activity: 2023-06-13 18:13:43 +0000 UTC
|
||||
|
||||
Nodes:
|
||||
Name: default
|
||||
Endpoint: default
|
||||
Status: running
|
||||
Buildkit: v0.11.7-0.20230525183624-798ad6b0ce9f
|
||||
Platforms: linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6
|
||||
GC Policy rule#0:
|
||||
All: true
|
||||
Filters:
|
||||
Keep Bytes: 100GiB
|
||||
@@ -66,9 +66,12 @@ describe('isInsideWorkTree', () => {
|
||||
});
|
||||
|
||||
describe('remoteSha', () => {
|
||||
it('returns git remote sha', async () => {
|
||||
it('returns sha using git ls-remote', async () => {
|
||||
expect(await Git.remoteSha('https://github.com/docker/buildx.git', 'refs/pull/648/head')).toEqual('f11797113e5a9b86bd976329c5dbb8a8bfdfadfa');
|
||||
});
|
||||
it('returns sha using github api', async () => {
|
||||
expect(await Git.remoteSha('https://github.com/docker/buildx.git', 'refs/pull/648/head', process.env.GITHUB_TOKEN)).toEqual('f11797113e5a9b86bd976329c5dbb8a8bfdfadfa');
|
||||
});
|
||||
});
|
||||
|
||||
describe('remoteURL', () => {
|
||||
|
||||
@@ -73,6 +73,18 @@ describe('getInputList', () => {
|
||||
expect(res).toEqual(['user/app:cache', 'type=local,src=path/to/dir']);
|
||||
});
|
||||
|
||||
it('multiline and ignoring comment correctly', async () => {
|
||||
setInput('labels', 'foo=bar\nbar=qux#baz');
|
||||
const res = Util.getInputList('labels');
|
||||
expect(res).toEqual(['foo=bar', 'bar=qux#baz']);
|
||||
});
|
||||
|
||||
it('multiline with comment', async () => {
|
||||
setInput('labels', 'foo=bar\nbar=qux#baz');
|
||||
const res = Util.getInputList('labels', {comment: '#'});
|
||||
expect(res).toEqual(['foo=bar', 'bar=qux']);
|
||||
});
|
||||
|
||||
it('different new lines and ignoring comma correctly', async () => {
|
||||
setInput('cache-from', 'user/app:cache\r\ntype=local,src=path/to/dir');
|
||||
const res = Util.getInputList('cache-from', {ignoreComma: true});
|
||||
@@ -220,6 +232,41 @@ describe('isValidRef', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('trimPrefix', () => {
|
||||
test.each([
|
||||
['', 'abc', ''],
|
||||
['abc', 'a', 'bc'],
|
||||
['abc', 'ab', 'c'],
|
||||
['abc', '', 'abc'],
|
||||
['abc', '', 'abc'],
|
||||
['abc', 'd', 'abc'],
|
||||
['abc', 'abc', ''],
|
||||
['abc', 'abcd', 'abc'],
|
||||
['abcdabc', 'abc', 'dabc'],
|
||||
['abcabc', 'abc', 'abc'],
|
||||
['abcdabc', 'd', 'abcdabc']
|
||||
])('given %p', async (str, prefix, expected) => {
|
||||
expect(Util.trimPrefix(str, prefix)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
|
||||
describe('trimSuffix', () => {
|
||||
test.each([
|
||||
['', 'abc', ''],
|
||||
['abc', 'c', 'ab'],
|
||||
['abc', '', 'abc'],
|
||||
['abc', 'bc', 'a'],
|
||||
['abc', 'abc', ''],
|
||||
['abc', 'abcd', 'abc'],
|
||||
['abc', 'aabc', 'abc'],
|
||||
['abcdabc', 'abc', 'abcd'],
|
||||
['abcabc', 'abc', 'abc'],
|
||||
['abcdabc', 'd', 'abcdabc']
|
||||
])('given %p', async (str, suffix, expected) => {
|
||||
expect(Util.trimSuffix(str, suffix)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
|
||||
// See: https://github.com/actions/toolkit/blob/a1b068ec31a042ff1e10a522d8fdf0b8869d53ca/packages/core/src/core.ts#L89
|
||||
function getInputName(name: string): string {
|
||||
return `INPUT_${name.replace(/ /g, '_').toUpperCase()}`;
|
||||
|
||||
@@ -45,23 +45,25 @@
|
||||
"registry": "https://registry.npmjs.org/"
|
||||
},
|
||||
"dependencies": {
|
||||
"@actions/cache": "^3.2.1",
|
||||
"@actions/core": "^1.10.0",
|
||||
"@actions/exec": "^1.1.1",
|
||||
"@actions/github": "^5.1.1",
|
||||
"@actions/http-client": "^2.0.1",
|
||||
"@actions/io": "^1.1.2",
|
||||
"@actions/tool-cache": "^2.0.1",
|
||||
"@octokit/plugin-rest-endpoint-methods": "^7.2.3",
|
||||
"async-retry": "^1.3.3",
|
||||
"csv-parse": "^5.3.8",
|
||||
"csv-parse": "^5.4.0",
|
||||
"handlebars": "^4.7.7",
|
||||
"jwt-decode": "^3.1.2",
|
||||
"semver": "^7.5.0",
|
||||
"semver": "^7.5.4",
|
||||
"tmp": "^0.2.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/csv-parse": "^1.2.2",
|
||||
"@types/node": "^16.18.21",
|
||||
"@types/semver": "^7.3.13",
|
||||
"@types/semver": "^7.5.0",
|
||||
"@types/tmp": "^0.2.3",
|
||||
"@typescript-eslint/eslint-plugin": "^5.56.0",
|
||||
"@typescript-eslint/parser": "^5.56.0",
|
||||
|
||||
@@ -19,7 +19,7 @@ import * as core from '@actions/core';
|
||||
import {Buildx} from './buildx';
|
||||
import {Exec} from '../exec';
|
||||
|
||||
import {BuilderInfo, NodeInfo} from '../types/builder';
|
||||
import {BuilderInfo, GCPolicy, NodeInfo} from '../types/builder';
|
||||
|
||||
export interface BuilderOpts {
|
||||
buildx?: Buildx;
|
||||
@@ -72,55 +72,73 @@ export class Builder {
|
||||
const builder: BuilderInfo = {
|
||||
nodes: []
|
||||
};
|
||||
let node: NodeInfo = {};
|
||||
let parsingType: string | undefined;
|
||||
let currentNode: NodeInfo = {};
|
||||
let currentGCPolicy: GCPolicy | undefined;
|
||||
for (const line of data.trim().split(`\n`)) {
|
||||
const [key, ...rest] = line.split(':');
|
||||
const lkey = key.toLowerCase();
|
||||
const value = rest.map(v => v.trim()).join(':');
|
||||
if (key.length == 0 || value.length == 0) {
|
||||
if (key.length == 0) {
|
||||
continue;
|
||||
}
|
||||
switch (key.toLowerCase()) {
|
||||
case 'name': {
|
||||
switch (true) {
|
||||
case lkey == 'name': {
|
||||
parsingType = undefined;
|
||||
if (builder.name == undefined) {
|
||||
builder.name = value;
|
||||
} else {
|
||||
if (Object.keys(node).length > 0) {
|
||||
builder.nodes.push(node);
|
||||
node = {};
|
||||
if (currentGCPolicy && currentNode.gcPolicy) {
|
||||
currentNode.gcPolicy.push(currentGCPolicy);
|
||||
currentGCPolicy = undefined;
|
||||
}
|
||||
node.name = value;
|
||||
if (currentNode.name) {
|
||||
builder.nodes.push(currentNode);
|
||||
}
|
||||
currentNode = {name: value};
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'driver': {
|
||||
case lkey == 'driver': {
|
||||
parsingType = undefined;
|
||||
builder.driver = value;
|
||||
break;
|
||||
}
|
||||
case 'last activity': {
|
||||
case lkey == 'last activity': {
|
||||
parsingType = undefined;
|
||||
builder.lastActivity = new Date(value);
|
||||
break;
|
||||
}
|
||||
case 'endpoint': {
|
||||
node.endpoint = value;
|
||||
case lkey == 'endpoint': {
|
||||
parsingType = undefined;
|
||||
currentNode.endpoint = value;
|
||||
break;
|
||||
}
|
||||
case 'driver options': {
|
||||
node['driver-opts'] = (value.match(/([a-zA-Z0-9_.]+)="([^"]*)"/g) || []).map(v => v.replace(/^(.*)="(.*)"$/g, '$1=$2'));
|
||||
case lkey == 'driver options': {
|
||||
parsingType = undefined;
|
||||
currentNode['driver-opts'] = (value.match(/([a-zA-Z0-9_.]+)="([^"]*)"/g) || []).map(v => v.replace(/^(.*)="(.*)"$/g, '$1=$2'));
|
||||
break;
|
||||
}
|
||||
case 'status': {
|
||||
node.status = value;
|
||||
case lkey == 'status': {
|
||||
parsingType = undefined;
|
||||
currentNode.status = value;
|
||||
break;
|
||||
}
|
||||
case 'flags': {
|
||||
node['buildkitd-flags'] = value;
|
||||
case lkey == 'flags': {
|
||||
parsingType = undefined;
|
||||
currentNode['buildkitd-flags'] = value;
|
||||
break;
|
||||
}
|
||||
case 'buildkit': {
|
||||
node.buildkit = value;
|
||||
case lkey == 'buildkit': {
|
||||
parsingType = undefined;
|
||||
currentNode.buildkit = value;
|
||||
break;
|
||||
}
|
||||
case 'platforms': {
|
||||
case lkey == 'platforms': {
|
||||
parsingType = undefined;
|
||||
if (!value) {
|
||||
break;
|
||||
}
|
||||
let platforms: Array<string> = [];
|
||||
// if a preferred platform is being set then use only these
|
||||
// https://docs.docker.com/engine/reference/commandline/buildx_inspect/#get-information-about-a-builder-instance
|
||||
@@ -134,13 +152,63 @@ export class Builder {
|
||||
// otherwise set all platforms available
|
||||
platforms = value.split(', ');
|
||||
}
|
||||
node.platforms = platforms.join(',');
|
||||
currentNode.platforms = platforms.join(',');
|
||||
break;
|
||||
}
|
||||
case lkey == 'labels': {
|
||||
parsingType = 'label';
|
||||
currentNode.labels = {};
|
||||
break;
|
||||
}
|
||||
case lkey.startsWith('gc policy rule#'): {
|
||||
parsingType = 'gcpolicy';
|
||||
if (currentNode.gcPolicy && currentGCPolicy) {
|
||||
currentNode.gcPolicy.push(currentGCPolicy);
|
||||
currentGCPolicy = undefined;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
switch (parsingType || '') {
|
||||
case 'label': {
|
||||
currentNode.labels = currentNode.labels || {};
|
||||
currentNode.labels[key.trim()] = value;
|
||||
break;
|
||||
}
|
||||
case 'gcpolicy': {
|
||||
currentNode.gcPolicy = currentNode.gcPolicy || [];
|
||||
currentGCPolicy = currentGCPolicy || {};
|
||||
switch (lkey.trim()) {
|
||||
case 'all': {
|
||||
currentGCPolicy.all = value == 'true';
|
||||
break;
|
||||
}
|
||||
case 'filters': {
|
||||
if (value) {
|
||||
currentGCPolicy.filter = value.split(',');
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'keep duration': {
|
||||
currentGCPolicy.keepDuration = value;
|
||||
break;
|
||||
}
|
||||
case 'keep bytes': {
|
||||
currentGCPolicy.keepBytes = value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (Object.keys(node).length > 0) {
|
||||
builder.nodes.push(node);
|
||||
if (currentGCPolicy && currentNode.gcPolicy) {
|
||||
currentNode.gcPolicy.push(currentGCPolicy);
|
||||
}
|
||||
if (currentNode.name) {
|
||||
builder.nodes.push(currentNode);
|
||||
}
|
||||
return builder;
|
||||
}
|
||||
|
||||
@@ -21,6 +21,18 @@ import {parse} from 'csv-parse/sync';
|
||||
|
||||
import {Context} from '../context';
|
||||
|
||||
const parseKvp = (kvp: string): [string, string] => {
|
||||
const delimiterIndex = kvp.indexOf('=');
|
||||
const key = kvp.substring(0, delimiterIndex);
|
||||
const value = kvp.substring(delimiterIndex + 1);
|
||||
|
||||
if (key.length == 0 || value.length == 0) {
|
||||
throw new Error(`${kvp} is not a valid secret`);
|
||||
}
|
||||
|
||||
return [key, value];
|
||||
};
|
||||
|
||||
export class Inputs {
|
||||
public static getBuildImageIDFilePath(): string {
|
||||
return path.join(Context.tmpDir(), 'iidfile');
|
||||
@@ -70,13 +82,17 @@ export class Inputs {
|
||||
return Inputs.resolveBuildSecret(kvp, true);
|
||||
}
|
||||
|
||||
public static resolveBuildSecretEnv(kvp: string): string {
|
||||
const [key, value] = parseKvp(kvp);
|
||||
|
||||
return `id=${key},env="${value}"`;
|
||||
}
|
||||
|
||||
public static resolveBuildSecret(kvp: string, file: boolean): string {
|
||||
const delimiterIndex = kvp.indexOf('=');
|
||||
const key = kvp.substring(0, delimiterIndex);
|
||||
let value = kvp.substring(delimiterIndex + 1);
|
||||
if (key.length == 0 || value.length == 0) {
|
||||
throw new Error(`${kvp} is not a valid secret`);
|
||||
}
|
||||
const [key, _value] = parseKvp(kvp);
|
||||
|
||||
let value = _value;
|
||||
|
||||
if (file) {
|
||||
if (!fs.existsSync(value)) {
|
||||
throw new Error(`secret file ${value} not found`);
|
||||
|
||||
@@ -14,12 +14,14 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import crypto from 'crypto';
|
||||
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 cache from '@actions/cache';
|
||||
import * as semver from 'semver';
|
||||
import * as util from 'util';
|
||||
|
||||
@@ -28,6 +30,7 @@ import {Context} from '../context';
|
||||
import {Exec} from '../exec';
|
||||
import {Docker} from '../docker/docker';
|
||||
import {Git} from '../git';
|
||||
import {Util} from '../util';
|
||||
|
||||
import {GitHubRelease} from '../types/github';
|
||||
|
||||
@@ -42,70 +45,87 @@ export class Install {
|
||||
this._standalone = opts?.standalone;
|
||||
}
|
||||
|
||||
/*
|
||||
* Download buildx binary from GitHub release
|
||||
* @param version semver version or latest
|
||||
* @returns path to the buildx binary
|
||||
*/
|
||||
public async download(version: string): Promise<string> {
|
||||
const release: GitHubRelease = await Install.getRelease(version);
|
||||
const fversion = release.tag_name.replace(/^v+|v+$/g, '');
|
||||
core.debug(`Install.download version: ${fversion}`);
|
||||
core.debug(`Install.download release tag name: ${release.tag_name}`);
|
||||
|
||||
let toolPath: string;
|
||||
toolPath = tc.find('buildx', fversion, this.platform());
|
||||
if (!toolPath) {
|
||||
const c = semver.clean(fversion) || '';
|
||||
if (!semver.valid(c)) {
|
||||
throw new Error(`Invalid Buildx version "${fversion}".`);
|
||||
}
|
||||
toolPath = await this.fetchBinary(fversion);
|
||||
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 Buildx version "${vspec}".`);
|
||||
}
|
||||
core.debug(`Install.download toolPath: ${toolPath}`);
|
||||
|
||||
return toolPath;
|
||||
const installCache = new InstallCache('buildx-dl-bin', vspec);
|
||||
|
||||
const cacheFoundPath = await installCache.find();
|
||||
if (cacheFoundPath) {
|
||||
core.info(`Buildx binary found in ${cacheFoundPath}`);
|
||||
return cacheFoundPath;
|
||||
}
|
||||
|
||||
const downloadURL = util.format('https://github.com/docker/buildx/releases/download/v%s/%s', vspec, this.filename(vspec));
|
||||
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;
|
||||
}
|
||||
|
||||
/*
|
||||
* Build buildx binary from source
|
||||
* @param gitContext git repo context
|
||||
* @returns path to the buildx binary
|
||||
*/
|
||||
public async build(gitContext: string): Promise<string> {
|
||||
// eslint-disable-next-line prefer-const
|
||||
let [repo, ref] = gitContext.split('#');
|
||||
if (ref.length == 0) {
|
||||
ref = 'master';
|
||||
const vspec = await this.vspec(gitContext);
|
||||
core.debug(`Install.build vspec: ${vspec}`);
|
||||
|
||||
const installCache = new InstallCache('buildx-build-bin', vspec);
|
||||
|
||||
const cacheFoundPath = await installCache.find();
|
||||
if (cacheFoundPath) {
|
||||
core.info(`Buildx binary found in ${cacheFoundPath}`);
|
||||
return cacheFoundPath;
|
||||
}
|
||||
|
||||
let vspec: string;
|
||||
// TODO: include full ref as fingerprint. Use commit sha as best-effort in the meantime.
|
||||
if (ref.match(/^[0-9a-fA-F]{40}$/)) {
|
||||
vspec = ref;
|
||||
} else {
|
||||
vspec = await Git.remoteSha(repo, ref);
|
||||
}
|
||||
core.debug(`Install.build: tool version spec ${vspec}`);
|
||||
const outputDir = path.join(Context.tmpDir(), 'buildx-build-cache');
|
||||
const buildCmd = await this.buildCommand(gitContext, outputDir);
|
||||
|
||||
let toolPath: string;
|
||||
toolPath = tc.find('buildx', vspec);
|
||||
if (!toolPath) {
|
||||
const outputDir = path.join(Context.tmpDir(), 'build-cache');
|
||||
const buildCmd = await this.buildCommand(gitContext, outputDir);
|
||||
toolPath = await Exec.getExecOutput(buildCmd.command, buildCmd.args, {
|
||||
ignoreReturnCode: true
|
||||
}).then(res => {
|
||||
if (res.stderr.length > 0 && res.exitCode != 0) {
|
||||
core.warning(res.stderr.trim());
|
||||
}
|
||||
return tc.cacheFile(`${outputDir}/buildx`, os.platform() == 'win32' ? 'docker-buildx.exe' : 'docker-buildx', 'buildx', vspec, this.platform());
|
||||
});
|
||||
}
|
||||
const buildBinPath = await Exec.getExecOutput(buildCmd.command, buildCmd.args, {
|
||||
ignoreReturnCode: true
|
||||
}).then(res => {
|
||||
if (res.stderr.length > 0 && res.exitCode != 0) {
|
||||
throw new Error(`build failed with: ${res.stderr.match(/(.*)\s*$/)?.[0]?.trim() ?? 'unknown error'}`);
|
||||
}
|
||||
return `${outputDir}/buildx`;
|
||||
});
|
||||
|
||||
return toolPath;
|
||||
const cacheSavePath = await installCache.save(buildBinPath);
|
||||
core.info(`Cached to ${cacheSavePath}`);
|
||||
return cacheSavePath;
|
||||
}
|
||||
|
||||
public async installStandalone(toolPath: string, dest?: string): Promise<string> {
|
||||
public async installStandalone(binPath: string, dest?: string): Promise<string> {
|
||||
core.info('Standalone mode');
|
||||
dest = dest || Context.tmpDir();
|
||||
const toolBinPath = path.join(toolPath, os.platform() == 'win32' ? 'docker-buildx.exe' : 'docker-buildx');
|
||||
const binDir = path.join(dest, 'bin');
|
||||
|
||||
const binDir = path.join(dest, 'buildx-bin-standalone');
|
||||
if (!fs.existsSync(binDir)) {
|
||||
fs.mkdirSync(binDir, {recursive: true});
|
||||
}
|
||||
const filename: string = os.platform() == 'win32' ? 'buildx.exe' : 'buildx';
|
||||
const buildxPath: string = path.join(binDir, filename);
|
||||
fs.copyFileSync(toolBinPath, buildxPath);
|
||||
const binName: string = os.platform() == 'win32' ? 'buildx.exe' : 'buildx';
|
||||
const buildxPath: string = path.join(binDir, binName);
|
||||
fs.copyFileSync(binPath, buildxPath);
|
||||
|
||||
core.info('Fixing perms');
|
||||
fs.chmodSync(buildxPath, '0755');
|
||||
@@ -117,17 +137,17 @@ export class Install {
|
||||
return buildxPath;
|
||||
}
|
||||
|
||||
public async installPlugin(toolPath: string, dest?: string): Promise<string> {
|
||||
public async installPlugin(binPath: string, dest?: string): Promise<string> {
|
||||
core.info('Docker plugin mode');
|
||||
dest = dest || Docker.configDir;
|
||||
const toolBinPath = path.join(toolPath, os.platform() == 'win32' ? 'docker-buildx.exe' : 'docker-buildx');
|
||||
|
||||
const pluginsDir: string = path.join(dest, 'cli-plugins');
|
||||
if (!fs.existsSync(pluginsDir)) {
|
||||
fs.mkdirSync(pluginsDir, {recursive: true});
|
||||
}
|
||||
const filename: string = os.platform() == 'win32' ? 'docker-buildx.exe' : 'docker-buildx';
|
||||
const pluginPath: string = path.join(pluginsDir, filename);
|
||||
fs.copyFileSync(toolBinPath, pluginPath);
|
||||
const binName: string = os.platform() == 'win32' ? 'docker-buildx.exe' : 'docker-buildx';
|
||||
const pluginPath: string = path.join(pluginsDir, binName);
|
||||
fs.copyFileSync(binPath, pluginPath);
|
||||
|
||||
core.info('Fixing perms');
|
||||
fs.chmodSync(pluginPath, '0755');
|
||||
@@ -157,14 +177,14 @@ export class Install {
|
||||
throw new Error(`Neither buildx standalone or plugin have been found to build from ref ${gitContext}`);
|
||||
}
|
||||
|
||||
const args = ['build', '--target', 'binaries', '--platform', 'local', '--build-arg', 'BUILDKIT_CONTEXT_KEEP_GIT_DIR=1', '--output', `type=local,dest=${outputDir}`];
|
||||
if (process.env.GIT_AUTH_TOKEN) {
|
||||
args.push('--secret', 'id=GIT_AUTH_TOKEN');
|
||||
}
|
||||
args.push(gitContext);
|
||||
|
||||
//prettier-ignore
|
||||
return await new Buildx({standalone: buildStandalone}).getCommand([
|
||||
'build',
|
||||
'--target', 'binaries',
|
||||
'--build-arg', 'BUILDKIT_CONTEXT_KEEP_GIT_DIR=1',
|
||||
'--output', `type=local,dest=${outputDir}`,
|
||||
gitContext
|
||||
]);
|
||||
return await new Buildx({standalone: buildStandalone}).getCommand(args);
|
||||
}
|
||||
|
||||
private async isStandalone(): Promise<boolean> {
|
||||
@@ -173,21 +193,6 @@ export class Install {
|
||||
return standalone;
|
||||
}
|
||||
|
||||
private async fetchBinary(version: string): Promise<string> {
|
||||
const targetFile: string = os.platform() == 'win32' ? 'docker-buildx.exe' : 'docker-buildx';
|
||||
const downloadURL = util.format('https://github.com/docker/buildx/releases/download/v%s/%s', version, this.filename(version));
|
||||
core.info(`Downloading ${downloadURL}`);
|
||||
const downloadPath = await tc.downloadTool(downloadURL);
|
||||
core.debug(`Install.fetchBinary downloadPath: ${downloadPath}`);
|
||||
return await tc.cacheFile(downloadPath, targetFile, 'buildx', version, this.platform());
|
||||
}
|
||||
|
||||
private platform(): string {
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
const arm_version = (process.config.variables as any).arm_version;
|
||||
return `${os.platform()}-${os.arch()}${arm_version ? 'v' + arm_version : ''}`;
|
||||
}
|
||||
|
||||
private filename(version: string): string {
|
||||
let arch: string;
|
||||
switch (os.arch()) {
|
||||
@@ -215,6 +220,39 @@ export class Install {
|
||||
return util.format('buildx-v%s.%s-%s%s', version, platform, arch, ext);
|
||||
}
|
||||
|
||||
/*
|
||||
* Get version spec (fingerprint) for cache key. If versionOrRef is a valid
|
||||
* Git context, then return the SHA of the ref along the repo and owner and
|
||||
* create a hash of it. Otherwise, return the versionOrRef (semver) as is
|
||||
* without the 'v' prefix.
|
||||
*/
|
||||
private async vspec(versionOrRef: string): Promise<string> {
|
||||
if (!Util.isValidRef(versionOrRef)) {
|
||||
const v = versionOrRef.replace(/^v+|v+$/g, '');
|
||||
core.info(`Use ${v} version spec cache key for ${versionOrRef}`);
|
||||
return v;
|
||||
}
|
||||
|
||||
// eslint-disable-next-line prefer-const
|
||||
let [baseURL, ref] = versionOrRef.split('#');
|
||||
if (ref.length == 0) {
|
||||
ref = 'master';
|
||||
}
|
||||
|
||||
let sha: string;
|
||||
if (ref.match(/^[0-9a-fA-F]{40}$/)) {
|
||||
sha = ref;
|
||||
} else {
|
||||
sha = await Git.remoteSha(baseURL, ref, process.env.GIT_AUTH_TOKEN);
|
||||
}
|
||||
|
||||
const [owner, repo] = baseURL.substring('https://github.com/'.length).split('/');
|
||||
const key = `${owner}/${Util.trimSuffix(repo, '.git')}/${sha}`;
|
||||
const hash = crypto.createHash('sha256').update(key).digest('hex');
|
||||
core.info(`Use ${hash} version spec cache key for ${key}`);
|
||||
return hash;
|
||||
}
|
||||
|
||||
public static async getRelease(version: string): Promise<GitHubRelease> {
|
||||
const url = `https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/buildx-releases.json`;
|
||||
const http: httpm.HttpClient = new httpm.HttpClient('docker-actions-toolkit');
|
||||
@@ -231,3 +269,74 @@ export class Install {
|
||||
return releases[version];
|
||||
}
|
||||
}
|
||||
|
||||
class InstallCache {
|
||||
private readonly htcName: string;
|
||||
private readonly htcVersion: string;
|
||||
private readonly ghaCacheKey: string;
|
||||
private readonly cacheDir: string;
|
||||
private readonly cacheFile: string;
|
||||
private readonly cachePath: string;
|
||||
|
||||
constructor(htcName: string, htcVersion: string) {
|
||||
this.htcName = htcName;
|
||||
this.htcVersion = htcVersion;
|
||||
this.ghaCacheKey = util.format('%s-%s-%s', this.htcName, this.htcVersion, this.platform());
|
||||
this.cacheDir = path.join(Buildx.configDir, '.bin', htcVersion, this.platform());
|
||||
this.cacheFile = os.platform() == 'win32' ? 'docker-buildx.exe' : 'docker-buildx';
|
||||
this.cachePath = path.join(this.cacheDir, this.cacheFile);
|
||||
if (!fs.existsSync(this.cacheDir)) {
|
||||
fs.mkdirSync(this.cacheDir, {recursive: true});
|
||||
}
|
||||
}
|
||||
|
||||
public async save(file: string): Promise<string> {
|
||||
core.debug(`InstallCache.save ${file}`);
|
||||
const cachePath = this.copyToCache(file);
|
||||
|
||||
const htcPath = await tc.cacheDir(this.cacheDir, this.htcName, this.htcVersion, this.platform());
|
||||
core.debug(`InstallCache.save cached to hosted tool cache ${htcPath}`);
|
||||
|
||||
if (cache.isFeatureAvailable()) {
|
||||
core.debug(`InstallCache.save caching ${this.ghaCacheKey} to GitHub Actions cache`);
|
||||
await cache.saveCache([this.cacheDir], this.ghaCacheKey);
|
||||
}
|
||||
|
||||
return cachePath;
|
||||
}
|
||||
|
||||
public async find(): Promise<string> {
|
||||
let htcPath = tc.find(this.htcName, this.htcVersion, this.platform());
|
||||
if (htcPath) {
|
||||
core.info(`Restored from hosted tool cache ${htcPath}`);
|
||||
return this.copyToCache(`${htcPath}/${this.cacheFile}`);
|
||||
}
|
||||
|
||||
if (cache.isFeatureAvailable()) {
|
||||
core.debug(`GitHub Actions cache feature available`);
|
||||
if (await cache.restoreCache([this.cacheDir], this.ghaCacheKey)) {
|
||||
core.info(`Restored ${this.ghaCacheKey} from GitHub Actions cache`);
|
||||
htcPath = await tc.cacheDir(this.cacheDir, this.htcName, this.htcVersion, this.platform());
|
||||
core.info(`Restored to hosted tool cache ${htcPath}`);
|
||||
return this.copyToCache(`${htcPath}/${this.cacheFile}`);
|
||||
}
|
||||
} else {
|
||||
core.info(`GitHub Actions cache feature not available`);
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
private copyToCache(file: string): string {
|
||||
core.debug(`Copying ${file} to ${this.cachePath}`);
|
||||
fs.copyFileSync(file, this.cachePath);
|
||||
fs.chmodSync(this.cachePath, '0755');
|
||||
return this.cachePath;
|
||||
}
|
||||
|
||||
private platform(): string {
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
const arm_version = (process.config.variables as any).arm_version;
|
||||
return `${os.platform()}-${os.arch()}${arm_version ? 'v' + arm_version : ''}`;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,17 +14,29 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import fs from 'fs';
|
||||
import os from 'os';
|
||||
import path from 'path';
|
||||
import * as core from '@actions/core';
|
||||
import * as io from '@actions/io';
|
||||
|
||||
import {Exec} from '../exec';
|
||||
|
||||
import {ConfigFile} from '../types/docker';
|
||||
|
||||
export class Docker {
|
||||
static get configDir(): string {
|
||||
return process.env.DOCKER_CONFIG || path.join(os.homedir(), '.docker');
|
||||
}
|
||||
|
||||
public static configFile(): ConfigFile | undefined {
|
||||
const f = path.join(Docker.configDir, 'config.json');
|
||||
if (!fs.existsSync(f)) {
|
||||
return undefined;
|
||||
}
|
||||
return <ConfigFile>JSON.parse(fs.readFileSync(f, {encoding: 'utf-8'}));
|
||||
}
|
||||
|
||||
public static async isAvailable(): Promise<boolean> {
|
||||
return await io
|
||||
.which('docker', true)
|
||||
|
||||
38
src/git.ts
38
src/git.ts
@@ -14,8 +14,14 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import * as core from '@actions/core';
|
||||
import {Octokit} from '@octokit/core';
|
||||
import {restEndpointMethods} from '@octokit/plugin-rest-endpoint-methods';
|
||||
|
||||
import {Exec} from './exec';
|
||||
import {GitHub} from './github';
|
||||
import {Context} from '@actions/github/lib/context';
|
||||
|
||||
import {Context as GitContext} from './types/git';
|
||||
|
||||
export class Git {
|
||||
@@ -36,7 +42,29 @@ export class Git {
|
||||
});
|
||||
}
|
||||
|
||||
public static async remoteSha(repo: string, ref: string): Promise<string> {
|
||||
public static async remoteSha(repo: string, ref: string, token?: string): Promise<string> {
|
||||
const repoMatch = repo.match(/github.com\/([^/]+)\/([^/]+?)(?:\.git)?(\/|$)/);
|
||||
// if we have a token and this is a GitHub repo we can use the GitHub API
|
||||
if (token && repoMatch) {
|
||||
core.setSecret(token);
|
||||
const octokit = new (Octokit.plugin(restEndpointMethods).defaults({
|
||||
baseUrl: GitHub.apiURL
|
||||
}))({auth: token});
|
||||
const [owner, repoName] = repoMatch.slice(1, 3);
|
||||
try {
|
||||
return (
|
||||
await octokit.rest.repos.listCommits({
|
||||
owner: owner,
|
||||
repo: repoName,
|
||||
sha: ref,
|
||||
per_page: 1
|
||||
})
|
||||
).data[0].sha;
|
||||
} catch (e) {
|
||||
throw new Error(`Cannot find remote ref for ${repo}#${ref}: ${e.message}`);
|
||||
}
|
||||
}
|
||||
// otherwise we fall back to git ls-remote
|
||||
return await Git.exec(['ls-remote', repo, ref]).then(out => {
|
||||
const [rsha] = out.split(/[\s\t]/);
|
||||
if (rsha.length == 0) {
|
||||
@@ -61,7 +89,13 @@ export class Git {
|
||||
}
|
||||
|
||||
public static async ref(): Promise<string> {
|
||||
return await Git.exec(['symbolic-ref', 'HEAD']);
|
||||
return await Git.exec(['symbolic-ref', 'HEAD']).catch(() => {
|
||||
// if it fails (for example in a detached HEAD state), falls back to
|
||||
// using git tag or describe to get the exact matching tag name.
|
||||
return Git.tag().then(tag => {
|
||||
return `refs/tags/${tag}`;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
public static async fullCommit(): Promise<string> {
|
||||
|
||||
@@ -32,4 +32,13 @@ export interface Node {
|
||||
export interface NodeInfo extends Node {
|
||||
status?: string;
|
||||
buildkit?: string;
|
||||
labels?: Record<string, string>;
|
||||
gcPolicy?: Array<GCPolicy>;
|
||||
}
|
||||
|
||||
export interface GCPolicy {
|
||||
all?: boolean;
|
||||
filter?: string[];
|
||||
keepDuration?: string;
|
||||
keepBytes?: string;
|
||||
}
|
||||
|
||||
66
src/types/docker.ts
Normal file
66
src/types/docker.ts
Normal file
@@ -0,0 +1,66 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
|
||||
// https://github.com/docker/cli/blob/master/cli/config/configfile/file.go
|
||||
export interface ConfigFile {
|
||||
auths: Record<string, AuthConfig>;
|
||||
HttpHeaders?: Record<string, string>;
|
||||
psFormat?: string;
|
||||
imagesFormat?: string;
|
||||
networksFormat?: string;
|
||||
pluginsFormat?: string;
|
||||
volumesFormat?: string;
|
||||
statsFormat?: string;
|
||||
detachKeys?: string;
|
||||
credsStore?: string;
|
||||
credHelpers?: Record<string, string>;
|
||||
serviceInspectFormat?: string;
|
||||
servicesFormat?: string;
|
||||
tasksFormat?: string;
|
||||
secretFormat?: string;
|
||||
configFormat?: string;
|
||||
nodesFormat?: string;
|
||||
pruneFilters?: string[];
|
||||
proxies?: Record<string, ProxyConfig>;
|
||||
experimental?: string;
|
||||
stackOrchestrator?: string;
|
||||
kubernetes?: KubernetesConfig;
|
||||
currentContext?: string;
|
||||
cliPluginsExtraDirs?: string[];
|
||||
plugins?: Record<string, Record<string, string>>;
|
||||
aliases?: Record<string, string>;
|
||||
}
|
||||
|
||||
export interface ProxyConfig {
|
||||
httpProxy?: string;
|
||||
httpsProxy?: string;
|
||||
noProxy?: string;
|
||||
ftpProxy?: string;
|
||||
}
|
||||
|
||||
export interface KubernetesConfig {
|
||||
allNamespaces?: string;
|
||||
}
|
||||
|
||||
export interface AuthConfig {
|
||||
username?: string;
|
||||
password?: string;
|
||||
auth?: string;
|
||||
email?: string;
|
||||
serveraddress?: string;
|
||||
identitytoken?: string;
|
||||
registrytoken?: string;
|
||||
}
|
||||
25
src/util.ts
25
src/util.ts
@@ -21,6 +21,7 @@ import {parse} from 'csv-parse/sync';
|
||||
|
||||
export interface InputListOpts {
|
||||
ignoreComma?: boolean;
|
||||
comment?: string;
|
||||
quote?: string | boolean | Buffer | null;
|
||||
}
|
||||
|
||||
@@ -36,7 +37,7 @@ export class Util {
|
||||
const records = parse(items, {
|
||||
columns: false,
|
||||
relaxQuotes: true,
|
||||
comment: '#',
|
||||
comment: opts?.comment,
|
||||
relaxColumnCount: true,
|
||||
skipEmptyLines: true,
|
||||
quote: opts?.quote
|
||||
@@ -110,4 +111,26 @@ export class Util {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static trimPrefix(str: string, suffix: string): string {
|
||||
if (!str || !suffix) {
|
||||
return str;
|
||||
}
|
||||
const index = str.indexOf(suffix);
|
||||
if (index !== 0) {
|
||||
return str;
|
||||
}
|
||||
return str.substring(suffix.length);
|
||||
}
|
||||
|
||||
public static trimSuffix(str: string, suffix: string): string {
|
||||
if (!str || !suffix) {
|
||||
return str;
|
||||
}
|
||||
const index = str.lastIndexOf(suffix);
|
||||
if (index === -1 || index + suffix.length !== str.length) {
|
||||
return str;
|
||||
}
|
||||
return str.substring(0, index);
|
||||
}
|
||||
}
|
||||
|
||||
436
yarn.lock
436
yarn.lock
@@ -5,6 +5,24 @@ __metadata:
|
||||
version: 6
|
||||
cacheKey: 8
|
||||
|
||||
"@actions/cache@npm:^3.2.1":
|
||||
version: 3.2.1
|
||||
resolution: "@actions/cache@npm:3.2.1"
|
||||
dependencies:
|
||||
"@actions/core": ^1.10.0
|
||||
"@actions/exec": ^1.0.1
|
||||
"@actions/glob": ^0.1.0
|
||||
"@actions/http-client": ^2.0.1
|
||||
"@actions/io": ^1.0.1
|
||||
"@azure/abort-controller": ^1.1.0
|
||||
"@azure/ms-rest-js": ^2.6.0
|
||||
"@azure/storage-blob": ^12.13.0
|
||||
semver: ^6.1.0
|
||||
uuid: ^3.3.3
|
||||
checksum: ff06f82cc0cfcbd1180e93db13ac066d7d08895ce8d696c83c6d16718ddc2fda538f77a8d2f899236db5b00dc97b30c9afe58ac206dde813541349b84fe840ff
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@actions/core@npm:^1.10.0, @actions/core@npm:^1.2.6":
|
||||
version: 1.10.0
|
||||
resolution: "@actions/core@npm:1.10.0"
|
||||
@@ -15,7 +33,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@actions/exec@npm:^1.0.0, @actions/exec@npm:^1.1.1":
|
||||
"@actions/exec@npm:^1.0.0, @actions/exec@npm:^1.0.1, @actions/exec@npm:^1.1.1":
|
||||
version: 1.1.1
|
||||
resolution: "@actions/exec@npm:1.1.1"
|
||||
dependencies:
|
||||
@@ -36,6 +54,16 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@actions/glob@npm:^0.1.0":
|
||||
version: 0.1.2
|
||||
resolution: "@actions/glob@npm:0.1.2"
|
||||
dependencies:
|
||||
"@actions/core": ^1.2.6
|
||||
minimatch: ^3.0.4
|
||||
checksum: 655532d35a47ccf4240d3c682f5e9591b61f07c8e382bedcf6fb4ace5b67b6cdf3043004d93d8b6e6342fb33a2e97eba3e76c8b5cc9b8ea1b89bf6857803f19a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@actions/http-client@npm:^2.0.1":
|
||||
version: 2.1.0
|
||||
resolution: "@actions/http-client@npm:2.1.0"
|
||||
@@ -85,6 +113,130 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@azure/abort-controller@npm:^1.0.0, @azure/abort-controller@npm:^1.1.0":
|
||||
version: 1.1.0
|
||||
resolution: "@azure/abort-controller@npm:1.1.0"
|
||||
dependencies:
|
||||
tslib: ^2.2.0
|
||||
checksum: 0f45e504d4aea799486867179afe7589255f6c111951279958e9d0aa5faebb2c96b8f88e3e3c958ce07b02bcba0b0cddb1bbec94705f573a48ecdb93eec1a92a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@azure/core-auth@npm:^1.1.4, @azure/core-auth@npm:^1.3.0":
|
||||
version: 1.4.0
|
||||
resolution: "@azure/core-auth@npm:1.4.0"
|
||||
dependencies:
|
||||
"@azure/abort-controller": ^1.0.0
|
||||
tslib: ^2.2.0
|
||||
checksum: 1c76c296fe911ad39fc780b033c25a92c41c5a15f011b816d42c13584f627a4dd153dfb4334900ec93eb5b006e14bdda37e8412a7697c5a9636a0abaccffad39
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@azure/core-http@npm:^3.0.0":
|
||||
version: 3.0.2
|
||||
resolution: "@azure/core-http@npm:3.0.2"
|
||||
dependencies:
|
||||
"@azure/abort-controller": ^1.0.0
|
||||
"@azure/core-auth": ^1.3.0
|
||||
"@azure/core-tracing": 1.0.0-preview.13
|
||||
"@azure/core-util": ^1.1.1
|
||||
"@azure/logger": ^1.0.0
|
||||
"@types/node-fetch": ^2.5.0
|
||||
"@types/tunnel": ^0.0.3
|
||||
form-data: ^4.0.0
|
||||
node-fetch: ^2.6.7
|
||||
process: ^0.11.10
|
||||
tslib: ^2.2.0
|
||||
tunnel: ^0.0.6
|
||||
uuid: ^8.3.0
|
||||
xml2js: ^0.5.0
|
||||
checksum: 01b5a75e09533476dbb69c672dcd00d48298cf81db5015cd261c510c5be377176db8e3dc4809e6952459bfbe214f52f8a1ed84a116ac31b8a7388b2025098f66
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@azure/core-lro@npm:^2.2.0":
|
||||
version: 2.5.3
|
||||
resolution: "@azure/core-lro@npm:2.5.3"
|
||||
dependencies:
|
||||
"@azure/abort-controller": ^1.0.0
|
||||
"@azure/core-util": ^1.2.0
|
||||
"@azure/logger": ^1.0.0
|
||||
tslib: ^2.2.0
|
||||
checksum: 443ae1884a6bc9edfeee1e62463b218a020f1be987ef755c13d5afe39803bbceb8ca9174bd516e1db9bc3f3762f71168167ea0ee9873c66e3d86a6667d5a0457
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@azure/core-paging@npm:^1.1.1":
|
||||
version: 1.5.0
|
||||
resolution: "@azure/core-paging@npm:1.5.0"
|
||||
dependencies:
|
||||
tslib: ^2.2.0
|
||||
checksum: 156230f0fdf757a0353a2aac6d012d385ed88f8ab5bccf00eee27d8d75843e681674b2d10ed43309669f9cb93bf8d9d000232896593b6fcf399fa391442a59c5
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@azure/core-tracing@npm:1.0.0-preview.13":
|
||||
version: 1.0.0-preview.13
|
||||
resolution: "@azure/core-tracing@npm:1.0.0-preview.13"
|
||||
dependencies:
|
||||
"@opentelemetry/api": ^1.0.1
|
||||
tslib: ^2.2.0
|
||||
checksum: bc3ea8dce1fc6bb6e4cb2e82ec0c361b3e6f6e18e162f352eb347e6991c6461ebc249f5d1b36402cc0d295e2a6bcbaa68014445d7f4293c0792a698c430f145e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@azure/core-util@npm:^1.1.1, @azure/core-util@npm:^1.2.0":
|
||||
version: 1.3.2
|
||||
resolution: "@azure/core-util@npm:1.3.2"
|
||||
dependencies:
|
||||
"@azure/abort-controller": ^1.0.0
|
||||
tslib: ^2.2.0
|
||||
checksum: c26053a209ed99c5b31ec54bd456155a7e602fda0b680ba326063ee42427efe60042124fbf22701397647e822bee252f77fec449e8f8100c406b8ca7168c8359
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@azure/logger@npm:^1.0.0":
|
||||
version: 1.0.4
|
||||
resolution: "@azure/logger@npm:1.0.4"
|
||||
dependencies:
|
||||
tslib: ^2.2.0
|
||||
checksum: 2c243d4c667bbc5cd3e60d4473d0f1169fcef2498a02138398af15547fe1b2870197bcb4c487327451488e4d71dee05244771d51328f03611e193b99fb9aa9af
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@azure/ms-rest-js@npm:^2.6.0":
|
||||
version: 2.6.6
|
||||
resolution: "@azure/ms-rest-js@npm:2.6.6"
|
||||
dependencies:
|
||||
"@azure/core-auth": ^1.1.4
|
||||
abort-controller: ^3.0.0
|
||||
form-data: ^2.5.0
|
||||
node-fetch: ^2.6.7
|
||||
tough-cookie: ^3.0.1
|
||||
tslib: ^1.10.0
|
||||
tunnel: 0.0.6
|
||||
uuid: ^8.3.2
|
||||
xml2js: ^0.5.0
|
||||
checksum: bd85d2df8da800c96c062a9ce26e98f72ee6fa61c9e010ec45fc3f63f9276a2668737a73dd2e19729dcfb81f22eedc7919262cc24ae5581ab4f4b526a5fcb6c1
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@azure/storage-blob@npm:^12.13.0":
|
||||
version: 12.14.0
|
||||
resolution: "@azure/storage-blob@npm:12.14.0"
|
||||
dependencies:
|
||||
"@azure/abort-controller": ^1.0.0
|
||||
"@azure/core-http": ^3.0.0
|
||||
"@azure/core-lro": ^2.2.0
|
||||
"@azure/core-paging": ^1.1.1
|
||||
"@azure/core-tracing": 1.0.0-preview.13
|
||||
"@azure/logger": ^1.0.0
|
||||
events: ^3.0.0
|
||||
tslib: ^2.2.0
|
||||
checksum: d087afd09a68342f7dcc655bf8861ffbcf84caddbfeee9ad226491a5b890fe0721a51d7221d0fc514b205a50ac153982803d89958640d2237a431b5f6b47dd6c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.14.5":
|
||||
version: 7.14.5
|
||||
resolution: "@babel/code-frame@npm:7.14.5"
|
||||
@@ -804,21 +956,23 @@ __metadata:
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@docker/actions-toolkit@workspace:."
|
||||
dependencies:
|
||||
"@actions/cache": ^3.2.1
|
||||
"@actions/core": ^1.10.0
|
||||
"@actions/exec": ^1.1.1
|
||||
"@actions/github": ^5.1.1
|
||||
"@actions/http-client": ^2.0.1
|
||||
"@actions/io": ^1.1.2
|
||||
"@actions/tool-cache": ^2.0.1
|
||||
"@octokit/plugin-rest-endpoint-methods": ^7.2.3
|
||||
"@types/csv-parse": ^1.2.2
|
||||
"@types/node": ^16.18.21
|
||||
"@types/semver": ^7.3.13
|
||||
"@types/semver": ^7.5.0
|
||||
"@types/tmp": ^0.2.3
|
||||
"@typescript-eslint/eslint-plugin": ^5.56.0
|
||||
"@typescript-eslint/parser": ^5.56.0
|
||||
async-retry: ^1.3.3
|
||||
cpy-cli: ^4.2.0
|
||||
csv-parse: ^5.3.8
|
||||
csv-parse: ^5.4.0
|
||||
dotenv: ^16.0.3
|
||||
eslint: ^8.36.0
|
||||
eslint-config-prettier: ^8.8.0
|
||||
@@ -830,7 +984,7 @@ __metadata:
|
||||
jwt-decode: ^3.1.2
|
||||
prettier: ^2.8.7
|
||||
rimraf: ^4.4.1
|
||||
semver: ^7.5.0
|
||||
semver: ^7.5.4
|
||||
tmp: ^0.2.1
|
||||
ts-jest: ^29.0.5
|
||||
ts-node: ^10.9.1
|
||||
@@ -1348,6 +1502,20 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@octokit/openapi-types@npm:^12.11.0":
|
||||
version: 12.11.0
|
||||
resolution: "@octokit/openapi-types@npm:12.11.0"
|
||||
checksum: 8a7d4bd6288cc4085cabe0ca9af2b87c875c303af932cb138aa1b2290eb69d32407759ac23707bb02776466e671244a902e9857896903443a69aff4b6b2b0e3b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@octokit/openapi-types@npm:^18.0.0":
|
||||
version: 18.0.0
|
||||
resolution: "@octokit/openapi-types@npm:18.0.0"
|
||||
checksum: d487d6c6c1965e583eee417d567e4fe3357a98953fc49bce1a88487e7908e9b5dbb3e98f60dfa340e23b1792725fbc006295aea071c5667a813b9c098185b56f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@octokit/openapi-types@npm:^7.0.0":
|
||||
version: 7.0.0
|
||||
resolution: "@octokit/openapi-types@npm:7.0.0"
|
||||
@@ -1367,14 +1535,25 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"@octokit/plugin-rest-endpoint-methods@npm:^5.13.0":
|
||||
version: 5.13.0
|
||||
resolution: "@octokit/plugin-rest-endpoint-methods@npm:5.13.0"
|
||||
version: 5.16.2
|
||||
resolution: "@octokit/plugin-rest-endpoint-methods@npm:5.16.2"
|
||||
dependencies:
|
||||
"@octokit/types": ^6.34.0
|
||||
"@octokit/types": ^6.39.0
|
||||
deprecation: ^2.3.1
|
||||
peerDependencies:
|
||||
"@octokit/core": ">=3"
|
||||
checksum: f331457e4317130adb456b27df2a99609fb54a4dc2da6f87009e567c7325680c901abf18ad08483535bab4ec1c892e4236f4135a2804603aebb12c0698c678c8
|
||||
checksum: 30fcc50c335d1093f03573d9fa3a4b7d027fc98b215c43e07e82ee8dabfa0af0cf1b963feb542312ae32d897a2f68dc671577206f30850215517bebedc5a2c73
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@octokit/plugin-rest-endpoint-methods@npm:^7.2.3":
|
||||
version: 7.2.3
|
||||
resolution: "@octokit/plugin-rest-endpoint-methods@npm:7.2.3"
|
||||
dependencies:
|
||||
"@octokit/types": ^10.0.0
|
||||
peerDependencies:
|
||||
"@octokit/core": ">=3"
|
||||
checksum: 21dfb98514dbe900c29cddb13b335bbce43d613800c6b17eba3c1fd31d17e69c1960f3067f7bf864bb38fdd5043391f4a23edee42729d8c7fbabd00569a80336
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1441,6 +1620,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@octokit/types@npm:^10.0.0":
|
||||
version: 10.0.0
|
||||
resolution: "@octokit/types@npm:10.0.0"
|
||||
dependencies:
|
||||
"@octokit/openapi-types": ^18.0.0
|
||||
checksum: 8aafba2ff0cd2435fb70c291bf75ed071c0fa8a865cf6169648732068a35dec7b85a345851f18920ec5f3e94ee0e954988485caac0da09ec3f6781cc44fe153a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@octokit/types@npm:^5.0.0, @octokit/types@npm:^5.0.1":
|
||||
version: 5.4.1
|
||||
resolution: "@octokit/types@npm:5.4.1"
|
||||
@@ -1468,6 +1656,22 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@octokit/types@npm:^6.39.0":
|
||||
version: 6.41.0
|
||||
resolution: "@octokit/types@npm:6.41.0"
|
||||
dependencies:
|
||||
"@octokit/openapi-types": ^12.11.0
|
||||
checksum: fd6f75e0b19b90d1a3d244d2b0c323ed8f2f05e474a281f60a321986683548ef2e0ec2b3a946aa9405d6092e055344455f69f58957c60f58368c8bdda5b7d2ab
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@opentelemetry/api@npm:^1.0.1":
|
||||
version: 1.4.1
|
||||
resolution: "@opentelemetry/api@npm:1.4.1"
|
||||
checksum: e783c40d1a518abf9c4c5d65223237c1392cd9a6c53ac6e2c3ef0c05ff7266e3dfc4fd9874316dae0dcb7a97950878deb513bcbadfaad653d48f0215f2a0911b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@sinclair/typebox@npm:^0.25.16":
|
||||
version: 0.25.24
|
||||
resolution: "@sinclair/typebox@npm:0.25.24"
|
||||
@@ -1633,6 +1837,16 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/node-fetch@npm:^2.5.0":
|
||||
version: 2.6.4
|
||||
resolution: "@types/node-fetch@npm:2.6.4"
|
||||
dependencies:
|
||||
"@types/node": "*"
|
||||
form-data: ^3.0.0
|
||||
checksum: f3e1d881bb42269e676ecaf49f0e096ab345e22823a2b2d071d60619414817fe02df48a31a8d05adb23054028a2a65521bdb3906ceb763ab6d3339c8d8775058
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/node@npm:*":
|
||||
version: 15.12.4
|
||||
resolution: "@types/node@npm:15.12.4"
|
||||
@@ -1668,10 +1882,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/semver@npm:^7.3.12, @types/semver@npm:^7.3.13":
|
||||
version: 7.3.13
|
||||
resolution: "@types/semver@npm:7.3.13"
|
||||
checksum: 00c0724d54757c2f4bc60b5032fe91cda6410e48689633d5f35ece8a0a66445e3e57fa1d6e07eb780f792e82ac542948ec4d0b76eb3484297b79bd18b8cf1cb0
|
||||
"@types/semver@npm:^7.3.12, @types/semver@npm:^7.5.0":
|
||||
version: 7.5.0
|
||||
resolution: "@types/semver@npm:7.5.0"
|
||||
checksum: 0a64b9b9c7424d9a467658b18dd70d1d781c2d6f033096a6e05762d20ebbad23c1b69b0083b0484722aabf35640b78ccc3de26368bcae1129c87e9df028a22e2
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1689,6 +1903,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/tunnel@npm:^0.0.3":
|
||||
version: 0.0.3
|
||||
resolution: "@types/tunnel@npm:0.0.3"
|
||||
dependencies:
|
||||
"@types/node": "*"
|
||||
checksum: 53e23a1f9fb14a491c00425b2a4fc443817564d77be5e1b95fcbeb6d009551b62ea82ffc3e5ca0c6b9f6b186824ca6ec46e7450c1bcd6674a46d1325f0116e24
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/yargs-parser@npm:*":
|
||||
version: 20.2.0
|
||||
resolution: "@types/yargs-parser@npm:20.2.0"
|
||||
@@ -1894,6 +2117,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"abort-controller@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "abort-controller@npm:3.0.0"
|
||||
dependencies:
|
||||
event-target-shim: ^5.0.0
|
||||
checksum: 170bdba9b47b7e65906a28c8ce4f38a7a369d78e2271706f020849c1bfe0ee2067d4261df8bbb66eb84f79208fd5b710df759d64191db58cfba7ce8ef9c54b75
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"acorn-jsx@npm:^5.3.2":
|
||||
version: 5.3.2
|
||||
resolution: "acorn-jsx@npm:5.3.2"
|
||||
@@ -2138,6 +2370,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"asynckit@npm:^0.4.0":
|
||||
version: 0.4.0
|
||||
resolution: "asynckit@npm:0.4.0"
|
||||
checksum: 7b78c451df768adba04e2d02e63e2d0bf3b07adcd6e42b4cf665cb7ce899bedd344c69a1dcbce355b5f972d597b25aaa1c1742b52cffd9caccb22f348114f6be
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"available-typed-arrays@npm:^1.0.5":
|
||||
version: 1.0.5
|
||||
resolution: "available-typed-arrays@npm:1.0.5"
|
||||
@@ -2531,6 +2770,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"combined-stream@npm:^1.0.6, combined-stream@npm:^1.0.8":
|
||||
version: 1.0.8
|
||||
resolution: "combined-stream@npm:1.0.8"
|
||||
dependencies:
|
||||
delayed-stream: ~1.0.0
|
||||
checksum: 49fa4aeb4916567e33ea81d088f6584749fc90c7abec76fd516bf1c5aa5c79f3584b5ba3de6b86d26ddd64bae5329c4c7479343250cfe71c75bb366eae53bb7c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"concat-map@npm:0.0.1":
|
||||
version: 0.0.1
|
||||
resolution: "concat-map@npm:0.0.1"
|
||||
@@ -2619,10 +2867,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"csv-parse@npm:*, csv-parse@npm:^5.3.8":
|
||||
version: 5.3.8
|
||||
resolution: "csv-parse@npm:5.3.8"
|
||||
checksum: 24d17fad0720d6e2ed8cf895817e5758bfcbf68350277bb9a6e58dd89797d7db626ef67aa62784b7ab3549e1a4527212ff8b4bdc5c7e66e0be2b9963162677d8
|
||||
"csv-parse@npm:*, csv-parse@npm:^5.4.0":
|
||||
version: 5.4.0
|
||||
resolution: "csv-parse@npm:5.4.0"
|
||||
checksum: e9c2f23953f628849c476adeb9f500e9c03fcfe98fea7b732366e3c2ed0b07a5e67f32ca12a0132db6eb71601c080b4935b5921296db3625a597e24caa16f633
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -2726,6 +2974,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"delayed-stream@npm:~1.0.0":
|
||||
version: 1.0.0
|
||||
resolution: "delayed-stream@npm:1.0.0"
|
||||
checksum: 46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"delegates@npm:^1.0.0":
|
||||
version: 1.0.0
|
||||
resolution: "delegates@npm:1.0.0"
|
||||
@@ -3222,6 +3477,20 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"event-target-shim@npm:^5.0.0":
|
||||
version: 5.0.1
|
||||
resolution: "event-target-shim@npm:5.0.1"
|
||||
checksum: 1ffe3bb22a6d51bdeb6bf6f7cf97d2ff4a74b017ad12284cc9e6a279e727dc30a5de6bb613e5596ff4dc3e517841339ad09a7eec44266eccb1aa201a30448166
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"events@npm:^3.0.0":
|
||||
version: 3.3.0
|
||||
resolution: "events@npm:3.3.0"
|
||||
checksum: f6f487ad2198aa41d878fa31452f1a3c00958f46e9019286ff4787c84aac329332ab45c9cdc8c445928fc6d7ded294b9e005a7fce9426488518017831b272780
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"execa@npm:^5.0.0":
|
||||
version: 5.1.1
|
||||
resolution: "execa@npm:5.1.1"
|
||||
@@ -3395,6 +3664,39 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"form-data@npm:^2.5.0":
|
||||
version: 2.5.1
|
||||
resolution: "form-data@npm:2.5.1"
|
||||
dependencies:
|
||||
asynckit: ^0.4.0
|
||||
combined-stream: ^1.0.6
|
||||
mime-types: ^2.1.12
|
||||
checksum: 5134ada56cc246b293a1ac7678dba6830000603a3979cf83ff7b2f21f2e3725202237cfb89e32bcb38a1d35727efbd3c3a22e65b42321e8ade8eec01ce755d08
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"form-data@npm:^3.0.0":
|
||||
version: 3.0.1
|
||||
resolution: "form-data@npm:3.0.1"
|
||||
dependencies:
|
||||
asynckit: ^0.4.0
|
||||
combined-stream: ^1.0.8
|
||||
mime-types: ^2.1.12
|
||||
checksum: b019e8d35c8afc14a2bd8a7a92fa4f525a4726b6d5a9740e8d2623c30e308fbb58dc8469f90415a856698933c8479b01646a9dff33c87cc4e76d72aedbbf860d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"form-data@npm:^4.0.0":
|
||||
version: 4.0.0
|
||||
resolution: "form-data@npm:4.0.0"
|
||||
dependencies:
|
||||
asynckit: ^0.4.0
|
||||
combined-stream: ^1.0.8
|
||||
mime-types: ^2.1.12
|
||||
checksum: 01135bf8675f9d5c61ff18e2e2932f719ca4de964e3be90ef4c36aacfc7b9cb2fceb5eca0b7e0190e3383fe51c5b37f4cb80b62ca06a99aaabfcfd6ac7c9328c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"fs-minipass@npm:^2.0.0, fs-minipass@npm:^2.1.0":
|
||||
version: 2.1.0
|
||||
resolution: "fs-minipass@npm:2.1.0"
|
||||
@@ -3908,6 +4210,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ip-regex@npm:^2.1.0":
|
||||
version: 2.1.0
|
||||
resolution: "ip-regex@npm:2.1.0"
|
||||
checksum: 331d95052aa53ce245745ea0fc3a6a1e2e3c8d6da65fa8ea52bf73768c1b22a9ac50629d1d2b08c04e7b3ac4c21b536693c149ce2c2615ee4796030e5b3e3cba
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ip@npm:^2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "ip@npm:2.0.0"
|
||||
@@ -4958,6 +5267,22 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"mime-db@npm:1.52.0":
|
||||
version: 1.52.0
|
||||
resolution: "mime-db@npm:1.52.0"
|
||||
checksum: 0d99a03585f8b39d68182803b12ac601d9c01abfa28ec56204fa330bc9f3d1c5e14beb049bafadb3dbdf646dfb94b87e24d4ec7b31b7279ef906a8ea9b6a513f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"mime-types@npm:^2.1.12":
|
||||
version: 2.1.35
|
||||
resolution: "mime-types@npm:2.1.35"
|
||||
dependencies:
|
||||
mime-db: 1.52.0
|
||||
checksum: 89a5b7f1def9f3af5dad6496c5ed50191ae4331cc5389d7c521c8ad28d5fdad2d06fd81baf38fed813dc4e46bb55c8145bb0ff406330818c9cf712fb2e9b3836
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"mimic-fn@npm:^2.1.0":
|
||||
version: 2.1.0
|
||||
resolution: "mimic-fn@npm:2.1.0"
|
||||
@@ -5570,6 +5895,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"process@npm:^0.11.10":
|
||||
version: 0.11.10
|
||||
resolution: "process@npm:0.11.10"
|
||||
checksum: bfcce49814f7d172a6e6a14d5fa3ac92cc3d0c3b9feb1279774708a719e19acd673995226351a082a9ae99978254e320ccda4240ddc474ba31a76c79491ca7c3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"promise-inflight@npm:^1.0.1":
|
||||
version: 1.0.1
|
||||
resolution: "promise-inflight@npm:1.0.1"
|
||||
@@ -5597,6 +5929,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"psl@npm:^1.1.28":
|
||||
version: 1.9.0
|
||||
resolution: "psl@npm:1.9.0"
|
||||
checksum: 20c4277f640c93d393130673f392618e9a8044c6c7bf61c53917a0fddb4952790f5f362c6c730a9c32b124813e173733f9895add8d26f566ed0ea0654b2e711d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"punycode@npm:^2.1.0":
|
||||
version: 2.1.1
|
||||
resolution: "punycode@npm:2.1.1"
|
||||
@@ -5604,6 +5943,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"punycode@npm:^2.1.1":
|
||||
version: 2.3.0
|
||||
resolution: "punycode@npm:2.3.0"
|
||||
checksum: 39f760e09a2a3bbfe8f5287cf733ecdad69d6af2fe6f97ca95f24b8921858b91e9ea3c9eeec6e08cede96181b3bb33f95c6ffd8c77e63986508aa2e8159fa200
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"pure-rand@npm:^6.0.0":
|
||||
version: 6.0.1
|
||||
resolution: "pure-rand@npm:6.0.1"
|
||||
@@ -5860,14 +6206,21 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"semver@npm:7.x, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.0":
|
||||
version: 7.5.0
|
||||
resolution: "semver@npm:7.5.0"
|
||||
"sax@npm:>=0.6.0":
|
||||
version: 1.2.4
|
||||
resolution: "sax@npm:1.2.4"
|
||||
checksum: d3df7d32b897a2c2f28e941f732c71ba90e27c24f62ee918bd4d9a8cfb3553f2f81e5493c7f0be94a11c1911b643a9108f231dd6f60df3fa9586b5d2e3e9e1fe
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"semver@npm:7.x, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.4":
|
||||
version: 7.5.4
|
||||
resolution: "semver@npm:7.5.4"
|
||||
dependencies:
|
||||
lru-cache: ^6.0.0
|
||||
bin:
|
||||
semver: bin/semver.js
|
||||
checksum: 2d266937756689a76f124ffb4c1ea3e1bbb2b263219f90ada8a11aebebe1280b13bb76cca2ca96bdee3dbc554cbc0b24752eb895b2a51577aa644427e9229f2b
|
||||
checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -6269,6 +6622,17 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"tough-cookie@npm:^3.0.1":
|
||||
version: 3.0.1
|
||||
resolution: "tough-cookie@npm:3.0.1"
|
||||
dependencies:
|
||||
ip-regex: ^2.1.0
|
||||
psl: ^1.1.28
|
||||
punycode: ^2.1.1
|
||||
checksum: 796f6239bce5674a1267b19f41972a2602a2a23715817237b5922b0dc2343512512eea7d41d29210a4ec545f8ef32173bbbf01277dd8ec3ae3841b19cbe69f67
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"tr46@npm:~0.0.3":
|
||||
version: 0.0.3
|
||||
resolution: "tr46@npm:0.0.3"
|
||||
@@ -6366,13 +6730,20 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"tslib@npm:^1.8.1":
|
||||
"tslib@npm:^1.10.0, tslib@npm:^1.8.1":
|
||||
version: 1.14.1
|
||||
resolution: "tslib@npm:1.14.1"
|
||||
checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"tslib@npm:^2.2.0":
|
||||
version: 2.6.0
|
||||
resolution: "tslib@npm:2.6.0"
|
||||
checksum: c01066038f950016a18106ddeca4649b4d76caa76ec5a31e2a26e10586a59fceb4ee45e96719bf6c715648e7c14085a81fee5c62f7e9ebee68e77a5396e5538f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"tsutils@npm:^3.21.0":
|
||||
version: 3.21.0
|
||||
resolution: "tsutils@npm:3.21.0"
|
||||
@@ -6384,7 +6755,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"tunnel@npm:^0.0.6":
|
||||
"tunnel@npm:0.0.6, tunnel@npm:^0.0.6":
|
||||
version: 0.0.6
|
||||
resolution: "tunnel@npm:0.0.6"
|
||||
checksum: c362948df9ad34b649b5585e54ce2838fa583aa3037091aaed66793c65b423a264e5229f0d7e9a95513a795ac2bd4cb72cda7e89a74313f182c1e9ae0b0994fa
|
||||
@@ -6535,7 +6906,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"uuid@npm:^3.3.2":
|
||||
"uuid@npm:^3.3.2, uuid@npm:^3.3.3":
|
||||
version: 3.4.0
|
||||
resolution: "uuid@npm:3.4.0"
|
||||
bin:
|
||||
@@ -6544,7 +6915,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"uuid@npm:^8.3.2":
|
||||
"uuid@npm:^8.3.0, uuid@npm:^8.3.2":
|
||||
version: 8.3.2
|
||||
resolution: "uuid@npm:8.3.2"
|
||||
bin:
|
||||
@@ -6696,6 +7067,23 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"xml2js@npm:^0.5.0":
|
||||
version: 0.5.0
|
||||
resolution: "xml2js@npm:0.5.0"
|
||||
dependencies:
|
||||
sax: ">=0.6.0"
|
||||
xmlbuilder: ~11.0.0
|
||||
checksum: 1aa71d62e5bc2d89138e3929b9ea46459157727759cbc62ef99484b778641c0cd21fb637696c052d901a22f82d092a3e740a16b4ce218e81ac59b933535124ea
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"xmlbuilder@npm:~11.0.0":
|
||||
version: 11.0.1
|
||||
resolution: "xmlbuilder@npm:11.0.1"
|
||||
checksum: 7152695e16f1a9976658215abab27e55d08b1b97bca901d58b048d2b6e106b5af31efccbdecf9b07af37c8377d8e7e821b494af10b3a68b0ff4ae60331b415b0
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"y18n@npm:^5.0.5":
|
||||
version: 5.0.8
|
||||
resolution: "y18n@npm:5.0.8"
|
||||
|
||||
Reference in New Issue
Block a user