@@ -360,10 +360,23 @@ def main():
360360 available_runners = list_project_runners ()
361361 if not available_runners :
362362 print ("[WARN] Could not enumerate project runners or none found; using conservative mode for tagged groups." )
363+ else :
364+ print (f"\n === Available Runners ({ len (available_runners )} ) ===" )
365+ for runner in available_runners :
366+ runner_id = runner .get ("id" , "?" )
367+ runner_desc = runner .get ("description" , "" )
368+ runner_tags = runner .get ("tag_list" , [])
369+ runner_active = runner .get ("active" , False )
370+ runner_paused = runner .get ("paused" , False )
371+ status = "ACTIVE" if (runner_active and not runner_paused ) else "INACTIVE/PAUSED"
372+ print (f" Runner #{ runner_id } ({ status } ): { runner_desc } " )
373+ print (f" Tags: { ', ' .join (runner_tags ) if runner_tags else '(none)' } " )
374+ print ("=" * 60 + "\n " )
363375
364376 # Accumulate all missing-runner groups to emit a single stub job
365377 missing_groups : list [dict ] = []
366378
379+ print (f"\n === Test Group Scheduling ===" )
367380 for (chip , tagset , test_type ), test_dirs in group_map .items ():
368381 tag_list = sorted (tagset )
369382 # Build name suffix excluding the SOC itself to avoid duplication
@@ -374,6 +387,13 @@ def main():
374387 can_schedule = True
375388 if available_runners :
376389 can_schedule = any_runner_matches (tag_list , available_runners )
390+ print (f" Group: { chip } -{ test_type } -{ tag_suffix } " )
391+ print (f" Required tags: { ', ' .join (tag_list )} " )
392+ print (f" Tests: { len (test_dirs )} " )
393+ if can_schedule :
394+ print (f" ✓ Runner found" )
395+ else :
396+ print (f" ✗ NO RUNNER FOUND - will create error report stub" )
377397 else :
378398 # Conservative mode when we cannot list runners: treat groups that require extra
379399 # tags beyond the SOC or 'generic' as missing-runner to avoid running on generic.
@@ -382,6 +402,10 @@ def main():
382402 extra = [t for t in tag_list if t not in (chip , "generic" )]
383403 if extra :
384404 can_schedule = False
405+ print (f" Group: { chip } -{ test_type } -{ tag_suffix } " )
406+ print (f" Required tags: { ', ' .join (tag_list )} " )
407+ print (f" Tests: { len (test_dirs )} " )
408+ print (f" ? Conservative mode: { 'can schedule' if can_schedule else 'treating as missing' } " )
385409
386410 if can_schedule :
387411 job_name = f"hw-{ chip } -{ test_type } -{ tag_suffix } " [:255 ]
@@ -410,6 +434,20 @@ def main():
410434 }
411435 )
412436
437+ # Print summary
438+ scheduled_count = len ([e for e in jobs_entries if e [1 ] != "hw-missing-runners" ])
439+ print (f"\n === Summary ===" )
440+ print (f" Scheduled groups: { scheduled_count } " )
441+ print (f" Missing runner groups: { len (missing_groups )} " )
442+ if missing_groups :
443+ print (f"\n Missing runner details:" )
444+ for mg in missing_groups :
445+ chip = mg .get ("chip" )
446+ test_type = mg .get ("test_type" )
447+ tags = mg .get ("required_tags" , [])
448+ test_count = len (mg .get ("test_dirs" , []))
449+ print (f" - { chip } -{ test_type } : requires tags { tags } , { test_count } tests" )
450+
413451 # If any groups are missing runners, create one combined stub job to emit all JUnit errors
414452 if missing_groups :
415453 job_name = "hw-missing-runners"
0 commit comments