mirror of
https://gitea.com/Lydanne/buildx.git
synced 2025-11-05 18:43:43 +08:00
driver: resolve BuildKit version for docker driver
Buildx currently returns the Docker Engine version for the docker driver and it can be confusing. This is because BuildKit before 0.11 version does not support the Info API that returns the BuildKit version. This change resolves the BuildKit version from the Docker engine one. Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
127
driver/docker/version_test.go
Normal file
127
driver/docker/version_test.go
Normal file
@@ -0,0 +1,127 @@
|
||||
package docker
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/Masterminds/semver/v3"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestConstraint(t *testing.T) {
|
||||
for _, tt := range mobyBuildkitVersions {
|
||||
tt := tt
|
||||
t.Run(tt.MobyVersionConstraint, func(t *testing.T) {
|
||||
_, err := semver.NewConstraint(tt.MobyVersionConstraint)
|
||||
require.NoError(t, err)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestResolveBuildKitVersion(t *testing.T) {
|
||||
cases := []struct {
|
||||
mobyVersion string
|
||||
expected string
|
||||
err bool
|
||||
}{
|
||||
{
|
||||
mobyVersion: "18.06.1-ce",
|
||||
expected: "v0.0.0+98f1604",
|
||||
},
|
||||
{
|
||||
mobyVersion: "18.09.1-beta1",
|
||||
expected: "v0.3.3",
|
||||
},
|
||||
{
|
||||
mobyVersion: "19.03.0-beta1",
|
||||
expected: "v0.4.0+b302896",
|
||||
},
|
||||
{
|
||||
mobyVersion: "19.03.5-beta2",
|
||||
expected: "v0.6.2+ff93519",
|
||||
},
|
||||
{
|
||||
mobyVersion: "19.03.13-beta1",
|
||||
expected: "v0.6.4+da1f4bf",
|
||||
},
|
||||
{
|
||||
mobyVersion: "19.03.13-beta2",
|
||||
expected: "v0.6.4+da1f4bf",
|
||||
},
|
||||
{
|
||||
mobyVersion: "19.03.13",
|
||||
expected: "v0.6.4+df89d4d",
|
||||
},
|
||||
{
|
||||
mobyVersion: "20.10.3-rc.1",
|
||||
expected: "v0.8.1+68bb095",
|
||||
},
|
||||
{
|
||||
mobyVersion: "20.10.3",
|
||||
expected: "v0.8.1+68bb095",
|
||||
},
|
||||
{
|
||||
mobyVersion: "20.10.4",
|
||||
expected: "v0.8.2",
|
||||
},
|
||||
{
|
||||
mobyVersion: "20.10.16",
|
||||
expected: "v0.8.2+bc07b2b8",
|
||||
},
|
||||
{
|
||||
mobyVersion: "20.10.19",
|
||||
expected: "v0.8.2+3a1eeca5",
|
||||
},
|
||||
{
|
||||
mobyVersion: "20.10.23",
|
||||
expected: "v0.8.2+eeb7b65",
|
||||
},
|
||||
{
|
||||
mobyVersion: "20.10.24",
|
||||
expected: "v0.8+unknown",
|
||||
},
|
||||
{
|
||||
mobyVersion: "20.10.50",
|
||||
expected: "v0.8+unknown",
|
||||
},
|
||||
{
|
||||
mobyVersion: "22.06.0-beta.0",
|
||||
expected: "v0.10.3",
|
||||
},
|
||||
{
|
||||
mobyVersion: "22.06.0",
|
||||
expected: "v0.10.3",
|
||||
},
|
||||
{
|
||||
mobyVersion: "23.0.0-rc.4",
|
||||
expected: "v0.10.6",
|
||||
},
|
||||
{
|
||||
mobyVersion: "23.0.0",
|
||||
expected: "v0.10.6",
|
||||
},
|
||||
{
|
||||
mobyVersion: "23.0.1",
|
||||
expected: "v0.10.6+4f0ee09",
|
||||
},
|
||||
{
|
||||
mobyVersion: "23.0.2-rc.1",
|
||||
expected: "v0.10+unknown",
|
||||
},
|
||||
{
|
||||
mobyVersion: "23.0.4",
|
||||
expected: "v0.10+unknown",
|
||||
},
|
||||
}
|
||||
for _, tt := range cases {
|
||||
tt := tt
|
||||
t.Run(tt.mobyVersion, func(t *testing.T) {
|
||||
bkVersion, err := resolveBuildKitVersion(tt.mobyVersion)
|
||||
if tt.err {
|
||||
require.Error(t, err)
|
||||
return
|
||||
}
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, tt.expected, bkVersion)
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user