(t *testing.T, ref name.Reference, remoteOpt remote.Option, env ...string)
| 2667 | } |
| 2668 | |
| 2669 | func 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 | |
| 2704 | func 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"))}) |
no test coverage detected