diff --git a/server/internal/api/workflows.go b/server/internal/api/workflows.go index f65b297..ac761ac 100644 --- a/server/internal/api/workflows.go +++ b/server/internal/api/workflows.go @@ -119,7 +119,12 @@ func updateWorkflow(c *gin.Context) { return } services.LogEvent("workflow.updated", actorFromCtx(c), "", c.Param("id"), "workflow updated") - c.JSON(http.StatusOK, gin.H{"updated": true}) + updated, err := services.GetWorkflow(c.Param("id")) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + c.JSON(http.StatusOK, updated) } func deleteWorkflow(c *gin.Context) { diff --git a/server/internal/services/workflow_runner.go b/server/internal/services/workflow_runner.go index 88b3194..c5f0358 100644 --- a/server/internal/services/workflow_runner.go +++ b/server/internal/services/workflow_runner.go @@ -86,6 +86,16 @@ func resolveSteps(wf *models.Workflow) ([]models.ResolvedStep, error) { if err != nil { return nil, err } + inputs := map[string]string{} + for _, p := range lib.DeclaredInputs { + if ref.Inputs != nil { + if v, ok := ref.Inputs[p.Name]; ok { + inputs[p.Name] = v + continue + } + } + inputs[p.Name] = p.Default + } rs := models.ResolvedStep{ Order: ref.Order, Name: lib.Name, @@ -94,6 +104,7 @@ func resolveSteps(wf *models.Workflow) ([]models.ResolvedStep, error) { SecretRefs: lib.SecretRefs, OnFailure: ref.OnFailure, MaxRetries: ref.MaxRetries, + Inputs: inputs, } if ref.Overrides != nil { if ref.Overrides.Script != nil { @@ -174,6 +185,9 @@ func runServer(runID string, srvIdx int, steps []models.ResolvedStep, serverID s allSecrets[k] = v } cmdEnv := map[string]string{} + for k, v := range step.Inputs { + cmdEnv[k] = v + } for k, v := range runEnv { cmdEnv[k] = v }