ci/run-build-and-tests: take a more high-level view

In the web UI of GitHub workflows, failed runs are presented with the
job step that failed auto-expanded. In the current setup, this is not
helpful at all because that shows only the output of `prove`, which says
which test failed, but not in what way.

What would help understand the reader what went wrong is the verbose
test output of the failed test.

The logs of the failed runs do contain that verbose test output, but it
is shown in the _next_ step (which is marked as succeeding, and is
therefore _not_ auto-expanded). Anyone not intimately familiar with this
would completely miss the verbose test output, being left mostly
puzzled with the test failures.

We are about to show the failed test cases' output in the _same_ step,
so that the user has a much easier time to figure out what was going
wrong.

But first, we must partially revert the change that tried to improve the
CI runs by combining the `Makefile` targets to build into a single
`make` invocation. That might have sounded like a good idea at the time,
but it does make it rather impossible for the CI script to determine
whether the _build_ failed, or the _tests_. If the tests were run at
all, that is.

So let's go back to calling `make` for the build, and call `make test`
separately so that we can easily detect that _that_ invocation failed,
and react appropriately.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Johannes Schindelin 2022-05-21 22:18:48 +00:00 коммит произвёл Junio C Hamano
Родитель 270ccd2a67
Коммит b95181cf82
1 изменённых файлов: 7 добавлений и 6 удалений

Просмотреть файл

@ -10,7 +10,7 @@ windows*) cmd //c mklink //j t\\.prove "$(cygpath -aw "$cache_dir/.prove")";;
*) ln -s "$cache_dir/.prove" t/.prove;; *) ln -s "$cache_dir/.prove" t/.prove;;
esac esac
export MAKE_TARGETS="all test" run_tests=t
case "$jobname" in case "$jobname" in
linux-gcc) linux-gcc)
@ -41,14 +41,15 @@ pedantic)
# Don't run the tests; we only care about whether Git can be # Don't run the tests; we only care about whether Git can be
# built. # built.
export DEVOPTS=pedantic export DEVOPTS=pedantic
export MAKE_TARGETS=all run_tests=
;; ;;
esac esac
# Any new "test" targets should not go after this "make", but should make
# adjust $MAKE_TARGETS. Otherwise compilation-only targets above will if test -n "$run_tests"
# start running tests. then
make $MAKE_TARGETS make test
fi
check_unignored_build_artifacts check_unignored_build_artifacts
save_good_tree save_good_tree