[PATCH v2 2/2] ci: align job counts across CI providers
- From
Tamir Duberstein <tamird@gmail.com>
- Date
- Sep 25, 2026, 16:35 UTC
- Message-ID
- <20260925-ci-large-test-resources-v2-2-f632cf319756@gmail.com>
- In-Reply-To
- <20260925-ci-large-test-resources-v2-0-f632cf319756@gmail.com>
GitHub Actions sets JOBS to ten regardless of runner size, while GitLab CI uses the detected CPU count. Use the CPU count for Make and prove on both providers, selecting JOBS after the operating system is identified.
Use nproc on Linux and NUMBER_OF_PROCESSORS on Windows. On macOS, use sysctl to avoid requiring nproc before the dependency installer has run; GitHub macOS images need not provide GNU coreutils.
Assisted-by: LLM Signed-off-by: Tamir Duberstein <tamird@gmail.com> --- ci/lib.sh | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/ci/lib.sh b/ci/lib.sh index c6ccbf8c17..db593cc62c 100755 --- a/ci/lib.sh +++ b/ci/lib.sh @@ -227,7 +227,6 @@ then cache_dir="$HOME/none" GIT_TEST_OPTS="--github-workflow-markup" - JOBS=10 distro=$(echo "$CI_JOB_IMAGE" | tr : -) elif test true = "$GITLAB_CI" @@ -250,7 +249,6 @@ then case "$OS,$CI_JOB_IMAGE" in Windows_NT,*) CI_OS_NAME=windows - JOBS=$NUMBER_OF_PROCESSORS ;; *,macos-*) # GitLab CI has Python installed via multiple package managers, @@ -260,11 +258,9 @@ then export PATH="$(brew --prefix)/bin:$PATH" CI_OS_NAME=osx - JOBS=$(nproc) ;; *,almalinux:*|*,alpine:*|*,debian:*|*,fedora:*|*,ubuntu:*|*,i386/ubuntu:*) CI_OS_NAME=linux - JOBS=$(nproc) ;; *) echo "Could not identify OS image" >&2 @@ -291,6 +287,18 @@ else exit 1 fi +case "$CI_OS_NAME" in +windows|windows_nt) + JOBS=$NUMBER_OF_PROCESSORS + ;; +osx) + JOBS=$(sysctl -n hw.logicalcpu) + ;; +*) + JOBS=$(nproc) + ;; +esac + MAKEFLAGS="$MAKEFLAGS --jobs=$JOBS" GIT_PROVE_OPTS="--timer --jobs $JOBS"
-- 2.56.0.rc2.815.g5b995412e4.frankengit