Compare commits
31 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5430d017a5 | ||
|
|
e3bdf20325 | ||
|
|
f8ca396f63 | ||
|
|
603112bbed | ||
|
|
31a5828eff | ||
|
|
b3bb7713d9 | ||
|
|
6273173795 | ||
|
|
5fd725469f | ||
|
|
7929028d80 | ||
|
|
4995997eed | ||
|
|
348446a8d6 | ||
|
|
c8a1b7a531 | ||
|
|
911d146f5f | ||
|
|
0cc3169aa7 | ||
|
|
1de2911b5e | ||
|
|
9e9fc490d2 | ||
|
|
a45afd3161 | ||
|
|
7d829c430b | ||
|
|
ddc04994d9 | ||
|
|
b613f395b8 | ||
|
|
9e405d775a | ||
|
|
248fc44d7e | ||
|
|
e907622be4 | ||
|
|
5bc270dc53 | ||
|
|
c1ecc4b621 | ||
|
|
0a04d5661f | ||
|
|
252cfd570c | ||
|
|
2f97829cfc | ||
|
|
ea541ecec7 | ||
|
|
64a550a5dc | ||
|
|
73bb35d328 |
156
.github/buildx-lab-releases.json
vendored
156
.github/buildx-lab-releases.json
vendored
@@ -1,43 +1,125 @@
|
|||||||
{
|
{
|
||||||
"latest": {
|
"latest": {
|
||||||
"id": 123496811,
|
"id": 132264953,
|
||||||
"tag_name": "v0.11.2-desktop.5",
|
"tag_name": "v0.12.0-desktop.2",
|
||||||
"html_url": "https://github.com/docker/buildx-desktop/releases/tag/v0.11.2-desktop.5",
|
"html_url": "https://github.com/docker/buildx-desktop/releases/tag/v0.12.0-desktop.2",
|
||||||
"assets": [
|
"assets": [
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.darwin-amd64",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.darwin-amd64",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.darwin-amd64.provenance.json",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.darwin-amd64.provenance.json",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.darwin-amd64.sbom.json",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.darwin-amd64.sbom.json",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.darwin-arm64",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.darwin-arm64",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.darwin-arm64.provenance.json",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.darwin-arm64.provenance.json",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.darwin-arm64.sbom.json",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.darwin-arm64.sbom.json",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.linux-amd64",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-amd64",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.linux-amd64.provenance.json",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-amd64.provenance.json",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.linux-amd64.sbom.json",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-amd64.sbom.json",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.linux-arm-v6",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-arm-v6",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.linux-arm-v6.provenance.json",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-arm-v6.provenance.json",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.linux-arm-v6.sbom.json",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-arm-v6.sbom.json",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.linux-arm-v7",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-arm-v7",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.linux-arm-v7.provenance.json",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-arm-v7.provenance.json",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.linux-arm-v7.sbom.json",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-arm-v7.sbom.json",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.linux-arm64",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-arm64",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.linux-arm64.provenance.json",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-arm64.provenance.json",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.linux-arm64.sbom.json",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-arm64.sbom.json",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.linux-ppc64le",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-ppc64le",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.linux-ppc64le.provenance.json",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-ppc64le.provenance.json",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.linux-ppc64le.sbom.json",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-ppc64le.sbom.json",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.linux-riscv64",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-riscv64",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.linux-riscv64.provenance.json",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-riscv64.provenance.json",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.linux-riscv64.sbom.json",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-riscv64.sbom.json",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.linux-s390x",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-s390x",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.linux-s390x.provenance.json",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-s390x.provenance.json",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.linux-s390x.sbom.json",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-s390x.sbom.json",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.windows-amd64.exe",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.windows-amd64.exe",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.windows-amd64.provenance.json",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.windows-amd64.provenance.json",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.windows-amd64.sbom.json",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.windows-amd64.sbom.json",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.windows-arm64.exe",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.windows-arm64.exe",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.windows-arm64.provenance.json",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.windows-arm64.provenance.json",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/buildx-v0.11.2-desktop.5.windows-arm64.sbom.json",
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.windows-arm64.sbom.json",
|
||||||
"https://github.com/docker/buildx-desktop/releases/download/v0.11.2-desktop.5/checksums.txt"
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/checksums.txt"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"v0.12.0-desktop.2": {
|
||||||
|
"id": 132264953,
|
||||||
|
"tag_name": "v0.12.0-desktop.2",
|
||||||
|
"html_url": "https://github.com/docker/buildx-desktop/releases/tag/v0.12.0-desktop.2",
|
||||||
|
"assets": [
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.darwin-amd64",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.darwin-amd64.provenance.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.darwin-amd64.sbom.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.darwin-arm64",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.darwin-arm64.provenance.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.darwin-arm64.sbom.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-amd64",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-amd64.provenance.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-amd64.sbom.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-arm-v6",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-arm-v6.provenance.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-arm-v6.sbom.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-arm-v7",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-arm-v7.provenance.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-arm-v7.sbom.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-arm64",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-arm64.provenance.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-arm64.sbom.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-ppc64le",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-ppc64le.provenance.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-ppc64le.sbom.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-riscv64",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-riscv64.provenance.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-riscv64.sbom.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-s390x",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-s390x.provenance.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.linux-s390x.sbom.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.windows-amd64.exe",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.windows-amd64.provenance.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.windows-amd64.sbom.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.windows-arm64.exe",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.windows-arm64.provenance.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/buildx-v0.12.0-desktop.2.windows-arm64.sbom.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.2/checksums.txt"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"v0.12.0-desktop.1": {
|
||||||
|
"id": 130699107,
|
||||||
|
"tag_name": "v0.12.0-desktop.1",
|
||||||
|
"html_url": "https://github.com/docker/buildx-desktop/releases/tag/v0.12.0-desktop.1",
|
||||||
|
"assets": [
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.darwin-amd64",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.darwin-amd64.provenance.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.darwin-amd64.sbom.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.darwin-arm64",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.darwin-arm64.provenance.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.darwin-arm64.sbom.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.linux-amd64",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.linux-amd64.provenance.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.linux-amd64.sbom.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.linux-arm-v6",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.linux-arm-v6.provenance.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.linux-arm-v6.sbom.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.linux-arm-v7",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.linux-arm-v7.provenance.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.linux-arm-v7.sbom.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.linux-arm64",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.linux-arm64.provenance.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.linux-arm64.sbom.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.linux-ppc64le",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.linux-ppc64le.provenance.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.linux-ppc64le.sbom.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.linux-riscv64",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.linux-riscv64.provenance.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.linux-riscv64.sbom.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.linux-s390x",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.linux-s390x.provenance.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.linux-s390x.sbom.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.windows-amd64.exe",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.windows-amd64.provenance.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.windows-amd64.sbom.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.windows-arm64.exe",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.windows-arm64.provenance.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/buildx-v0.12.0-desktop.1.windows-arm64.sbom.json",
|
||||||
|
"https://github.com/docker/buildx-desktop/releases/download/v0.12.0-desktop.1/checksums.txt"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"v0.11.2-desktop.5": {
|
"v0.11.2-desktop.5": {
|
||||||
|
|||||||
115
.github/buildx-releases.json
vendored
115
.github/buildx-releases.json
vendored
@@ -1,43 +1,84 @@
|
|||||||
{
|
{
|
||||||
"latest": {
|
"latest": {
|
||||||
"id": 112690624,
|
"id": 129855827,
|
||||||
"tag_name": "v0.11.2",
|
"tag_name": "v0.12.0",
|
||||||
"html_url": "https://github.com/docker/buildx/releases/tag/v0.11.2",
|
"html_url": "https://github.com/docker/buildx/releases/tag/v0.12.0",
|
||||||
"assets": [
|
"assets": [
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.darwin-amd64",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.darwin-amd64",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.darwin-amd64.provenance.json",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.darwin-amd64.provenance.json",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.darwin-amd64.sbom.json",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.darwin-amd64.sbom.json",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.darwin-arm64",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.darwin-arm64",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.darwin-arm64.provenance.json",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.darwin-arm64.provenance.json",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.darwin-arm64.sbom.json",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.darwin-arm64.sbom.json",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-amd64",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-amd64",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-amd64.provenance.json",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-amd64.provenance.json",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-amd64.sbom.json",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-amd64.sbom.json",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-arm-v6",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-arm-v6",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-arm-v6.provenance.json",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-arm-v6.provenance.json",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-arm-v6.sbom.json",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-arm-v6.sbom.json",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-arm-v7",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-arm-v7",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-arm-v7.provenance.json",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-arm-v7.provenance.json",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-arm-v7.sbom.json",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-arm-v7.sbom.json",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-arm64",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-arm64",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-arm64.provenance.json",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-arm64.provenance.json",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-arm64.sbom.json",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-arm64.sbom.json",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-ppc64le",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-ppc64le",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-ppc64le.provenance.json",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-ppc64le.provenance.json",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-ppc64le.sbom.json",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-ppc64le.sbom.json",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-riscv64",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-riscv64",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-riscv64.provenance.json",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-riscv64.provenance.json",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-riscv64.sbom.json",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-riscv64.sbom.json",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-s390x",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-s390x",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-s390x.provenance.json",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-s390x.provenance.json",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-s390x.sbom.json",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-s390x.sbom.json",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.windows-amd64.exe",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.windows-amd64.exe",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.windows-amd64.provenance.json",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.windows-amd64.provenance.json",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.windows-amd64.sbom.json",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.windows-amd64.sbom.json",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.windows-arm64.exe",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.windows-arm64.exe",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.windows-arm64.provenance.json",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.windows-arm64.provenance.json",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.windows-arm64.sbom.json",
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.windows-arm64.sbom.json",
|
||||||
"https://github.com/docker/buildx/releases/download/v0.11.2/checksums.txt"
|
"https://github.com/docker/buildx/releases/download/v0.12.0/checksums.txt"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"v0.12.0": {
|
||||||
|
"id": 129855827,
|
||||||
|
"tag_name": "v0.12.0",
|
||||||
|
"html_url": "https://github.com/docker/buildx/releases/tag/v0.12.0",
|
||||||
|
"assets": [
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.darwin-amd64",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.darwin-amd64.provenance.json",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.darwin-amd64.sbom.json",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.darwin-arm64",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.darwin-arm64.provenance.json",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.darwin-arm64.sbom.json",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-amd64",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-amd64.provenance.json",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-amd64.sbom.json",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-arm-v6",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-arm-v6.provenance.json",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-arm-v6.sbom.json",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-arm-v7",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-arm-v7.provenance.json",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-arm-v7.sbom.json",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-arm64",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-arm64.provenance.json",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-arm64.sbom.json",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-ppc64le",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-ppc64le.provenance.json",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-ppc64le.sbom.json",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-riscv64",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-riscv64.provenance.json",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-riscv64.sbom.json",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-s390x",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-s390x.provenance.json",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.linux-s390x.sbom.json",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.windows-amd64.exe",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.windows-amd64.provenance.json",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.windows-amd64.sbom.json",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.windows-arm64.exe",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.windows-arm64.provenance.json",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/buildx-v0.12.0.windows-arm64.sbom.json",
|
||||||
|
"https://github.com/docker/buildx/releases/download/v0.12.0/checksums.txt"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"v0.12.0-rc2": {
|
"v0.12.0-rc2": {
|
||||||
|
|||||||
18
.github/docker-releases.json
vendored
18
.github/docker-releases.json
vendored
@@ -5,6 +5,24 @@
|
|||||||
"html_url": "https://github.com/moby/moby/releases/tag/v24.0.7",
|
"html_url": "https://github.com/moby/moby/releases/tag/v24.0.7",
|
||||||
"assets": []
|
"assets": []
|
||||||
},
|
},
|
||||||
|
"v25.0.0-beta.2": {
|
||||||
|
"id": 133659834,
|
||||||
|
"tag_name": "v25.0.0-beta.2",
|
||||||
|
"html_url": "https://github.com/moby/moby/releases/tag/v25.0.0-beta.2",
|
||||||
|
"assets": []
|
||||||
|
},
|
||||||
|
"v23.0.8": {
|
||||||
|
"id": 132317923,
|
||||||
|
"tag_name": "v23.0.8",
|
||||||
|
"html_url": "https://github.com/moby/moby/releases/tag/v23.0.8",
|
||||||
|
"assets": []
|
||||||
|
},
|
||||||
|
"v20.10.27": {
|
||||||
|
"id": 132318746,
|
||||||
|
"tag_name": "v20.10.27",
|
||||||
|
"html_url": "https://github.com/moby/moby/releases/tag/v20.10.27",
|
||||||
|
"assets": []
|
||||||
|
},
|
||||||
"v25.0.0-beta.1": {
|
"v25.0.0-beta.1": {
|
||||||
"id": 129244747,
|
"id": 129244747,
|
||||||
"tag_name": "v25.0.0-beta.1",
|
"tag_name": "v25.0.0-beta.1",
|
||||||
|
|||||||
6
.github/workflows/codeql.yml
vendored
6
.github/workflows/codeql.yml
vendored
@@ -28,14 +28,14 @@ jobs:
|
|||||||
node-version: ${{ env.NODE_VERSION }}
|
node-version: ${{ env.NODE_VERSION }}
|
||||||
-
|
-
|
||||||
name: Initialize CodeQL
|
name: Initialize CodeQL
|
||||||
uses: github/codeql-action/init@v2
|
uses: github/codeql-action/init@v3
|
||||||
with:
|
with:
|
||||||
languages: javascript-typescript
|
languages: javascript-typescript
|
||||||
-
|
-
|
||||||
name: Autobuild
|
name: Autobuild
|
||||||
uses: github/codeql-action/autobuild@v2
|
uses: github/codeql-action/autobuild@v3
|
||||||
-
|
-
|
||||||
name: Perform CodeQL Analysis
|
name: Perform CodeQL Analysis
|
||||||
uses: github/codeql-action/analyze@v2
|
uses: github/codeql-action/analyze@v3
|
||||||
with:
|
with:
|
||||||
category: "/language:javascript-typescript"
|
category: "/language:javascript-typescript"
|
||||||
|
|||||||
@@ -29,8 +29,9 @@ describe('install', () => {
|
|||||||
jest.resetModules();
|
jest.resetModules();
|
||||||
process.env = {
|
process.env = {
|
||||||
...originalEnv,
|
...originalEnv,
|
||||||
SIGN_QEMU_BINARY: '1',
|
LIMA_START_ARGS: '--cpus 4 --memory 8',
|
||||||
COLIMA_START_ARGS: '--cpu 4 --memory 8 --disk 32'
|
LIMA_IMAGES: `x86_64:https://cloud.debian.org/images/cloud/bookworm/20231013-1532/debian-12-genericcloud-amd64-20231013-1532.qcow2@sha512:6b55e88b027c14da1b55c85a25a9f7069d4560a8fdb2d948c986a585db469728a06d2c528303e34bb62d8b2984def38fd9ddfc00965846ff6e05b01d6e883bfe
|
||||||
|
aarch64:https://cloud.debian.org/images/cloud/bookworm/20231013-1532/debian-12-genericcloud-arm64-20231013-1532.qcow2`
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
afterEach(() => {
|
afterEach(() => {
|
||||||
|
|||||||
@@ -71,3 +71,32 @@ describe('getRelease', () => {
|
|||||||
await expect(Install.getRelease('foo')).rejects.toThrow(new Error('Cannot find Docker release foo in https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/docker-releases.json'));
|
await expect(Install.getRelease('foo')).rejects.toThrow(new Error('Cannot find Docker release foo in https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/docker-releases.json'));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('limaImage', () => {
|
||||||
|
const originalEnv = process.env;
|
||||||
|
beforeEach(() => {
|
||||||
|
jest.resetModules();
|
||||||
|
process.env = {
|
||||||
|
...originalEnv,
|
||||||
|
LIMA_IMAGES: `x86_64:https://cloud-images.ubuntu.com/releases/23.10/release-20231011/ubuntu-23.10-server-cloudimg-amd64.img@sha256:f6529be56da3429a56e4f5ef202bf4958201bc63f8541e478caa6e8eb712e635
|
||||||
|
aarch64:https://cloud-images.ubuntu.com/releases/23.10/release-20231011/ubuntu-23.10-server-cloudimg-arm64.img`
|
||||||
|
};
|
||||||
|
});
|
||||||
|
afterEach(() => {
|
||||||
|
process.env = originalEnv;
|
||||||
|
});
|
||||||
|
it('returns custom images', async () => {
|
||||||
|
expect(Install.limaCustomImages()).toEqual([
|
||||||
|
{
|
||||||
|
location: 'https://cloud-images.ubuntu.com/releases/23.10/release-20231011/ubuntu-23.10-server-cloudimg-amd64.img',
|
||||||
|
arch: 'x86_64',
|
||||||
|
digest: 'sha256:f6529be56da3429a56e4f5ef202bf4958201bc63f8541e478caa6e8eb712e635'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
location: 'https://cloud-images.ubuntu.com/releases/23.10/release-20231011/ubuntu-23.10-server-cloudimg-arm64.img',
|
||||||
|
arch: 'aarch64',
|
||||||
|
digest: ''
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|||||||
@@ -141,6 +141,76 @@ describe('ref', () => {
|
|||||||
expect(ref).toEqual('refs/tags/8.0.0');
|
expect(ref).toEqual('refs/tags/8.0.0');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('returns mocked detached tag ref (shallow clone)', async () => {
|
||||||
|
jest.spyOn(Exec, 'getExecOutput').mockImplementation((cmd, args): Promise<ExecOutput> => {
|
||||||
|
const fullCmd = `${cmd} ${args?.join(' ')}`;
|
||||||
|
let result = '';
|
||||||
|
switch (fullCmd) {
|
||||||
|
case 'git branch --show-current':
|
||||||
|
result = '';
|
||||||
|
break;
|
||||||
|
case 'git show -s --pretty=%D':
|
||||||
|
result = 'grafted, HEAD, tag: 8.0.0';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return Promise.resolve({
|
||||||
|
stdout: result,
|
||||||
|
stderr: '',
|
||||||
|
exitCode: 0
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
const ref = await Git.ref();
|
||||||
|
|
||||||
|
expect(ref).toEqual('refs/tags/8.0.0');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('returns mocked detached pull request merge ref (shallow clone)', async () => {
|
||||||
|
jest.spyOn(Exec, 'getExecOutput').mockImplementation((cmd, args): Promise<ExecOutput> => {
|
||||||
|
const fullCmd = `${cmd} ${args?.join(' ')}`;
|
||||||
|
let result = '';
|
||||||
|
switch (fullCmd) {
|
||||||
|
case 'git branch --show-current':
|
||||||
|
result = '';
|
||||||
|
break;
|
||||||
|
case 'git show -s --pretty=%D':
|
||||||
|
result = 'grafted, HEAD, pull/221/merge';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return Promise.resolve({
|
||||||
|
stdout: result,
|
||||||
|
stderr: '',
|
||||||
|
exitCode: 0
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
const ref = await Git.ref();
|
||||||
|
|
||||||
|
expect(ref).toEqual('refs/pull/221/merge');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should throws an error when detached HEAD ref is not supported', async () => {
|
||||||
|
jest.spyOn(Exec, 'getExecOutput').mockImplementation((cmd, args): Promise<ExecOutput> => {
|
||||||
|
const fullCmd = `${cmd} ${args?.join(' ')}`;
|
||||||
|
let result = '';
|
||||||
|
switch (fullCmd) {
|
||||||
|
case 'git branch --show-current':
|
||||||
|
result = '';
|
||||||
|
break;
|
||||||
|
case 'git show -s --pretty=%D':
|
||||||
|
result = 'wrong, HEAD, tag: 8.0.0';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return Promise.resolve({
|
||||||
|
stdout: result,
|
||||||
|
stderr: '',
|
||||||
|
exitCode: 0
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
await expect(Git.ref()).rejects.toThrow('Cannot find detached HEAD ref in "wrong, HEAD, tag: 8.0.0"');
|
||||||
|
});
|
||||||
|
|
||||||
it('returns mocked detached branch ref', async () => {
|
it('returns mocked detached branch ref', async () => {
|
||||||
jest.spyOn(Exec, 'getExecOutput').mockImplementation((cmd, args): Promise<ExecOutput> => {
|
jest.spyOn(Exec, 'getExecOutput').mockImplementation((cmd, args): Promise<ExecOutput> => {
|
||||||
const fullCmd = `${cmd} ${args?.join(' ')}`;
|
const fullCmd = `${cmd} ${args?.join(' ')}`;
|
||||||
|
|||||||
@@ -52,12 +52,11 @@
|
|||||||
"@actions/http-client": "^2.2.0",
|
"@actions/http-client": "^2.2.0",
|
||||||
"@actions/io": "^1.1.3",
|
"@actions/io": "^1.1.3",
|
||||||
"@actions/tool-cache": "^2.0.1",
|
"@actions/tool-cache": "^2.0.1",
|
||||||
"@octokit/core": "^5.0.1",
|
"@octokit/core": "^5.0.2",
|
||||||
"@octokit/plugin-rest-endpoint-methods": "^10.1.5",
|
"@octokit/plugin-rest-endpoint-methods": "^10.2.0",
|
||||||
"async-retry": "^1.3.3",
|
"async-retry": "^1.3.3",
|
||||||
"csv-parse": "^5.5.2",
|
"csv-parse": "^5.5.3",
|
||||||
"handlebars": "^4.7.8",
|
"handlebars": "^4.7.8",
|
||||||
"js-yaml": "^4.1.0",
|
|
||||||
"jwt-decode": "^4.0.0",
|
"jwt-decode": "^4.0.0",
|
||||||
"semver": "^7.5.4",
|
"semver": "^7.5.4",
|
||||||
"tmp": "^0.2.1"
|
"tmp": "^0.2.1"
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ export const dockerServiceLogsPs1 = (): string => {
|
|||||||
return get('docker-service-logs.ps1', dockerServiceLogsPs1Data);
|
return get('docker-service-logs.ps1', dockerServiceLogsPs1Data);
|
||||||
};
|
};
|
||||||
|
|
||||||
export const colimaYaml = (): string => {
|
export const limaYaml = (): string => {
|
||||||
return get('colima.yaml', colimaYamlData);
|
return get('lima.yaml', limaYamlData);
|
||||||
};
|
};
|
||||||
|
|
||||||
const get = (filename: string, data: string, mode?: string): string => {
|
const get = (filename: string, data: string, mode?: string): string => {
|
||||||
@@ -128,174 +128,127 @@ Get-WinEvent -ea SilentlyContinue \`
|
|||||||
ForEach-Object {"$($_.TimeCreated.ToUniversalTime().ToString("o")) [$($_.LevelDisplayName)] $($_.Message)"}
|
ForEach-Object {"$($_.TimeCreated.ToUniversalTime().ToString("o")) [$($_.LevelDisplayName)] $($_.Message)"}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
export const colimaYamlData = `
|
export const limaYamlData = `
|
||||||
# Number of CPUs to be allocated to the virtual machine.
|
# VM type: "qemu" or "vz" (on macOS 13 and later).
|
||||||
# Default: 2
|
# The vmType can be specified only on creating the instance.
|
||||||
cpu: 2
|
# The vmType of existing instances cannot be changed.
|
||||||
|
# Builtin default: "qemu"
|
||||||
# Size of the disk in GiB to be allocated to the virtual machine.
|
|
||||||
# NOTE: changing this has no effect after the virtual machine has been created.
|
|
||||||
# Default: 60
|
|
||||||
disk: 60
|
|
||||||
|
|
||||||
# Size of the memory in GiB to be allocated to the virtual machine.
|
|
||||||
# Default: 2
|
|
||||||
memory: 2
|
|
||||||
|
|
||||||
# Architecture of the virtual machine (x86_64, aarch64, host).
|
|
||||||
# Default: host
|
|
||||||
arch: host
|
|
||||||
|
|
||||||
# Container runtime to be used (docker, containerd).
|
|
||||||
# Default: docker
|
|
||||||
runtime: docker
|
|
||||||
|
|
||||||
# Kubernetes configuration for the virtual machine.
|
|
||||||
kubernetes:
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
# Auto-activate on the Host for client access.
|
|
||||||
# Setting to true does the following on startup
|
|
||||||
# - sets as active Docker context (for Docker runtime).
|
|
||||||
# - sets as active Kubernetes context (if Kubernetes is enabled).
|
|
||||||
# Default: true
|
|
||||||
autoActivate: false
|
|
||||||
|
|
||||||
# Network configurations for the virtual machine.
|
|
||||||
network:
|
|
||||||
# Assign reachable IP address to the virtual machine.
|
|
||||||
# NOTE: this is currently macOS only and ignored on Linux.
|
|
||||||
# Default: false
|
|
||||||
address: false
|
|
||||||
|
|
||||||
# Custom DNS resolvers for the virtual machine.
|
|
||||||
#
|
|
||||||
# EXAMPLE
|
|
||||||
# dns: [8.8.8.8, 1.1.1.1]
|
|
||||||
#
|
|
||||||
# Default: []
|
|
||||||
dns: []
|
|
||||||
|
|
||||||
# DNS hostnames to resolve to custom targets using the internal resolver.
|
|
||||||
# This setting has no effect if a custom DNS resolver list is supplied above.
|
|
||||||
# It does not configure the /etc/hosts files of any machine or container.
|
|
||||||
# The value can be an IP address or another host.
|
|
||||||
#
|
|
||||||
# EXAMPLE
|
|
||||||
# dnsHosts:
|
|
||||||
# example.com: 1.2.3.4
|
|
||||||
dnsHosts:
|
|
||||||
host.docker.internal: host.lima.internal
|
|
||||||
|
|
||||||
# Forward the host's SSH agent to the virtual machine.
|
|
||||||
# Default: false
|
|
||||||
forwardAgent: false
|
|
||||||
|
|
||||||
# Docker daemon configuration that maps directly to daemon.json.
|
|
||||||
# https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file.
|
|
||||||
# NOTE: some settings may affect Colima's ability to start docker. e.g. \`hosts\`.
|
|
||||||
#
|
|
||||||
# EXAMPLE - disable buildkit
|
|
||||||
# docker:
|
|
||||||
# features:
|
|
||||||
# buildkit: false
|
|
||||||
#
|
|
||||||
# EXAMPLE - add insecure registries
|
|
||||||
# docker:
|
|
||||||
# insecure-registries:
|
|
||||||
# - myregistry.com:5000
|
|
||||||
# - host.docker.internal:5000
|
|
||||||
#
|
|
||||||
# Colima default behaviour: buildkit enabled
|
|
||||||
# Default: {}
|
|
||||||
{{daemonConfig}}
|
|
||||||
|
|
||||||
# Virtual Machine type (qemu, vz)
|
|
||||||
# NOTE: this is macOS 13 only. For Linux and macOS <13.0, qemu is always used.
|
|
||||||
#
|
|
||||||
# vz is macOS virtualization framework and requires macOS 13
|
|
||||||
#
|
|
||||||
# Default: qemu
|
|
||||||
vmType: qemu
|
vmType: qemu
|
||||||
|
|
||||||
# Volume mount driver for the virtual machine (virtiofs, 9p, sshfs).
|
# OS: "Linux".
|
||||||
#
|
# Builtin default: "Linux"
|
||||||
# virtiofs is limited to macOS and vmType \`vz\`. It is the fastest of the options.
|
os: null
|
||||||
#
|
|
||||||
# 9p is the recommended and the most stable option for vmType \`qemu\`.
|
|
||||||
#
|
|
||||||
# sshfs is faster than 9p but the least reliable of the options (when there are lots
|
|
||||||
# of concurrent reads or writes).
|
|
||||||
#
|
|
||||||
# Default: virtiofs (for vz), sshfs (for qemu)
|
|
||||||
mountType: 9p
|
|
||||||
|
|
||||||
# The CPU type for the virtual machine (requires vmType \`qemu\`).
|
# Arch: "default", "x86_64", "aarch64".
|
||||||
# Options available for host emulation can be checked with: \`qemu-system-$(arch) -cpu help\`.
|
# Builtin default: "default" (corresponds to the host architecture)
|
||||||
# Instructions are also supported by appending to the cpu type e.g. "qemu64,+ssse3".
|
arch: null
|
||||||
# Default: host
|
|
||||||
cpuType: host
|
images:
|
||||||
|
{{#each customImages}}
|
||||||
|
- location: "{{location}}"
|
||||||
|
arch: "{{arch}}"
|
||||||
|
digest: "{{digest}}"
|
||||||
|
{{/each}}
|
||||||
|
- location: "https://cloud-images.ubuntu.com/releases/22.04/release-20231026/ubuntu-22.04-server-cloudimg-amd64.img"
|
||||||
|
arch: "x86_64"
|
||||||
|
digest: "sha256:054db2d88c454bb0ad8dfd8883955e3946b57d2b0bf0d023f3ade3c93cdd14e5"
|
||||||
|
- location: "https://cloud-images.ubuntu.com/releases/22.04/release-20231026/ubuntu-22.04-server-cloudimg-arm64.img"
|
||||||
|
arch: "aarch64"
|
||||||
|
digest: "sha256:eafa7742ce5ff109222ea313d31ea366d587b4e89b900b11d8285ae775dfe8c3"
|
||||||
|
|
||||||
|
# CPUs
|
||||||
|
# Builtin default: min(4, host CPU cores)
|
||||||
|
cpus: null
|
||||||
|
|
||||||
|
# Memory size
|
||||||
|
# Builtin default: min("4GiB", half of host memory)
|
||||||
|
memory: null
|
||||||
|
|
||||||
|
# Disk size
|
||||||
|
# Builtin default: "100GiB"
|
||||||
|
disk: 60GiB
|
||||||
|
|
||||||
|
# Expose host directories to the guest, the mount point might be accessible from all UIDs in the guest
|
||||||
|
# Builtin default: null (Mount nothing)
|
||||||
|
# This file: Mount the home as read-only, /tmp/lima as writable
|
||||||
|
mounts:
|
||||||
|
- location: "~"
|
||||||
|
- location: "/tmp/lima"
|
||||||
|
writable: true
|
||||||
|
|
||||||
|
# Mount type for above mounts, such as "reverse-sshfs" (from sshocker), "9p" (EXPERIMENTAL, from QEMU’s virtio-9p-pci, aka virtfs),
|
||||||
|
# or "virtiofs" (EXPERIMENTAL, needs \`vmType: vz\`)
|
||||||
|
# Builtin default: "reverse-sshfs" (for QEMU), "virtiofs" (for vz)
|
||||||
|
mountType: null
|
||||||
|
|
||||||
|
containerd:
|
||||||
|
system: false
|
||||||
|
user: false
|
||||||
|
|
||||||
# Custom provision scripts for the virtual machine.
|
|
||||||
# Provisioning scripts are executed on startup and therefore needs to be idempotent.
|
|
||||||
#
|
|
||||||
# EXAMPLE - script exected as root
|
|
||||||
# provision:
|
|
||||||
# - mode: system
|
|
||||||
# script: apk add htop vim
|
|
||||||
#
|
|
||||||
# EXAMPLE - script exected as user
|
|
||||||
# provision:
|
|
||||||
# - mode: user
|
|
||||||
# script: |
|
|
||||||
# [ -f ~/.provision ] && exit 0;
|
|
||||||
# echo provisioning as $USER...
|
|
||||||
# touch ~/.provision
|
|
||||||
#
|
|
||||||
# Default: []
|
|
||||||
provision:
|
provision:
|
||||||
- mode: system
|
- mode: system
|
||||||
script: |
|
# This script defines the host.docker.internal hostname when hostResolver is disabled.
|
||||||
wget -qO- "https://download.docker.com/linux/static/{{dockerBinChannel}}/{{dockerBinArch}}/docker-{{dockerBinVersion}}.tgz" | tar xvz --strip 1 -C /usr/bin/
|
# It is also needed for lima 0.8.2 and earlier, which does not support hostResolver.hosts.
|
||||||
|
# Names defined in /etc/hosts inside the VM are not resolved inside containers when
|
||||||
|
# using the hostResolver; use hostResolver.hosts instead (requires lima 0.8.3 or later).
|
||||||
|
script: |
|
||||||
|
#!/bin/sh
|
||||||
|
sed -i 's/host.lima.internal.*/host.lima.internal host.docker.internal/' /etc/hosts
|
||||||
|
- mode: system
|
||||||
|
script: |
|
||||||
|
#!/bin/sh
|
||||||
|
apt-get install -f -y iptables
|
||||||
|
- mode: system
|
||||||
|
script: |
|
||||||
|
#!/bin/bash
|
||||||
|
set -eux -o pipefail
|
||||||
|
command -v docker >/dev/null 2>&1 && exit 0
|
||||||
|
if [ ! -e /etc/systemd/system/docker.socket.d/override.conf ]; then
|
||||||
|
mkdir -p /etc/systemd/system/docker.socket.d
|
||||||
|
# Alternatively we could just add the user to the "docker" group, but that requires restarting the user session
|
||||||
|
cat <<-EOF >/etc/systemd/system/docker.socket.d/override.conf
|
||||||
|
[Socket]
|
||||||
|
SocketUser=\${LIMA_CIDATA_USER}
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
if [ ! -e /etc/docker/daemon.json ]; then
|
||||||
|
mkdir -p /etc/docker
|
||||||
|
cat <<-EOF >/etc/docker/daemon.json
|
||||||
|
{{stringify daemonConfig}}
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
curl -fsSL https://get.docker.com | sh -s -- --channel {{dockerBinChannel}} --version {{dockerBinVersion}}
|
||||||
|
|
||||||
# Modify ~/.ssh/config automatically to include a SSH config for the virtual machine.
|
probes:
|
||||||
# SSH config will still be generated in ~/.colima/ssh_config regardless.
|
- script: |
|
||||||
# Default: true
|
#!/bin/bash
|
||||||
sshConfig: false
|
set -eux -o pipefail
|
||||||
|
if ! timeout 30s bash -c "until command -v docker >/dev/null 2>&1; do sleep 3; done"; then
|
||||||
|
echo >&2 "docker is not installed yet"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if ! timeout 30s bash -c "until pgrep dockerd; do sleep 3; done"; then
|
||||||
|
echo >&2 "dockerd is not running"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
hint: See "/var/log/cloud-init-output.log". in the guest
|
||||||
|
|
||||||
# Configure volume mounts for the virtual machine.
|
hostResolver:
|
||||||
# Colima mounts user's home directory by default to provide a familiar
|
# hostResolver.hosts requires lima 0.8.3 or later. Names defined here will also
|
||||||
# user experience.
|
# resolve inside containers, and not just inside the VM itself.
|
||||||
#
|
hosts:
|
||||||
# EXAMPLE
|
host.docker.internal: host.lima.internal
|
||||||
# mounts:
|
|
||||||
# - location: ~/secrets
|
|
||||||
# writable: false
|
|
||||||
# - location: ~/projects
|
|
||||||
# writable: true
|
|
||||||
#
|
|
||||||
# Colima default behaviour: $HOME and /tmp/colima are mounted as writable.
|
|
||||||
# Default: []
|
|
||||||
mounts: []
|
|
||||||
|
|
||||||
# Environment variables for the virtual machine.
|
portForwards:
|
||||||
#
|
- guestSocket: "/var/run/docker.sock"
|
||||||
# EXAMPLE
|
hostSocket: "{{dockerSock}}"
|
||||||
# env:
|
|
||||||
# KEY: value
|
audio:
|
||||||
# ANOTHER_KEY: another value
|
# EXPERIMENTAL
|
||||||
#
|
# QEMU audiodev, e.g., "none", "coreaudio", "pa", "alsa", "oss".
|
||||||
# Default: {}
|
# VZ driver, use "vz" as device name
|
||||||
env: {}
|
# Choosing "none" will mute the audio output, and not play any sound.
|
||||||
`;
|
# Builtin default: ""
|
||||||
|
device: none
|
||||||
export const qemuEntitlements = `
|
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>com.apple.security.hypervisor</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
`;
|
`;
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ import fsp from 'fs/promises';
|
|||||||
import os from 'os';
|
import os from 'os';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import retry from 'async-retry';
|
import retry from 'async-retry';
|
||||||
import yaml from 'js-yaml';
|
|
||||||
import * as handlebars from 'handlebars';
|
import * as handlebars from 'handlebars';
|
||||||
import * as util from 'util';
|
import * as util from 'util';
|
||||||
import * as core from '@actions/core';
|
import * as core from '@actions/core';
|
||||||
@@ -31,7 +30,7 @@ import * as tc from '@actions/tool-cache';
|
|||||||
import {Context} from '../context';
|
import {Context} from '../context';
|
||||||
import {Exec} from '../exec';
|
import {Exec} from '../exec';
|
||||||
import {Util} from '../util';
|
import {Util} from '../util';
|
||||||
import {colimaYamlData, dockerServiceLogsPs1, qemuEntitlements, setupDockerWinPs1} from './assets';
|
import {limaYamlData, dockerServiceLogsPs1, setupDockerWinPs1} from './assets';
|
||||||
import {GitHubRelease} from '../types/github';
|
import {GitHubRelease} from '../types/github';
|
||||||
|
|
||||||
export interface InstallOpts {
|
export interface InstallOpts {
|
||||||
@@ -42,6 +41,12 @@ export interface InstallOpts {
|
|||||||
daemonConfig?: string;
|
daemonConfig?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface LimaImage {
|
||||||
|
location: string;
|
||||||
|
arch: string;
|
||||||
|
digest?: string;
|
||||||
|
}
|
||||||
|
|
||||||
export class Install {
|
export class Install {
|
||||||
private readonly runDir: string;
|
private readonly runDir: string;
|
||||||
private readonly version: string;
|
private readonly version: string;
|
||||||
@@ -51,6 +56,8 @@ export class Install {
|
|||||||
private _version: string | undefined;
|
private _version: string | undefined;
|
||||||
private _toolDir: string | undefined;
|
private _toolDir: string | undefined;
|
||||||
|
|
||||||
|
private readonly limaInstanceName = 'docker-actions-toolkit';
|
||||||
|
|
||||||
constructor(opts: InstallOpts) {
|
constructor(opts: InstallOpts) {
|
||||||
this.runDir = opts.runDir;
|
this.runDir = opts.runDir;
|
||||||
this.version = opts.version || 'latest';
|
this.version = opts.version || 'latest';
|
||||||
@@ -131,30 +138,46 @@ export class Install {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async installDarwin(): Promise<void> {
|
private async installDarwin(): Promise<void> {
|
||||||
const colimaDir = path.join(os.homedir(), '.colima', 'default'); // TODO: create a custom colima profile to avoid overlap with other actions
|
const limaDir = path.join(os.homedir(), '.lima', this.limaInstanceName);
|
||||||
await io.mkdirP(colimaDir);
|
await io.mkdirP(limaDir);
|
||||||
const dockerHost = `unix://${colimaDir}/docker.sock`;
|
const dockerHost = `unix://${limaDir}/docker.sock`;
|
||||||
|
|
||||||
if (!(await Install.colimaInstalled())) {
|
// avoid brew to auto update and upgrade unrelated packages.
|
||||||
await core.group('Installing colima', async () => {
|
let envs = Object.assign({}, process.env, {
|
||||||
await Exec.exec('brew', ['install', 'colima']);
|
HOMEBREW_NO_AUTO_UPDATE: '1',
|
||||||
|
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: '1'
|
||||||
|
}) as {
|
||||||
|
[key: string]: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
if (!(await Install.limaInstalled())) {
|
||||||
|
await core.group('Installing lima', async () => {
|
||||||
|
await Exec.exec('brew', ['install', 'lima'], {env: envs});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
await core.group('Creating colima config', async () => {
|
await core.group('Lima version', async () => {
|
||||||
let colimaDaemonConfig = {};
|
await Exec.exec('lima', ['--version'], {env: envs});
|
||||||
|
});
|
||||||
|
|
||||||
|
await core.group('Creating lima config', async () => {
|
||||||
|
let limaDaemonConfig = {};
|
||||||
if (this.daemonConfig) {
|
if (this.daemonConfig) {
|
||||||
colimaDaemonConfig = JSON.parse(this.daemonConfig);
|
limaDaemonConfig = JSON.parse(this.daemonConfig);
|
||||||
}
|
}
|
||||||
const colimaCfg = handlebars.compile(colimaYamlData)({
|
handlebars.registerHelper('stringify', function (obj) {
|
||||||
daemonConfig: yaml.dump(yaml.load(JSON.stringify({docker: colimaDaemonConfig}))),
|
return new handlebars.SafeString(JSON.stringify(obj));
|
||||||
dockerBinVersion: this._version,
|
|
||||||
dockerBinChannel: this.channel,
|
|
||||||
dockerBinArch: Install.platformArch()
|
|
||||||
});
|
});
|
||||||
core.info(`Writing colima config to ${path.join(colimaDir, 'colima.yaml')}`);
|
const limaCfg = handlebars.compile(limaYamlData)({
|
||||||
fs.writeFileSync(path.join(colimaDir, 'colima.yaml'), colimaCfg);
|
customImages: Install.limaCustomImages(),
|
||||||
core.info(colimaCfg);
|
daemonConfig: limaDaemonConfig,
|
||||||
|
dockerSock: `${limaDir}/docker.sock`,
|
||||||
|
dockerBinVersion: this._version,
|
||||||
|
dockerBinChannel: this.channel
|
||||||
|
});
|
||||||
|
core.info(`Writing lima config to ${path.join(limaDir, 'lima.yaml')}`);
|
||||||
|
fs.writeFileSync(path.join(limaDir, 'lima.yaml'), limaCfg);
|
||||||
|
core.info(limaCfg);
|
||||||
});
|
});
|
||||||
|
|
||||||
const qemuArch = await Install.qemuArch();
|
const qemuArch = await Install.qemuArch();
|
||||||
@@ -162,40 +185,29 @@ export class Install {
|
|||||||
await Exec.exec(`qemu-system-${qemuArch} --version`);
|
await Exec.exec(`qemu-system-${qemuArch} --version`);
|
||||||
});
|
});
|
||||||
|
|
||||||
// https://github.com/abiosoft/colima/issues/786#issuecomment-1693629650
|
// lima might already be started on the runner so env var added in download
|
||||||
if (process.env.SIGN_QEMU_BINARY === '1') {
|
|
||||||
await core.group('Signing QEMU binary with entitlements', async () => {
|
|
||||||
const qemuEntitlementsFile = path.join(Context.tmpDir(), 'qemu-entitlements.xml');
|
|
||||||
core.info(`Writing entitlements to ${qemuEntitlementsFile}`);
|
|
||||||
fs.writeFileSync(qemuEntitlementsFile, qemuEntitlements);
|
|
||||||
await Exec.exec(`codesign --sign - --entitlements ${qemuEntitlementsFile} --force /usr/local/bin/qemu-system-${qemuArch}`);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// colima is already started on the runner so env var added in download
|
|
||||||
// method is not expanded to the running process.
|
// method is not expanded to the running process.
|
||||||
const envs = Object.assign({}, process.env, {
|
envs = Object.assign({}, envs, {
|
||||||
PATH: `${this.toolDir}:${process.env.PATH}`
|
PATH: `${this.toolDir}:${process.env.PATH}`
|
||||||
}) as {
|
}) as {
|
||||||
[key: string]: string;
|
[key: string]: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
await core.group('Starting colima', async () => {
|
await core.group('Starting lima instance', async () => {
|
||||||
const colimaStartArgs = ['start', '--very-verbose'];
|
const limaStartArgs = ['start', `--name=${this.limaInstanceName}`];
|
||||||
if (process.env.COLIMA_START_ARGS) {
|
if (process.env.LIMA_START_ARGS) {
|
||||||
colimaStartArgs.push(process.env.COLIMA_START_ARGS);
|
limaStartArgs.push(process.env.LIMA_START_ARGS);
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
await Exec.exec(`colima ${colimaStartArgs.join(' ')}`, [], {env: envs});
|
await Exec.exec(`limactl ${limaStartArgs.join(' ')}`, [], {env: envs});
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
const limaColimaDir = path.join(os.homedir(), '.lima', 'colima');
|
|
||||||
fsp
|
fsp
|
||||||
.readdir(limaColimaDir)
|
.readdir(limaDir)
|
||||||
.then(files => {
|
.then(files => {
|
||||||
files
|
files
|
||||||
.filter(f => path.extname(f) === '.log')
|
.filter(f => path.extname(f) === '.log')
|
||||||
.forEach(f => {
|
.forEach(f => {
|
||||||
const logfile = path.join(limaColimaDir, f);
|
const logfile = path.join(limaDir, f);
|
||||||
const logcontent = fs.readFileSync(logfile, {encoding: 'utf8'}).trim();
|
const logcontent = fs.readFileSync(logfile, {encoding: 'utf8'}).trim();
|
||||||
if (logcontent.length > 0) {
|
if (logcontent.length > 0) {
|
||||||
core.info(`### ${logfile}:\n${logcontent}`);
|
core.info(`### ${logfile}:\n${logcontent}`);
|
||||||
@@ -362,14 +374,15 @@ EOF`,
|
|||||||
|
|
||||||
private async tearDownDarwin(): Promise<void> {
|
private async tearDownDarwin(): Promise<void> {
|
||||||
await core.group('Docker daemon logs', async () => {
|
await core.group('Docker daemon logs', async () => {
|
||||||
await Exec.exec('colima', ['exec', '--', 'cat', '/var/log/docker.log']).catch(async () => {
|
await Exec.exec('limactl', ['shell', '--tty=false', this.limaInstanceName, 'sudo', 'journalctl', '-u', 'docker.service', '-l', '--no-pager']).catch(() => {
|
||||||
await Exec.exec('colima', ['exec', '--', 'sudo', 'journalctl', '-u', 'docker.service', '-l', '--no-pager']).catch(() => {
|
core.warning(`Failed to get Docker daemon logs`);
|
||||||
core.warning(`Failed to get Docker daemon logs`);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
await core.group('Stopping colima', async () => {
|
await core.group('Stopping lima instance', async () => {
|
||||||
await Exec.exec('colima', ['stop', '--very-verbose']);
|
await Exec.exec('limactl', ['stop', '--tty=false', this.limaInstanceName, '--force']);
|
||||||
|
});
|
||||||
|
await core.group('Removing lima instance', async () => {
|
||||||
|
await Exec.exec('limactl', ['delete', '--tty=false', this.limaInstanceName, '--force']);
|
||||||
});
|
});
|
||||||
await core.group('Removing Docker context', async () => {
|
await core.group('Removing Docker context', async () => {
|
||||||
await Exec.exec('docker', ['context', 'rm', '-f', this.contextName]);
|
await Exec.exec('docker', ['context', 'rm', '-f', this.contextName]);
|
||||||
@@ -464,15 +477,15 @@ EOF`,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static async colimaInstalled(): Promise<boolean> {
|
private static async limaInstalled(): Promise<boolean> {
|
||||||
return await io
|
return await io
|
||||||
.which('colima', true)
|
.which('lima', true)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
core.debug(`docker.Install.colimaAvailable ok: ${res}`);
|
core.debug(`docker.Install.limaAvailable ok: ${res}`);
|
||||||
return true;
|
return true;
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
core.debug(`docker.Install.colimaAvailable error: ${error}`);
|
core.debug(`docker.Install.limaAvailable error: ${error}`);
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -506,4 +519,25 @@ EOF`,
|
|||||||
}
|
}
|
||||||
return releases[version];
|
return releases[version];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static limaCustomImages(): LimaImage[] {
|
||||||
|
const res: LimaImage[] = [];
|
||||||
|
const env = process.env.LIMA_IMAGES;
|
||||||
|
if (!env) {
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
for (const input of Util.getList(env, {ignoreComma: true, comment: '#'})) {
|
||||||
|
const archIndex = input.indexOf(':');
|
||||||
|
const arch = input.substring(0, archIndex).trim();
|
||||||
|
const digestIndex = input.indexOf('@');
|
||||||
|
const location = input.substring(archIndex + 1, digestIndex !== -1 ? digestIndex : undefined).trim();
|
||||||
|
const digest = digestIndex !== -1 ? input.substring(digestIndex + 1).trim() : '';
|
||||||
|
res.push({
|
||||||
|
location: location,
|
||||||
|
arch: arch,
|
||||||
|
digest: digest
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
15
src/git.ts
15
src/git.ts
@@ -123,25 +123,32 @@ export class Git {
|
|||||||
private static async getDetachedRef(): Promise<string> {
|
private static async getDetachedRef(): Promise<string> {
|
||||||
const res = await Git.exec(['show', '-s', '--pretty=%D']);
|
const res = await Git.exec(['show', '-s', '--pretty=%D']);
|
||||||
|
|
||||||
const refMatch = res.match(/^HEAD, (.*)$/);
|
// Can be "HEAD, <tagname>" or "grafted, HEAD, <tagname>"
|
||||||
|
const refMatch = res.match(/^(grafted, )?HEAD, (.*)$/);
|
||||||
|
|
||||||
if (!refMatch) {
|
if (!refMatch || !refMatch[2]) {
|
||||||
throw new Error(`Cannot find detached HEAD ref in "${res}"`);
|
throw new Error(`Cannot find detached HEAD ref in "${res}"`);
|
||||||
}
|
}
|
||||||
|
|
||||||
const ref = refMatch[1].trim();
|
const ref = refMatch[2].trim();
|
||||||
|
|
||||||
// Tag refs are formatted as "tag: <tagname>"
|
// Tag refs are formatted as "tag: <tagname>"
|
||||||
if (ref.startsWith('tag: ')) {
|
if (ref.startsWith('tag: ')) {
|
||||||
return `refs/tags/${ref.split(':')[1].trim()}`;
|
return `refs/tags/${ref.split(':')[1].trim()}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Otherwise, it's a branch "<origin>/<branch-name>, <branch-name>"
|
// Branch refs are formatted as "<origin>/<branch-name>, <branch-name>"
|
||||||
const branchMatch = ref.match(/^[^/]+\/[^/]+, (.+)$/);
|
const branchMatch = ref.match(/^[^/]+\/[^/]+, (.+)$/);
|
||||||
if (branchMatch) {
|
if (branchMatch) {
|
||||||
return `refs/heads/${branchMatch[1].trim()}`;
|
return `refs/heads/${branchMatch[1].trim()}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Pull request merge refs are formatted as "pull/<number>/<state>"
|
||||||
|
const prMatch = ref.match(/^pull\/\d+\/(head|merge)$/);
|
||||||
|
if (prMatch) {
|
||||||
|
return `refs/${ref}`;
|
||||||
|
}
|
||||||
|
|
||||||
throw new Error(`Unsupported detached HEAD ref in "${res}"`);
|
throw new Error(`Unsupported detached HEAD ref in "${res}"`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
14
src/util.ts
14
src/util.ts
@@ -19,22 +19,24 @@ import * as core from '@actions/core';
|
|||||||
import * as io from '@actions/io';
|
import * as io from '@actions/io';
|
||||||
import {parse} from 'csv-parse/sync';
|
import {parse} from 'csv-parse/sync';
|
||||||
|
|
||||||
export interface InputListOpts {
|
export interface ListOpts {
|
||||||
ignoreComma?: boolean;
|
ignoreComma?: boolean;
|
||||||
comment?: string;
|
comment?: string;
|
||||||
quote?: string | boolean | Buffer | null;
|
quote?: string | boolean | Buffer | null;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class Util {
|
export class Util {
|
||||||
public static getInputList(name: string, opts?: InputListOpts): string[] {
|
public static getInputList(name: string, opts?: ListOpts): string[] {
|
||||||
const res: Array<string> = [];
|
return this.getList(core.getInput(name), opts);
|
||||||
|
}
|
||||||
|
|
||||||
const items = core.getInput(name);
|
public static getList(input: string, opts?: ListOpts): string[] {
|
||||||
if (items == '') {
|
const res: Array<string> = [];
|
||||||
|
if (input == '') {
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
const records = parse(items, {
|
const records = parse(input, {
|
||||||
columns: false,
|
columns: false,
|
||||||
relaxQuotes: true,
|
relaxQuotes: true,
|
||||||
comment: opts?.comment,
|
comment: opts?.comment,
|
||||||
|
|||||||
38
yarn.lock
38
yarn.lock
@@ -1046,8 +1046,8 @@ __metadata:
|
|||||||
"@actions/http-client": ^2.2.0
|
"@actions/http-client": ^2.2.0
|
||||||
"@actions/io": ^1.1.3
|
"@actions/io": ^1.1.3
|
||||||
"@actions/tool-cache": ^2.0.1
|
"@actions/tool-cache": ^2.0.1
|
||||||
"@octokit/core": ^5.0.1
|
"@octokit/core": ^5.0.2
|
||||||
"@octokit/plugin-rest-endpoint-methods": ^10.1.5
|
"@octokit/plugin-rest-endpoint-methods": ^10.2.0
|
||||||
"@types/csv-parse": ^1.2.2
|
"@types/csv-parse": ^1.2.2
|
||||||
"@types/js-yaml": ^4.0.5
|
"@types/js-yaml": ^4.0.5
|
||||||
"@types/node": ^20.5.9
|
"@types/node": ^20.5.9
|
||||||
@@ -1056,7 +1056,7 @@ __metadata:
|
|||||||
"@typescript-eslint/eslint-plugin": ^6.6.0
|
"@typescript-eslint/eslint-plugin": ^6.6.0
|
||||||
"@typescript-eslint/parser": ^6.6.0
|
"@typescript-eslint/parser": ^6.6.0
|
||||||
async-retry: ^1.3.3
|
async-retry: ^1.3.3
|
||||||
csv-parse: ^5.5.2
|
csv-parse: ^5.5.3
|
||||||
dotenv: ^16.3.1
|
dotenv: ^16.3.1
|
||||||
eslint: ^8.48.0
|
eslint: ^8.48.0
|
||||||
eslint-config-prettier: ^9.0.0
|
eslint-config-prettier: ^9.0.0
|
||||||
@@ -1065,7 +1065,6 @@ __metadata:
|
|||||||
eslint-plugin-prettier: ^5.0.0
|
eslint-plugin-prettier: ^5.0.0
|
||||||
handlebars: ^4.7.8
|
handlebars: ^4.7.8
|
||||||
jest: ^29.6.4
|
jest: ^29.6.4
|
||||||
js-yaml: ^4.1.0
|
|
||||||
jwt-decode: ^4.0.0
|
jwt-decode: ^4.0.0
|
||||||
prettier: ^3.0.3
|
prettier: ^3.0.3
|
||||||
rimraf: ^5.0.1
|
rimraf: ^5.0.1
|
||||||
@@ -1624,6 +1623,21 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@octokit/core@npm:^5.0.2":
|
||||||
|
version: 5.0.2
|
||||||
|
resolution: "@octokit/core@npm:5.0.2"
|
||||||
|
dependencies:
|
||||||
|
"@octokit/auth-token": ^4.0.0
|
||||||
|
"@octokit/graphql": ^7.0.0
|
||||||
|
"@octokit/request": ^8.0.2
|
||||||
|
"@octokit/request-error": ^5.0.0
|
||||||
|
"@octokit/types": ^12.0.0
|
||||||
|
before-after-hook: ^2.2.0
|
||||||
|
universal-user-agent: ^6.0.0
|
||||||
|
checksum: 9ce060d61577f6805901ae5c33b2764a441db119ae0cca09104adf37b119cce68b656220de56c0c5004c9c9c1c892a7fdfbe9c0b1f5e398cb359dfd39c57eca8
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@octokit/endpoint@npm:^9.0.0":
|
"@octokit/endpoint@npm:^9.0.0":
|
||||||
version: 9.0.0
|
version: 9.0.0
|
||||||
resolution: "@octokit/endpoint@npm:9.0.0"
|
resolution: "@octokit/endpoint@npm:9.0.0"
|
||||||
@@ -1689,14 +1703,14 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@octokit/plugin-rest-endpoint-methods@npm:^10.1.5":
|
"@octokit/plugin-rest-endpoint-methods@npm:^10.2.0":
|
||||||
version: 10.1.5
|
version: 10.2.0
|
||||||
resolution: "@octokit/plugin-rest-endpoint-methods@npm:10.1.5"
|
resolution: "@octokit/plugin-rest-endpoint-methods@npm:10.2.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@octokit/types": ^12.3.0
|
"@octokit/types": ^12.3.0
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
"@octokit/core": ">=5"
|
"@octokit/core": ">=5"
|
||||||
checksum: 01b79eac7f1f5663c8bdb2f27a209873cebdf664b15712b4cc1f363f2a9df60f217e03af67a07000a4a7a70191080716ccc6d9fa454258f5cb2a09ef18723ee9
|
checksum: 3209688bf508d22a525fe32d632ff928b048688c1859c7e4bbb08bd181aa07f580b375a502e34368628103e5d5cccf7f9fb0ff0c8fd4262470ac8eeffb80ac6b
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -2974,10 +2988,10 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"csv-parse@npm:^5.5.2":
|
"csv-parse@npm:^5.5.3":
|
||||||
version: 5.5.2
|
version: 5.5.3
|
||||||
resolution: "csv-parse@npm:5.5.2"
|
resolution: "csv-parse@npm:5.5.3"
|
||||||
checksum: de2eb0c29b049783ef101b7eb843456200dc9a4fc9f4b400473bb0521b41aadb77af560cf4edc49bac65cc457b32596519860120181b26ec3b372109ddf8e8ea
|
checksum: 38399bc4c61b721bc2f52a6262d6000b4e5f391e45b071f6eb087b293a02f867020f7da36adf6f56eb9fb45bd28c82cd223afd35846551fb5ad31bf3d0602961
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user