this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

perf(controller): push to Git and OCI concurrently

Prefer availability over consistency.

Khue Doan fd0dff58 8226a41b

+15 -10
+15 -10
controller/workflows/app_update.go
··· 95 95 return fmt.Errorf("failed to commit changes to git: %w", err) 96 96 } 97 97 98 - // Step 5: Git push changes 99 - if err := workflow.ExecuteActivity( 98 + // Step 5 & 6: Execute GitPush and PushRenderedApp concurrently 99 + gitPushFuture := workflow.ExecuteActivity( 100 100 workflow.WithActivityOptions(ctx, workflow.ActivityOptions{ 101 101 StartToCloseTimeout: 1 * time.Minute, 102 102 }), 103 103 activities.GitPush, 104 104 workspace, 105 - ).Get(ctx, nil); err != nil { 106 - logger.Error("Failed to push changes to git", "error", err) 107 - return fmt.Errorf("failed to push changes to git: %w", err) 108 - } 105 + ) 109 106 110 - // Step 6: Push rendered app to registry 111 - var pushResult *activities.PushResult 112 - if err := workflow.ExecuteActivity( 107 + pushRenderedAppFuture := workflow.ExecuteActivity( 113 108 workflow.WithActivityOptions(ctx, workflow.ActivityOptions{ 114 109 StartToCloseTimeout: 2 * time.Minute, 115 110 }), ··· 119 114 input.App, 120 115 input.Cluster, 121 116 input.Registry, 122 - ).Get(ctx, &pushResult); err != nil { 117 + ) 118 + 119 + // Wait for GitPush to complete 120 + if err := gitPushFuture.Get(ctx, nil); err != nil { 121 + logger.Error("Failed to push changes to git", "error", err) 122 + return fmt.Errorf("failed to push changes to git: %w", err) 123 + } 124 + 125 + // Wait for PushRenderedApp to complete 126 + var pushResult *activities.PushResult 127 + if err := pushRenderedAppFuture.Get(ctx, &pushResult); err != nil { 123 128 logger.Error("Failed to push rendered app to registry", "error", err) 124 129 return fmt.Errorf("failed to push rendered app to registry: %w", err) 125 130 }