MCPcopy Create free account
hub / github.com/SwishHQ/spread / PushBundle

Function PushBundle

cli/bundle_cli.go:39–69  ·  view source on GitHub ↗

PushBundle uploads a new bundle to the server

(config BundleConfig)

Source from the content-addressed store, hash-verified

37
38// PushBundle uploads a new bundle to the server
39func PushBundle(config BundleConfig) error {
40 if err := validateConfig(config); err != nil {
41 return fmt.Errorf("invalid configuration: %w", err)
42 }
43
44 if err := prepareBuildDirectory(config.ProjectDir); err != nil {
45 return fmt.Errorf("failed to prepare build directory: %w", err)
46 }
47
48 if err := buildBundle(config); err != nil {
49 return fmt.Errorf("failed to build bundle: %w", err)
50 }
51
52 if config.Hermes {
53 if err := processHermesBundle(config); err != nil {
54 return fmt.Errorf("failed to process hermes bundle: %w", err)
55 }
56 }
57
58 hash, err := getHash(config.ProjectDir + "build")
59 if err != nil {
60 return fmt.Errorf("failed to generate hash: %w", err)
61 }
62
63 fileName := uuid.New().String() + ".zip"
64 if err := createAndUploadBundle(config, fileName, hash); err != nil {
65 return fmt.Errorf("failed to create and upload bundle: %w", err)
66 }
67
68 return nil
69}
70
71func validateConfig(config BundleConfig) error {
72 if config.TargetVersion == "" || config.AppName == "" || config.Environment == "" {

Callers 1

client.goFile · 0.92

Calls 6

validateConfigFunction · 0.85
prepareBuildDirectoryFunction · 0.85
buildBundleFunction · 0.85
processHermesBundleFunction · 0.85
getHashFunction · 0.85
createAndUploadBundleFunction · 0.85

Tested by

no test coverage detected