MCPcopy Index your code
hub / github.com/jetify-com/devbox / UploadProjectToCache

Method UploadProjectToCache

internal/devbox/cache.go:20–66  ·  view source on GitHub ↗
(
	ctx context.Context,
	cacheURI string,
)

Source from the content-addressed store, hash-verified

18)
19
20func (d *Devbox) UploadProjectToCache(
21 ctx context.Context,
22 cacheURI string,
23) error {
24 defer debug.FunctionTimer().End()
25 if cacheURI == "" {
26 var err error
27 cacheURI, err = getWriteCacheURI(ctx, d.stderr)
28 if err != nil {
29 return err
30 }
31 }
32
33 creds, err := nixcache.CachedCredentials(ctx)
34 if err != nil && !errors.Is(err, auth.ErrNotLoggedIn) {
35 return err
36 }
37
38 packages := lo.Filter(d.InstallablePackages(), devpkg.IsNix)
39 if err != nil || len(packages) == 0 {
40 return err
41 }
42
43 for _, pkg := range packages {
44 inCache, err := pkg.AreAllOutputsInCache(ctx, d.stderr, cacheURI)
45 if err != nil {
46 return err
47 }
48 if inCache {
49 ux.Finfof(d.stderr, "Package %s is already in cache, skipping\n", pkg.Raw)
50 continue
51 }
52 ux.Finfof(d.stderr, "Uploading package %s to cache\n", pkg.Raw)
53 installables, err := pkg.Installables()
54 if err != nil {
55 return err
56 }
57 for _, installable := range installables {
58 err := nix.CopyInstallableToCache(ctx, d.stderr, cacheURI, installable, creds.Env())
59 if err != nil {
60 return err
61 }
62 }
63 }
64
65 return nil
66}
67
68func UploadInstallableToCache(
69 ctx context.Context,

Callers 1

cacheCmdFunction · 0.80

Calls 11

InstallablePackagesMethod · 0.95
FunctionTimerFunction · 0.92
CachedCredentialsFunction · 0.92
FinfofFunction · 0.92
CopyInstallableToCacheFunction · 0.92
getWriteCacheURIFunction · 0.85
EndMethod · 0.80
IsMethod · 0.80
AreAllOutputsInCacheMethod · 0.80
InstallablesMethod · 0.80
EnvMethod · 0.65

Tested by

no test coverage detected