fix(runs): report cancelled runs to GitHub correctly and stop the shell process - #149
Open
KrisPowers wants to merge 5 commits into
Open
fix(runs): report cancelled runs to GitHub correctly and stop the shell process#149KrisPowers wants to merge 5 commits into
KrisPowers wants to merge 5 commits into
Conversation
The commit status API has no native cancelled state, only error/failure/pending/success. Mapping cancelled runs to error keeps them distinguishable from an actual failure on GitHub's side.
report_run_outcome collapsed every non-succeeded status to a failure commit status, so a cancelled run showed up on GitHub looking like it had actually failed instead of being cancelled.
Cancelling a run tore down its Docker containers and bucket shards but never touched the shell subprocess actually driving the job DAG, so it kept running against sandboxes that had already been pulled out from under it. Its supervisor only reports the run's outcome back to GitHub once that process exits, so a cancelled run's commit status could stay stuck on pending indefinitely instead of ever updating.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
cancel()now kills the local shell's whole process tree before tearing down its containers/shards.error(with a "Workflow run was cancelled" description) instead offailure, both from the immediate cancel path and fromreport_run_outcome's three-way status match.Test plan
cargo test -p atk-github status::passes, including a new test assertingmark_cancelledpostserrorstate.cargo check -p atk-github -p actions-toolkit-backendis clean.