From d5b753d5d345b4bb3a4e843746eadef2ffe9b1f3 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Mon, 13 Nov 2023 16:27:27 +0100 Subject: [PATCH] ci: avoid running the test suite _twice_ This is a late amendment of 19ec39aab54 (ci: stop linking the `prove` cache, 2022-07-10), fixing a bug that had been hidden so far. The bug is that the `.prove` cache stores information about previous `prove` runs (`save`) and uses them (`slow`, to run the tests in the order from longer-running to shorter ones). This bug can cause some surprising behavior: when the Prove cache contains a reference to a test script, subsequent `prove` runs (with `--state=slow`) will run the same test script again even if said script is not specified on the `prove` command-line! So far, this bug did not matter. Right until d8f416bbb87c (ci: run unit tests in CI, 2023-11-09) it did not matter. But starting with that commit, we run `prove` _twice_ in CI, and with completely different sets of tests to run. Due to the bug, the second invocation re-runs all of the tests that were already run as part of the first invocation. This not only wastes build minutes, it also frequently causes the `osx-*` jobs to fail because they already take a long time and now are likely to run into a timeout. The worst part about it is that there is actually no benefit to keep running with `--state=slow,save`, ever since we decided no longer to try to reuse the Prove cache between CI runs. So let's just drop that Prove option and live happily ever after. Signed-off-by: Johannes Schindelin --- ci/lib.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/lib.sh b/ci/lib.sh index 643e75d0577d85..c749b21366b950 100755 --- a/ci/lib.sh +++ b/ci/lib.sh @@ -281,7 +281,7 @@ else fi MAKEFLAGS="$MAKEFLAGS --jobs=$JOBS" -GIT_PROVE_OPTS="--timer --jobs $JOBS --state=failed,slow,save" +GIT_PROVE_OPTS="--timer --jobs $JOBS" GIT_TEST_OPTS="$GIT_TEST_OPTS --verbose-log -x" case "$CI_OS_NAME" in