Merge pull request #6455 from tonistiigi/amd64-variants
platforms: add support for matching amd64 variants
This commit is contained in:
commit
a43703fcba
@ -38,12 +38,22 @@ func platformVector(platform specs.Platform) []specs.Platform {
|
|||||||
|
|
||||||
switch platform.Architecture {
|
switch platform.Architecture {
|
||||||
case "amd64":
|
case "amd64":
|
||||||
|
if amd64Version, err := strconv.Atoi(strings.TrimPrefix(platform.Variant, "v")); err == nil && amd64Version > 1 {
|
||||||
|
for amd64Version--; amd64Version >= 1; amd64Version-- {
|
||||||
|
vector = append(vector, specs.Platform{
|
||||||
|
Architecture: platform.Architecture,
|
||||||
|
OS: platform.OS,
|
||||||
|
OSVersion: platform.OSVersion,
|
||||||
|
OSFeatures: platform.OSFeatures,
|
||||||
|
Variant: "v" + strconv.Itoa(amd64Version),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
vector = append(vector, specs.Platform{
|
vector = append(vector, specs.Platform{
|
||||||
Architecture: "386",
|
Architecture: "386",
|
||||||
OS: platform.OS,
|
OS: platform.OS,
|
||||||
OSVersion: platform.OSVersion,
|
OSVersion: platform.OSVersion,
|
||||||
OSFeatures: platform.OSFeatures,
|
OSFeatures: platform.OSFeatures,
|
||||||
Variant: platform.Variant,
|
|
||||||
})
|
})
|
||||||
case "arm":
|
case "arm":
|
||||||
if armVersion, err := strconv.Atoi(strings.TrimPrefix(platform.Variant, "v")); err == nil && armVersion > 5 {
|
if armVersion, err := strconv.Atoi(strings.TrimPrefix(platform.Variant, "v")); err == nil && armVersion > 5 {
|
||||||
|
@ -33,6 +33,26 @@ func TestOnly(t *testing.T) {
|
|||||||
"linux/386",
|
"linux/386",
|
||||||
},
|
},
|
||||||
false: {
|
false: {
|
||||||
|
"linux/amd64/v2",
|
||||||
|
"linux/arm/v7",
|
||||||
|
"linux/arm64",
|
||||||
|
"windows/amd64",
|
||||||
|
"windows/arm",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
platform: "linux/amd64/v2",
|
||||||
|
matches: map[bool][]string{
|
||||||
|
true: {
|
||||||
|
"linux/amd64",
|
||||||
|
"linux/amd64/v1",
|
||||||
|
"linux/amd64/v2",
|
||||||
|
"linux/386",
|
||||||
|
},
|
||||||
|
false: {
|
||||||
|
"linux/amd64/v3",
|
||||||
|
"linux/amd64/v4",
|
||||||
"linux/arm/v7",
|
"linux/arm/v7",
|
||||||
"linux/arm64",
|
"linux/arm64",
|
||||||
"windows/amd64",
|
"windows/amd64",
|
||||||
|
@ -86,9 +86,11 @@ func normalizeArch(arch, variant string) (string, string) {
|
|||||||
case "i386":
|
case "i386":
|
||||||
arch = "386"
|
arch = "386"
|
||||||
variant = ""
|
variant = ""
|
||||||
case "x86_64", "x86-64":
|
case "x86_64", "x86-64", "amd64":
|
||||||
arch = "amd64"
|
arch = "amd64"
|
||||||
variant = ""
|
if variant == "v1" {
|
||||||
|
variant = ""
|
||||||
|
}
|
||||||
case "aarch64", "arm64":
|
case "aarch64", "arm64":
|
||||||
arch = "arm64"
|
arch = "arm64"
|
||||||
switch variant {
|
switch variant {
|
||||||
|
Loading…
Reference in New Issue
Block a user