in runner/server.go [52:84]
func (s *Server) Run() error {
if err := s.deployRunnerGroups(); err != nil {
return fmt.Errorf("failed to deploy runner group %w", err)
}
go s.waitForRunnerGroups()
r := mux.NewRouter()
// NOTE: Please update ./runnergroup_list.go if endpoint has been changed.
r.HandleFunc("/v1/runnergroups", s.listRunnerGroupsHandler).Methods("GET")
// NOTE: Please update ./runnergroup_result.go if endpoint has been changed.
r.HandleFunc("/v1/runnergroups/summary", s.getRunnerGroupsSummary).Methods("GET")
r.HandleFunc("/v1/runnergroups/{runner_name}/result", s.postRunnerGroupsRunnerResult).Methods("POST")
errCh := make(chan error, len(s.listeners))
var wg sync.WaitGroup
for _, lis := range s.listeners {
wg.Add(1)
go func(l net.Listener) {
defer wg.Done()
//nolint:gosec
errCh <- http.Serve(l, r)
}(lis)
}
wg.Wait()
for err := range errCh {
if err != nil {
return err
}
}
return nil
}