/
githubmirror
/
act
Обзор
Документация
Войти
/
githubmirror
/
act
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
pkg/container/docker_images_test.go
66 строк
2 KB
Casey Lee
build(deps): bump GitHub Actions to fix Node.js 20 deprecation (#6036)
24 мар 2026, 18:06
Не верифицирован
24 мар 2026, 18:06
10add23
Код
Авторство
О чём код?
package container import ( "context" "io" "testing" "github.com/moby/moby/client" specs "github.com/opencontainers/image-spec/specs-go/v1" log "github.com/sirupsen/logrus" "github.com/stretchr/testify/assert" ) func init() { log.SetLevel(log.DebugLevel) } func TestImageExistsLocally(t *testing.T) { if testing.Short() { t.Skip("skipping integration test") } ctx := context.Background() // to help make this test reliable and not flaky, we need to have // an image that will exist, and onew that won't exist // Test if image exists with specific tag invalidImageTag, err := ImageExistsLocally(ctx, "library/alpine:this-random-tag-will-never-exist", "linux/amd64") assert.Nil(t, err) assert.Equal(t, false, invalidImageTag) // Test if image exists with specific architecture (image platform) invalidImagePlatform, err := ImageExistsLocally(ctx, "alpine:latest", "windows/amd64") assert.Nil(t, err) assert.Equal(t, false, invalidImagePlatform) // pull an image cli, err := client.New(client.FromEnv) assert.Nil(t, err) // Chose alpine latest because it's so small // maybe we should build an image instead so that tests aren't reliable on dockerhub readerDefault, err := cli.ImagePull(ctx, "node:16-buster-slim", client.ImagePullOptions{ Platforms: []specs.Platform{{OS: "linux", Architecture: "amd64"}}, }) assert.Nil(t, err) defer readerDefault.Close() _, err = io.ReadAll(readerDefault) assert.Nil(t, err) imageDefaultArchExists, err := ImageExistsLocally(ctx, "node:16-buster-slim", "linux/amd64") assert.Nil(t, err) assert.Equal(t, true, imageDefaultArchExists) // Validate if another architecture platform can be pulled readerArm64, err := cli.ImagePull(ctx, "node:16-buster-slim", client.ImagePullOptions{ Platforms: []specs.Platform{{OS: "linux", Architecture: "arm64"}}, }) assert.Nil(t, err) defer readerArm64.Close() _, err = io.ReadAll(readerArm64) assert.Nil(t, err) imageArm64Exists, err := ImageExistsLocally(ctx, "node:16-buster-slim", "linux/arm64") assert.Nil(t, err) assert.Equal(t, true, imageArm64Exists) }