-
-
Notifications
You must be signed in to change notification settings - Fork 56
ci: optimize CI workflow performance #465
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughAdded concurrency blocks to CI workflows, introduced a matrix-driven boolean flag to conditionally enable code coverage, expanded cache keys to include matrix dimensions (PHP, DB, dependency variants), and updated Composer scripts to invoke Changes
Sequence Diagram(s)sequenceDiagram
autonumber
participant GH as GitHub Actions
participant WF as Workflow (ci/integration/unit)
participant Matrix as Matrix Engine
participant Cache as Actions Cache
participant Runner as Job Runner
participant PHPUnit as phpunit
note over GH,WF #E8F8F5: Trigger (push/PR)
GH->>WF: start workflow
WF->>Matrix: expand matrix (includes calculate-code-coverage)
Matrix-->>WF: matrix jobs
par for each matrix job
WF->>Cache: compute/restore cache key (includes PHP/DB/deps)
Cache-->>Runner: hit/miss
WF->>Runner: run tests
alt calculate-code-coverage = true
Runner->>Runner: export XDEBUG_MODE=coverage
Runner->>PHPUnit: phpunit --configuration=... (collect coverage)
Runner->>WF: upload coverage artifact
else calculate-code-coverage = false
Runner->>PHPUnit: phpunit --configuration=... --no-coverage
end
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
🔇 Additional comments (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
- Remove XDEBUG_MODE from composer scripts to avoid redundancy - Update workflows to explicitly set XDEBUG_MODE=coverage when coverage is needed - Use --no-coverage flag when xdebug is not installed to prevent warnings - This fixes 'No code coverage driver available' warning causing CI failures
- Scrutinizer needs XDEBUG_MODE=coverage to generate coverage reports - This aligns with the GitHub Actions workflow approach
Summary by CodeRabbit