| 281 | } |
| 282 | |
| 283 | func addBuildDependencies(services []string, project *types.Project) []string { |
| 284 | servicesWithDependencies := utils.NewSet(services...) |
| 285 | for _, service := range services { |
| 286 | s, ok := project.Services[service] |
| 287 | if !ok { |
| 288 | s = project.DisabledServices[service] |
| 289 | } |
| 290 | b := s.Build |
| 291 | if b != nil { |
| 292 | for _, target := range b.AdditionalContexts { |
| 293 | if s, found := strings.CutPrefix(target, types.ServicePrefix); found { |
| 294 | servicesWithDependencies.Add(s) |
| 295 | } |
| 296 | } |
| 297 | } |
| 298 | } |
| 299 | if len(servicesWithDependencies) > len(services) { |
| 300 | return addBuildDependencies(servicesWithDependencies.Elements(), project) |
| 301 | } |
| 302 | return servicesWithDependencies.Elements() |
| 303 | } |