From: Peter Rabbitson Date: Sat, 16 Feb 2013 16:05:12 +0000 (+0100) Subject: It appears that travis drastically increased the amount of available CPUs X-Git-Tag: v0.08241~10 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=dbsrgits%2FDBIx-Class.git;a=commitdiff_plain;h=14e8cb27f784e6e54759623b7d0f3a8981610c7e It appears that travis drastically increased the amount of available CPUs 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. --- diff --git a/maint/travis-ci_scripts/10_before_install.bash b/maint/travis-ci_scripts/10_before_install.bash index 277ac9e..7a5c5fe 100755 --- a/maint/travis-ci_scripts/10_before_install.bash +++ b/maint/travis-ci_scripts/10_before_install.bash @@ -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 diff --git a/maint/travis-ci_scripts/20_install.bash b/maint/travis-ci_scripts/20_install.bash index ace9bc2..5a0ffdf 100755 --- a/maint/travis-ci_scripts/20_install.bash +++ b/maint/travis-ci_scripts/20_install.bash @@ -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 || \