pruneStaleVms function
Implementation
Future<void> pruneStaleVms(
String buildJobId,
String runId, {
required String workerId,
}) async {
try {
final prefix = 'openci-vm-$workerId-';
final currentVm = currentVmName(workerId: workerId, buildJobId: buildJobId);
final vms = await lume.ls(showLogs: false);
final staleVms = vms
.where((vm) => vm.name.startsWith(prefix) && vm.name != currentVm)
.toList();
for (final vm in staleVms) {
_log.info(
'[$runId] Deleting stale VM: ${vm.name} (status: ${vm.status})',
);
await _stopAndDeleteVm(vm, label: 'stale', logPrefix: '[$runId] ');
}
} catch (e) {
_log.warning('[$runId] Error pruning stale VMs: $e');
}
}