X Tutup
Skip to content

Commit a43703f

Browse files
authored
Merge pull request containerd#6455 from tonistiigi/amd64-variants
platforms: add support for matching amd64 variants
2 parents 3f5d789 + af83e9a commit a43703f

File tree

3 files changed

+35
-3
lines changed

3 files changed

+35
-3
lines changed

platforms/compare.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,22 @@ func platformVector(platform specs.Platform) []specs.Platform {
3838

3939
switch platform.Architecture {
4040
case "amd64":
41+
if amd64Version, err := strconv.Atoi(strings.TrimPrefix(platform.Variant, "v")); err == nil && amd64Version > 1 {
42+
for amd64Version--; amd64Version >= 1; amd64Version-- {
43+
vector = append(vector, specs.Platform{
44+
Architecture: platform.Architecture,
45+
OS: platform.OS,
46+
OSVersion: platform.OSVersion,
47+
OSFeatures: platform.OSFeatures,
48+
Variant: "v" + strconv.Itoa(amd64Version),
49+
})
50+
}
51+
}
4152
vector = append(vector, specs.Platform{
4253
Architecture: "386",
4354
OS: platform.OS,
4455
OSVersion: platform.OSVersion,
4556
OSFeatures: platform.OSFeatures,
46-
Variant: platform.Variant,
4757
})
4858
case "arm":
4959
if armVersion, err := strconv.Atoi(strings.TrimPrefix(platform.Variant, "v")); err == nil && armVersion > 5 {

platforms/compare_test.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,26 @@ func TestOnly(t *testing.T) {
3333
"linux/386",
3434
},
3535
false: {
36+
"linux/amd64/v2",
37+
"linux/arm/v7",
38+
"linux/arm64",
39+
"windows/amd64",
40+
"windows/arm",
41+
},
42+
},
43+
},
44+
{
45+
platform: "linux/amd64/v2",
46+
matches: map[bool][]string{
47+
true: {
48+
"linux/amd64",
49+
"linux/amd64/v1",
50+
"linux/amd64/v2",
51+
"linux/386",
52+
},
53+
false: {
54+
"linux/amd64/v3",
55+
"linux/amd64/v4",
3656
"linux/arm/v7",
3757
"linux/arm64",
3858
"windows/amd64",

platforms/database.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,11 @@ func normalizeArch(arch, variant string) (string, string) {
8686
case "i386":
8787
arch = "386"
8888
variant = ""
89-
case "x86_64", "x86-64":
89+
case "x86_64", "x86-64", "amd64":
9090
arch = "amd64"
91-
variant = ""
91+
if variant == "v1" {
92+
variant = ""
93+
}
9294
case "aarch64", "arm64":
9395
arch = "arm64"
9496
switch variant {

0 commit comments

Comments
 (0)
X Tutup