grim/convey

bd445f33e472
Parents e580fa49efac
Children b412c2b5fc64
Move the map of runtime.Task's to the Runtime instance
--- a/plans/plans.go Thu Dec 23 08:50:45 2021 -0600
+++ b/plans/plans.go Thu Dec 23 08:56:02 2021 -0600
@@ -45,7 +45,7 @@
}
// Execute runs the plan.
-func (p *Plan) Execute(path string, tasks map[string]runtime.Task, configEnv environment.Environment, rt *runtime.Runtime) error {
+func (p *Plan) Execute(path string, configEnv environment.Environment, rt *runtime.Runtime) error {
if err := p.Valid(); err != nil {
return err
}
@@ -72,7 +72,7 @@
if stage.ShouldRun(planErr) {
stageLogger.Info("stage starting")
- err := stage.Execute(absStageName, stageLogger, tasks, planEnv, rt)
+ err := stage.Execute(absStageName, stageLogger, planEnv, rt)
elapsed := time.Since(start)
rt.Timeout -= elapsed
--- a/plans/stages_test.go Thu Dec 23 08:50:45 2021 -0600
+++ b/plans/stages_test.go Thu Dec 23 08:56:02 2021 -0600
@@ -30,9 +30,10 @@
func runPlan(path string, p Plan, tasks map[string]runtime.Task) error {
env := environment.New()
rt := runtime.New(env, "", false, false, 0*time.Second)
+ rt.Tasks = tasks
defer rt.Shutdown()
- return p.Execute(path, tasks, environment.New(), rt)
+ return p.Execute(path, environment.New(), rt)
}
func TestPlanStagesNone(t *testing.T) {
--- a/runner/cmd.go Thu Dec 23 08:50:45 2021 -0600
+++ b/runner/cmd.go Thu Dec 23 08:56:02 2021 -0600
@@ -44,6 +44,7 @@
env := environment.New(c.Environment...)
rt := runtime.New(env, configPath, c.ForceSequential, c.KeepWorkspace, c.Timeout)
+ rt.Tasks = cfg.Tasks
defer rt.Shutdown()
if c.CpuShares != "" {
@@ -56,7 +57,7 @@
configEnv := environment.New(cfg.Environment...)
- return plan.Execute(name, cfg.Tasks, configEnv, rt)
+ return plan.Execute(name, configEnv, rt)
}
func (c *RunnerCmd) runPlans(ctx context.Context, cfg *config.Config) error {
--- a/runtime/runtime.go Thu Dec 23 08:50:45 2021 -0600
+++ b/runtime/runtime.go Thu Dec 23 08:56:02 2021 -0600
@@ -37,6 +37,8 @@
Memory string
Timeout time.Duration
+ Tasks map[string]Task
+
workspace *fs.Directory
}
@@ -47,6 +49,7 @@
ForceSequential: forceSequential,
KeepWorkspace: keepWorkspace,
Timeout: timeout,
+ Tasks: map[string]Task{},
}
rt.Environment.LoadDefaults(configPath)
--- a/stages/stages.go Thu Dec 23 08:50:45 2021 -0600
+++ b/stages/stages.go Thu Dec 23 08:56:02 2021 -0600
@@ -71,7 +71,7 @@
}
// Execute runs the stage.
-func (s *Stage) Execute(path string, logger *log.Entry, taskMap map[string]runtime.Task, env environment.Environment, rt *runtime.Runtime) error {
+func (s *Stage) Execute(path string, logger *log.Entry, env environment.Environment, rt *runtime.Runtime) error {
stageEnv := env.Copy().Merge(env).MergeSlice(s.Environment)
if s.Concurrent && !rt.ForceSequential {
@@ -101,7 +101,7 @@
wg.Add(1)
go func(path, name string, res chan error) {
defer wg.Done()
- res <- s.runTask(path, name, stageEnv, taskMap, rt)
+ res <- s.runTask(path, name, stageEnv, rt)
}(path, taskName, taskRes)
}
@@ -115,7 +115,7 @@
// serial execution
for _, taskName := range s.Tasks {
- err := s.runTask(path, taskName, stageEnv, taskMap, rt)
+ err := s.runTask(path, taskName, stageEnv, rt)
if err != nil {
return err
}
@@ -124,13 +124,13 @@
return nil
}
-func (s *Stage) runTask(path, name string, stageEnv environment.Environment, taskMap map[string]runtime.Task, rt *runtime.Runtime) error {
+func (s *Stage) runTask(path, name string, stageEnv environment.Environment, rt *runtime.Runtime) error {
absTaskName := fmt.Sprintf("%s/%s", path, name)
taskLogger := logging.NewAdapter(fmt.Sprintf("%s/%s", path, name))
taskLogger.Info("starting")
- task, found := taskMap[name]
+ task, found := rt.Tasks[name]
if !found {
taskLogger.Error("failed, task not found")