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

Function TestPushImage

integration/integration_test.go:1632–2554  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1630}
1631
1632func TestPushImage(t *testing.T) {
1633 t.Parallel()
1634
1635 // Write a test feature to an in-memory registry.
1636 testFeature := registrytest.WriteContainer(t, registrytest.New(t), emptyRemoteOpts, "features/test-feature:latest", features.TarLayerMediaType, map[string]any{
1637 "install.sh": `#!/bin/sh
1638 echo "${MESSAGE}" > /root/message.txt`,
1639 "devcontainer-feature.json": features.Spec{
1640 ID: "test-feature",
1641 Name: "test feature",
1642 Version: "v0.0.1",
1643 Options: map[string]features.Option{
1644 "message": {
1645 Type: "string",
1646 Default: "hello world",
1647 },
1648 },
1649 },
1650 })
1651
1652 t.Run("CacheWithoutPush", func(t *testing.T) {
1653 t.Parallel()
1654
1655 srv := gittest.CreateGitServer(t, gittest.Options{
1656 Files: map[string]string{
1657 ".devcontainer/Dockerfile": fmt.Sprintf(`FROM %s
1658USER root
1659ARG WORKDIR=/
1660WORKDIR $WORKDIR
1661ENV FOO=bar
1662RUN echo $FOO > /root/foo.txt
1663RUN date --utc > /root/date.txt`, testImageAlpine),
1664 ".devcontainer/devcontainer.json": fmt.Sprintf(`{
1665 "name": "Test",
1666 "build": {
1667 "dockerfile": "Dockerfile"
1668 },
1669 "features": {
1670 %q: {}
1671 }
1672 }`, testFeature),
1673 },
1674 })
1675
1676 // Given: an empty registry
1677 testReg := setupInMemoryRegistry(t, setupInMemoryRegistryOpts{})
1678 testRepo := testReg + "/test"
1679 ref, err := name.ParseReference(testRepo + ":latest")
1680 require.NoError(t, err)
1681 _, err = remote.Image(ref)
1682 require.ErrorContains(t, err, "NAME_UNKNOWN", "expected image to not be present before build + push")
1683
1684 // When: we run envbuilder with GET_CACHED_IMAGE
1685 _, err = runEnvbuilder(t, runOpts{env: []string{
1686 envbuilderEnv("GIT_URL", srv.URL),
1687 envbuilderEnv("CACHE_REPO", testRepo),
1688 envbuilderEnv("GET_CACHED_IMAGE", "1"),
1689 }})

Callers

nothing calls this directly

Calls 14

WriteContainerFunction · 0.92
NewFunction · 0.92
CreateGitServerFunction · 0.92
setupInMemoryRegistryFunction · 0.85
runEnvbuilderFunction · 0.85
envbuilderEnvFunction · 0.85
pushImageFunction · 0.85
getCachedImageFunction · 0.85
startContainerFromRefFunction · 0.85
execContainerFunction · 0.85
streamContainerLogsFunction · 0.85
ImageMethod · 0.80

Tested by

no test coverage detected