in runner/server_runnergroup.go [15:43]
func (s *Server) deployRunnerGroups() error {
targetAddr, err := s.firstNonLocalAddr()
if err != nil {
return err
}
uploadURL := fmt.Sprintf("http://%s/v1/runnergroups/$(POD_NAME)/result", targetAddr)
var wg sync.WaitGroup
errCh := make(chan error, len(s.groups))
for idx := range s.groups {
wg.Add(1)
g := s.groups[idx]
go func() {
defer wg.Done()
errCh <- g.Deploy(context.Background(), uploadURL)
}()
}
wg.Wait()
close(errCh)
for err := range errCh {
if err != nil {
return err
}
}
return nil
}