in executors/docker/machine/provider.go [383:403]
func (m *machineProvider) Release(config *common.RunnerConfig, data common.ExecutorData) error {
// Release machine
details, ok := data.(*machineDetails)
if ok {
// Mark last used time when is Used
if details.State == machineStateUsed {
details.Used = time.Now()
}
// Remove machine if we already used it
if config != nil && config.Machine != nil &&
config.Machine.MaxBuilds > 0 && details.UsedCount >= config.Machine.MaxBuilds {
err := m.remove(details.Name, "Too many builds")
if err == nil {
return nil
}
}
details.State = machineStateIdle
}
return nil
}