PushBundle uploads a new bundle to the server
(config BundleConfig)
| 37 | |
| 38 | // PushBundle uploads a new bundle to the server |
| 39 | func 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 | |
| 71 | func validateConfig(config BundleConfig) error { |
| 72 | if config.TargetVersion == "" || config.AppName == "" || config.Environment == "" { |
no test coverage detected