code: func ticker(d time.Duration) chan struct{} {
  	t := time.NewTicker(d)
  	stop := make(chan struct{})
  	go func() {
  		for {
  			select {
  			case <-t.C:
  				log.Printf("tick (just for keeping CI job active) per %s", d.String())
  			case <-stop:
  				t.Stop()
  			}
  		}
  	}()
  	return stop
  }
docs: // ticker is needed for some CI (e.g., on Travis, job is aborted when no output emitted for 10 minutes)