ci: enable EXPENSIVE for contributor builds

Earlier, we enabled EXPENSIVE tests for pushes to integration branches. As we didn't have any CI jobs that run these tests, this was a step in the right direction. It however is an ineffective and inefficient use of the maintainer time, which does not scale, to allow contributors to send changes that are less tested at the list, only to force the maintainer notice breakages caused by their changes but only after these changes are mixed with changes from other contributors. The problematic topic needs to be isolated by bisecting, and it historically has been done by the maintainer alone. It is far better to let the problem identified early, preferably before the problematic code leaves the hands of the original developer. In order for it to happen, the test coverage of the contributor tests must be at least as wide as the coverage of the integration tests. Enable expensive tests for CI jobs triggered by pull requests. This will make each contributor take care of their own, which scales much better. Keep the expensive tests also enabled for the pushes of integration branches, as that is the only place we can notice problems stemming from mismerges and inter-topic interactions, even if the topics from the contributors in isolation all passes these tests. Signed-off-by: Junio C Hamano <gitster@pobox.com>

Junio C Hamano committed May 11, 2026 at 08:51 UTC 5ba82911bccc12d5ce2ccad98db935c9a0780cbe
1 file changed +6 -4
ci/lib.sh
+6 -4
@@ -314,11 +314,13 @@ export DEFAULT_TEST_TARGET=prove
314 export GIT_TEST_CLONE_2GB=true
315 export SKIP_DASHED_BUILT_INS=YesPlease
316
317 -# Enable expensive tests on push builds to integration branches, but
318 -# not on PR builds where the extra time is not justified for every
319 -# iteration.
317 +# In order to give maximum test coverage to contributor builds,
318 +# preferrably even before the changes consume public review bandwidth,
319 +# enable "expensive" tests for PR events.
320 +# In order to catch bugs introduced at integration time by mismerges,
321 +# enable the long tests for pushes to the integration branches as well.
322 case "$GITHUB_EVENT_NAME,$CI_BRANCH" in
321 -push,*next*|push,*master*|push,*main*|push,*maint*)
323 +pull_request,*|push,*next*|push,*master*|push,*main*|push,*maint*)
324 export GIT_TEST_LONG=YesPlease
325 ;;
326 esac