MCPcopy Create free account
hub / github.com/coder/envbuilder / pushImage

Function pushImage

integration/integration_test.go:2669–2702  ·  view source on GitHub ↗
(t *testing.T, ref name.Reference, remoteOpt remote.Option, env ...string)

Source from the content-addressed store, hash-verified

2667}
2668
2669func pushImage(t *testing.T, ref name.Reference, remoteOpt remote.Option, env ...string) v1.Image {
2670 t.Helper()
2671
2672 var remoteOpts []remote.Option
2673 if remoteOpt != nil {
2674 remoteOpts = append(remoteOpts, remoteOpt)
2675 }
2676 opts := runOpts{
2677 env: append(env,
2678 envbuilderEnv("PUSH_IMAGE", "1"),
2679 envbuilderEnv("EXIT_ON_PUSH_FAILURE", "1"),
2680 ),
2681 }
2682 _, err := runEnvbuilder(t, opts)
2683 require.NoError(t, err, "envbuilder push image failed")
2684
2685 img, err := remote.Image(ref, remoteOpts...)
2686 require.NoError(t, err, "expected image to be present after build + push")
2687
2688 // The image should have its directives replaced with those required
2689 // to run envbuilder automatically
2690 configFile, err := img.ConfigFile()
2691 require.NoError(t, err, "expected image to return a config file")
2692
2693 assert.Equal(t, "root", configFile.Config.User, "user must be root")
2694 assert.Equal(t, "/", configFile.Config.WorkingDir, "workdir must be /")
2695 if assert.Len(t, configFile.Config.Entrypoint, 1) {
2696 assert.Equal(t, "/.envbuilder/bin/envbuilder", configFile.Config.Entrypoint[0], "incorrect entrypoint")
2697 }
2698
2699 require.False(t, t.Failed(), "pushImage failed")
2700
2701 return img
2702}
2703
2704func getCachedImage(ctx context.Context, t *testing.T, cli *client.Client, env ...string) name.Reference {
2705 ctrID, err := runEnvbuilder(t, runOpts{env: append(env, envbuilderEnv("GET_CACHED_IMAGE", "1"))})

Callers 1

TestPushImageFunction · 0.85

Calls 4

envbuilderEnvFunction · 0.85
runEnvbuilderFunction · 0.85
ImageMethod · 0.80
ConfigFileMethod · 0.80

Tested by

no test coverage detected