On Thu, Oct 26, 2023 at 10:01 AM Patrick Steinhardt <ps@xxxxxx> wrote: > > We have some logic in place to create a directory with the output from > failed tests, which will then subsequently be uploaded as CI artifact. > We're about to add support for GitLab CI, which will want to reuse the > logic. > > Split the logic into a separate function so that it is reusable. > > Signed-off-by: Patrick Steinhardt <ps@xxxxxx> > --- > ci/lib.sh | 40 ++++++++++++++++++++++------------------ > 1 file changed, 22 insertions(+), 18 deletions(-) > > diff --git a/ci/lib.sh b/ci/lib.sh > index 957fd152d9c..33005854520 100755 > --- a/ci/lib.sh > +++ b/ci/lib.sh > @@ -137,6 +137,27 @@ handle_failed_tests () { > return 1 > } > > +create_failed_test_artifacts () { > + mkdir -p t/failed-test-artifacts > + > + for test_exit in t/test-results/*.exit > + do > + test 0 != "$(cat "$test_exit")" || continue > + > + test_name="${test_exit%.exit}" > + test_name="${test_name##*/}" > + printf "\\e[33m\\e[1m=== Failed test: ${test_name} ===\\e[m\\n" > + echo "The full logs are in the 'print test failures' step below." > + echo "See also the 'failed-tests-*' artifacts attached to this run." > + cat "t/test-results/$test_name.markup" > + > + trash_dir="t/trash directory.$test_name" > + cp "t/test-results/$test_name.out" t/failed-test-artifacts/ > + tar czf t/failed-test-artifacts/"$test_name".trash.tar.gz "$trash_dir" > + done > + return 1 Nit: I think it's more the responsibility of handle_failed_tests() to `return 1` than of create_failed_test_artifacts(). I understand that putting it into this new function means one more line that is common to several CI tools though. Otherwise everything in this series LGTM. Thanks!