···1515 Command string
1616 Name string
1717 Environment map[string]string
1818+ Kind StepKind
1819}
2020+2121+type StepKind int
2222+2323+const (
2424+ // steps injected by the CI runner
2525+ StepKindSystem StepKind = iota
2626+ // steps defined by the user in the original pipeline
2727+ StepKindUser
2828+)
19292030type Workflow struct {
2131 Steps []Step
···4656 sstep.Environment = stepEnvToMap(tstep.Environment)
4757 sstep.Command = tstep.Command
4858 sstep.Name = tstep.Name
5959+ sstep.Kind = StepKindUser
4960 swf.Steps = append(swf.Steps, sstep)
5061 }
5162 swf.Name = twf.Name
···5970 setup.addStep(nixConfStep())
6071 setup.addStep(cloneStep(*twf, *pl.TriggerMetadata.Repo, cfg.Server.Dev))
6172 setup.addStep(checkoutStep(*twf, *pl.TriggerMetadata))
6262- setup.addStep(dependencyStep(*twf))
7373+ // this step could be empty
7474+ if s := dependencyStep(*twf); s != nil {
7575+ setup.addStep(*s)
7676+ }
63776478 // append setup steps in order to the start of workflow steps
6579 swf.Steps = append(*setup, swf.Steps...)
+3-3
spindle/models/setup_steps.go
···8383// For dependencies using a custom registry (i.e. not nixpkgs), it collects
8484// all packages and adds a single 'nix profile install' step to the
8585// beginning of the workflow's step list.
8686-func dependencyStep(twf tangled.Pipeline_Workflow) Step {
8686+func dependencyStep(twf tangled.Pipeline_Workflow) *Step {
8787 var customPackages []string
88888989 for _, d := range twf.Dependencies {
···111111 "NIX_SHOW_DOWNLOAD_PROGRESS": "0",
112112 },
113113 }
114114- return installStep
114114+ return &installStep
115115 }
116116- return Step{}
116116+ return nil
117117}