Problem
Full-tier CI invokes the package test operation for packages that declare no test targets. SwiftPM then exits with error: no tests found, producing identical false-red build legs across platforms even though the required build and quality checks are green.
Exact-head evidence:
Required outcome
- Derive test-target presence from the package graph during planning.
- Packages with test targets continue to run the test operation.
- Packages without test targets receive a build-only verification operation and do not fail merely because SwiftPM reports no tests.
- Keep the decision typed and central; package callers remain input-free and packages do not choose their CI behavior.
- Add positive and negative fixtures proving both planner dispositions.
- Fresh full-tier runs for the three exact package heads complete green without package-local configuration.
Problem
Full-tier CI invokes the package test operation for packages that declare no test targets. SwiftPM then exits with
error: no tests found, producing identical false-red build legs across platforms even though the required build and quality checks are green.Exact-head evidence:
Required outcome