It appears that travis drastically increased the amount of available CPUs
Peter Rabbitson [Sat, 16 Feb 2013 16:05:12 +0000 (17:05 +0100)]
Well, this is awesome - we just happen to be equipped to take advantage
of this ;)

Remove the branch-name limitations - now a smoke takes fraction of the time
it used to, no point to limit what we smoke anymore.

At the same time reduce the amount of threads building the perls - older
binaries do not build very well on -j32. This is a temporary thing - the
perl-building will soon be exported away anyway.

maint/travis-ci_scripts/10_before_install.bash
maint/travis-ci_scripts/20_install.bash

index 277ac9e..7a5c5fe 100755 (executable)
@@ -3,33 +3,26 @@
 source maint/travis-ci_scripts/common.bash
 if [[ -n "$SHORT_CIRCUIT_SMOKE" ]] ; then return ; fi
 
-if [[ -n "$BREWVER" ]] ; then
-  # .travis.yml already restricts branches to master, topic/* and smoke/*
-  # do some extra short-circuiting here
-
-  # when smoking master do not attempt bleadperl (not release-critical)
-  if [[ "$TRAVIS_PULL_REQUEST" != "false" ]]; then
-    echo_err "$(tstamp) pull-request smoking with custom perl compilation requested - bailing out"
-    export SHORT_CIRCUIT_SMOKE=1
-  elif [[ "$TRAVIS_BRANCH" = "master" ]] && [[ "$BREWVER" = "blead" ]]; then
-    echo_err "$(tstamp) master branch is not smoked with bleadperl - bailing out"
-    export SHORT_CIRCUIT_SMOKE=1
-  # on topic/ branches test only with travis perls
-  elif [[ "$TRAVIS_BRANCH" =~ "topic/" ]]; then
-    echo_err "$(tstamp) non-smoke branch and custom perl compilation requested - bailing out"
-    export SHORT_CIRCUIT_SMOKE=1
-  fi
-
-  if [[ -n "$SHORT_CIRCUIT_SMOKE" ]]; then
-    sleep 20  # give the console time to attach, otherwise it hangs
-    return  # this is like an `exit 0` in sourcing
-  fi
+# .travis.yml already restricts branches to master, topic/* and smoke/*
+# do some extra short-circuiting here
+
+# when smoking master do not attempt bleadperl (not release-critical)
+if [[ "$TRAVIS_BRANCH" = "master" ]] && [[ "$BREWVER" = "blead" ]]; then
+  echo_err "$(tstamp) master branch is not smoked with bleadperl - bailing out"
+  export SHORT_CIRCUIT_SMOKE=1
 fi
 
-# different boxes we run on may have different amount of hw threads
-# hence why we need to query
-# result is 1.5 times the physical threads
-export NUMTHREADS=$(( ( $(cut -f 2 -d '-' /sys/devices/system/cpu/online) + 1 ) * 15 / 10  ))
+if [[ -n "$SHORT_CIRCUIT_SMOKE" ]] ; then return ; fi
+
+# Different boxes we run on may have different amount of hw threads
+# Hence why we need to query
+# Originally we used to read /sys/devices/system/cpu/online
+# but it is not available these days (odd). Thus we fall to
+# the alwas-present /proc/cpuinfo
+# The oneliner is a tad convoluted - basicaly what we do is
+# slurp the entire file and get the index off the last
+# `processor    : XX` line
+export NUMTHREADS=$(( $(perl -0777 -n -e 'print (/ (?: .+ ^ processor \s+ : \s+ (\d+) ) (?! ^ processor ) /smx)' < /proc/cpuinfo) + 1 ))
 
 if [[ "$CLEANTEST" != "true" ]]; then
 ### apt-get invocation - faster to grab everything at once
index ace9bc2..5a0ffdf 100755 (executable)
@@ -17,7 +17,7 @@ export PERL_CPANM_OPT="$( echo $PERL_CPANM_OPT | sed 's/--skip-satisfied//' ) --
 
 if [[ -n "$BREWVER" ]] ; then
   run_or_err "Compiling/installing Perl $BREWVER (without testing, may take up to 5 minutes)" \
-    "perlbrew install --as $BREWVER --notest --verbose $BREWOPTS -j $NUMTHREADS $BREWVER"
+    "perlbrew install --as $BREWVER --notest --verbose $BREWOPTS -j 2  $BREWVER"
 
   # can not do 'perlbrew uss' in the run_or_err subshell above
   perlbrew use $BREWVER || \