Closed Totktonada closed 2 years ago
For example, push job:
Pull request job:
I catched it, because observed successful debug_coverage push job with 10 seconds duration.
The commit, where I see it: https://github.com/tarantool/tarantool/commit/e6fccad16f8ccdda8797e9627a8ea5e2e5213a85.
It was decided to split the debug_coverage.yml workflow into two independent workflows: debug.yml and coverage.yml.
The first one will be run on push to a branch and creating/updating external pool requests. In other words, it will be run always.
The second one will be run on push to a branch only if the branch has
the full-ci
suffix (some-branch-full-ci) or the full-ci
label is set
on a pool request, internal or external - it doesn't matter.
Reasoning:
The coverage testing is heavy testing due to enabling long tests and takes at least 2 times more time than debug build testing. So testing that is done at the first stage (lint, release, debug) will pass faster.
The coverage report as a pool request comment from coveralls.io can
be obtained only if a pool request event happened. It is a limitation
of the coverallsapp/github-action
action [1]. So there is no sense to
run the coverage workflow on push events. But the coverage report on
push still can be seen on coveralls.io if the branch has the full-ci
suffix.
The logic of the debug_coverage.yml workflow is tricky enough and no one understands how it works. So we would like to have an absolutely transparent and simple workflow.
The coverage testing is heavy testing due to enabling long tests and takes at least 2 times more time than debug build testing.
Also due to gcov instrumentation, which has its cost.
It seems, it is clash of https://github.com/tarantool/tarantool/commit/660e3263b9ea661c2adea23fbc905757e3fc79db (where we prefer pull request run even on pull requests from inside the repository) and https://github.com/tarantool/tarantool/commit/6c2e664e4f1419796269f6c3bd3db620acfd1c35 (where we switched it to run on push on such pull requests, but kept the logic for discarding push job if there is a pull request job).
I hope this complex logic for reporting coveralls results may be implemented in some simpler way.