This can happen due to not only programmatic problems with tested code, but also CI issues (failed to check out, killed by OOM, etc. - and a slowbuild-run/MATRIX_TAG=... status emerges). In that case the same code is okay to rebuild, but an obsolete status remains in GitHub.
It might be possible to detect if a status for a build cell exists when we start it, re-post it as PENDING and remember to explicitly post a SUCCESS (as e.g. "Fixed since last build"). Probably this would best fit generally in Dynamatrix::generateBuild() loop that also posts other slowbuild-run/* messages, and not in individual buildMatrixCell implementations. Not sure if the github plugin allows that - maybe this is best pursued by PRing a https://github.com/jenkinsci/github-plugin/tree/master/src/main/java/org/jenkinsci/plugins/github/status "GitHubCommitStatusGetter" first, rather than adding direct GH interactions to this JSL :)
Note however that for builds failed due to external circumstances, a more likely emitter of such messages would be shellcheck/spellcheck/stylecheck "quick-run" steps which are handled separately at this time.
Not pursuing currently as this is a relatively rare situation.
This can happen due to not only programmatic problems with tested code, but also CI issues (failed to check out, killed by OOM, etc. - and a
slowbuild-run/MATRIX_TAG=...
status emerges). In that case the same code is okay to rebuild, but an obsolete status remains in GitHub.Per https://docs.github.com/en/rest/commits/statuses?apiVersion=2022-11-28 and https://www.jenkins.io/doc/pipeline/steps/github/ there seems to be no way to delete a commit-status entry. It is also too expensive to pre-set states for each matrix cell (and feasible to exceed the allowed 1000 contexts per commit, never mind getting lost in those during manual review).
It might be possible to detect if a status for a build cell exists when we start it, re-post it as PENDING and remember to explicitly post a SUCCESS (as e.g. "Fixed since last build"). Probably this would best fit generally in
Dynamatrix::generateBuild()
loop that also posts otherslowbuild-run/*
messages, and not in individual buildMatrixCell implementations. Not sure if the github plugin allows that - maybe this is best pursued by PRing a https://github.com/jenkinsci/github-plugin/tree/master/src/main/java/org/jenkinsci/plugins/github/status "GitHubCommitStatusGetter" first, rather than adding direct GH interactions to this JSL :)Note however that for builds failed due to external circumstances, a more likely emitter of such messages would be shellcheck/spellcheck/stylecheck "quick-run" steps which are handled separately at this time.
Not pursuing currently as this is a relatively rare situation.