mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-06-28 18:56:59 +00:00
[rocm-libraries] ROCm/rocm-libraries#8560 (commit f8362a1)
[CK][CI] Post failure GitHub status on stage build errors (#8560) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Motivation Failed CI stages (e.g. Static checks) were left stuck on a `pending` GitHub status instead of reporting `failure`, so PRs showed an overall failure with no indication of which check actually failed. ## Technical Details `buildAndTest` posted `pending`/`success` statuses but its catch only rethrew, deferring failure reporting to `runOnHealthyNode` — which deferred right back. Neither posted `failure`. This adds a `failure` status post for real build errors in `buildAndTest`, while letting node-reroute signals (`NodeFault`/`TransientFault`) and aborts (`FlowInterruptedException`) propagate untouched so retries still work. Since every stage routes through `buildAndTest`, this fixes both the directly-called `Static checks` stage and the `runOnHealthyNode`-wrapped per-arch build stages. ## Test Plan Trigger a stage failure (e.g. introduce a clang-format violation) and confirm the corresponding GitHub status context transitions `pending` → `failure` rather than remaining `pending`. ## Test Result Pending CI run on a branch with a deliberate failure to confirm the status transition. ## Submission Checklist - [ ] Look over the contributing guidelines at https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests. Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
committed by
assistant-librarian[bot]
parent
bad7870830
commit
8864dcc3a4
@@ -1025,8 +1025,12 @@ def buildAndTest(Map conf=[:]){
|
||||
}
|
||||
setGithubStatus("${env.STAGE_NAME}", 'success', "Stage ${env.STAGE_NAME} passed")
|
||||
}
|
||||
catch (org.ck.NodeFault e) { throw e } // reroute handled by runOnHealthyNode
|
||||
catch (org.ck.TransientFault e) { throw e } // retry handled by runOnHealthyNode
|
||||
catch (org.jenkinsci.plugins.workflow.steps.FlowInterruptedException e) { throw e } // abort: no status update
|
||||
catch (Exception e){
|
||||
throw e // runOnHealthyNode sets failure status — not here
|
||||
setGithubStatus("${env.STAGE_NAME}", 'failure', "Stage ${env.STAGE_NAME} failed")
|
||||
throw e
|
||||
}
|
||||
return retimage
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user