Repository navigation
ci: post Unit Tests push runs to Discussions (#2030) - #2036
Conversation
|
GOOD TO GO at
Unverified until a live run: whether |
|
Coverage: 91.54% (unit tier, Python 3.15,
Per-file detail: the |
38ecd1c to
cf9bf9b
Compare
cf9bf9b to
8eaa82f
Compare
|
Amended to |
|
GOOD TO GO at |
|
Ordering check on |
|
resolve conflicts |
8eaa82f to
1de9817
Compare
|
Rebase only, no new changes: CI on the previous head |
- coverage-comment.yml: a `discussion` job takes Unit Tests runs whose
event is `push` and posts them as `--mode push` to
`unit-tests: <branch> push runs`. Its report comes from the run's check
suite in one GraphQL call: run link, commit, conclusion, the jobs that
did not pass and the annotations of those that did. A green run with a
failed non-blocking job or a warning annotation reports `warning`.
- `EXPECTED` lists the annotations main's KTLO legs write by design (the
3.7 and pypy3.10 install failures), by job, level and title prefix;
they neither count nor appear. Any other annotation still counts.
- It alone holds `discussions: write`, beside `checks: read` and
`contents: read` for a sparse checkout of the default branch's script.
Top-level permissions are now `{}`; `comment` keeps its own scopes.
- A push relay's concurrency group is its own run's, so a newer relay
cannot cancel a pending one; a pull request's group is unchanged.
- tests/project/test_unit_tests_push_reports_2030.py: the job layout,
scopes, events and checkout, the conclusion-to-status mapping, the
by-design list and run 39718608950's annotations, the report against a
stand-in gh, and both steps end to end.
- workflows.rst: CI Reports covers the relay.
1de9817 to
3bbddff
Compare
|
Rebase only, no new changes: CI on the previous head |
make pylint,make mypy,make isort)make testpasses, and a test case covers the changeWhat is the purpose of your pull request?
ci— workflows or build toolingDescription of your pull request and other information
#2030 PR 2. Stacked on #2033, so review only the top commit. Draft: the question on #2030 about what counts as "warned" is still open.
coverage-comment.ymlgains adiscussionjob ("Post the push run report"). It runs when a relayedUnit Testsrun's event ispush, and holds onlychecks: read,contents: readanddiscussions: write. Thecommentjob'sif:is untouched, and its scopes move onto the job.unit-tests: <branch> push runs. The status comes from the run's conclusion; a green run whose jobs failed undercontinue-on-error, or carry warning annotations, counts aswarning. The report lists the run, the sha, the jobs that did not pass and their annotation titles, each as a code span.util/discussion_report.pyonly, from the default branch. The relayed head is never checked out.mainrun cannot cancel a pending report.The pins fail on #2033's workflow (
74 failed) and pass here (18 passed). One end-to-end test runs both steps and the real script against a stand-in GitHub: silent, warning, failure, back to green, silent. The 49 files that read the workflows give1175 passed.