Post nightly AI failure analysis to Slack - #10795
Conversation
df7afc4 to
4b06a9d
Compare
|
/ok to test 4b06a9d |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughSummary by CodeRabbit
WalkthroughThe CI failure-analysis action now uses a configured output directory, validates workflow context, generates separate GitHub and Slack reports, and exports both. Pull-request and nightly workflows consume the corresponding outputs. ChangesCI failure analysis
Suggested reviewers: Merge Risk: 🟡 Moderate · up to A validation failure can still exit successfully and allow stale nightly reports to be published to GitHub and Slack, potentially misleading responders. Fix or explicitly accept this bounded reporting risk before merging. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
.github/workflows/ci-workflow-nightly.yml (1)
232-241: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick winsuggestion: Set an explicit timeout for
publish-failure-analysis.The job invokes a third-party Slack action but sets no timeout. GitHub applies a 360-minute default job timeout, so a stalled request can occupy a runner for hours. Add a short
timeout-minutesvalue, or verify that the pinned action enforces a shorter timeout. (docs.github.com)As per path instructions, this addresses workflow status/check behavior in repository automation.
Sources: Path instructions, MCP tools
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 4046357b-f66b-4e3e-a0c2-7e20d16731a2
📒 Files selected for processing (4)
.github/actions/ci-failure-analysis/action.yml.github/actions/ci-failure-analysis/render.py.github/workflows/ci-workflow-nightly.yml.github/workflows/ci-workflow-pull-request.yml
| if __name__ == "__main__": | ||
| try: | ||
| main() | ||
| except ValidationError as error: | ||
| safe_error = str(error).replace("\r", "\\r").replace("\n", "\\n") | ||
| print(f"error: invalid CI triage output: {safe_error}", file=sys.stderr) | ||
| safe_error = str(error).encode("unicode_escape").decode("ascii") | ||
| print( | ||
| f"error: could not render CI triage output: {safe_error}", file=sys.stderr | ||
| ) |
There was a problem hiding this comment.
🩺 Stability & Availability | 🟠 Major | ⚡ Quick win
important: Exit with failure after ValidationError.
The handler prints the validation error and then exits with status 0. If OUTPUT_DIR contains old report files, the export step can publish stale reports after rendering fails. Terminate with a nonzero status.
except ValidationError as error:
safe_error = str(error).encode("unicode_escape").decode("ascii")
print(
f"error: could not render CI triage output: {safe_error}", file=sys.stderr
)
+ sys.exit(1)📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| if __name__ == "__main__": | |
| try: | |
| main() | |
| except ValidationError as error: | |
| safe_error = str(error).replace("\r", "\\r").replace("\n", "\\n") | |
| print(f"error: invalid CI triage output: {safe_error}", file=sys.stderr) | |
| safe_error = str(error).encode("unicode_escape").decode("ascii") | |
| print( | |
| f"error: could not render CI triage output: {safe_error}", file=sys.stderr | |
| ) | |
| if __name__ == "__main__": | |
| try: | |
| main() | |
| except ValidationError as error: | |
| safe_error = str(error).encode("unicode_escape").decode("ascii") | |
| print( | |
| f"error: could not render CI triage output: {safe_error}", file=sys.stderr | |
| ) | |
| sys.exit(1) |
⏱️ CCCL compile-time benchmark comparison: Public headers compile-time benchResult: 0 regression row(s), 2 improvement row(s) above threshold.
Artifacts: reports and traces Direct file processing
🟢 Direct file processing — Improvements
|
🥳 CI Workflow Results🟩 Finished in 1h 45m: Pass: 100%/531 | Total: 5d 10h | Max: 1h 33m | Hits: 97%/639928See results here. |
4b06a9d to
967a7e3
Compare
Summary
Validation
thrust::minmax_elementcauses a segmentation fault #772