You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Replace sequential CI validations with parallel ddev validate all command (DataDog#23249)
* Replace sequential CI validations with parallel ddev validate all command
Made-with: Cursor
* Refactor validate all into a package with tests
- Split all.py into all/ package: __init__.py (click command),
github.py (CI helpers, PR comment formatting), orchestrator.py
(processor, orchestrator, constants)
- Make orchestrator timeouts configurable via --grace-period,
--max-timeout, --subprocess-timeout CLI options
- Default validations to ALL_CORE_VALIDATIONS when not supplied
- Improve test coverage: parametrize processor tests, extract
CapturingOrchestrator, add integration tests through ddev CLI
* Add changelog entry for ddev validate all command
* Add --fix flag, console failure details, and unified VALIDATIONS config
- Consolidate ALL_CORE_VALIDATIONS, REPO_WIDE_VALIDATIONS, and FIX_FLAGS
into a single VALIDATIONS dict with ValidationConfig dataclass
- Add --fix flag that passes --sync/--fix to each validation that supports it
- Print failure output and fix commands in console summary
- Show auto-fix hint in both console output and PR comments on failure
* Delete old validation comments before posting, split tests into package
- Add get_pull_request_comments and delete_comment to GitHubManager
- Delete previous Validation Report comments before posting a new one
- Split test_all.py into tests/cli/validate/all/ package:
conftest.py, test_github.py, test_orchestrator.py, test_command.py
* Fix mypy error: pass pr_number explicitly to _delete_previous_comments
* Add permissions for OIDC token exchange to both caller and callee workflows
* Add logging to PR comment posting, remove policy file already on master
* Always post validation report as markdown table
- Post PR comment on every run (not just on failures)
- Replace verbose collapsible output with a concise markdown table (validation name + ✅/❌)
- Remove individual validation output from comment/summary since the run link is available
- Simplify console output to match the table format
* Remove verbose console output and silence httpx request logs
* Print failure output to console with rich Rules for each failed validation
* Add per-validation fix hint to console failure output
* Fix UnicodeEncodeError on Windows by writing step summary as UTF-8
* Show both stdout and stderr in console failure output
* Make validation list configurable via .ddev/config.toml
Read the list of validations to run from the top-level `validations`
key in `.ddev/config.toml`. This allows each repo to enable/disable
specific validations. When the key is absent, all known validations
run (preserving current behavior). Unknown names emit a warning and
are skipped.
Made-with: Cursor
* Move load_validations to command module and abort on empty config
Move _load_validations from orchestrator.py to __init__.py where it
belongs as a config-loading concern. Abort with a clear error message
when the configured validation list is empty, preventing the
ThreadPoolExecutor(max_workers=0) crash.
Made-with: Cursor
github.rest.issues.createComment({ issue_number, owner, repo, body: "The `validations` job has failed; please review the `Files changed` tab for possible suggestions to resolve." });
0 commit comments