X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=maint%2Ftravis-ci_scripts%2F20_install.bash;h=0279f78ec66d658d30e8c167cd9c66d8a38345d7;hb=c4c7254dc23f98ec5ea80fd44c37d8dbe6f6783d;hp=23ac294c49b12838d457b3fe3b2c5b6f7c780c66;hpb=44c91cabaf0f54d7e95285e09c6e98fa75a796a1;p=dbsrgits%2FDBIx-Class.git diff --git a/maint/travis-ci_scripts/20_install.bash b/maint/travis-ci_scripts/20_install.bash index 23ac294..0279f78 100755 --- a/maint/travis-ci_scripts/20_install.bash +++ b/maint/travis-ci_scripts/20_install.bash @@ -2,14 +2,11 @@ if [[ -n "$SHORT_CIRCUIT_SMOKE" ]] ; then return ; fi -CPAN_MIRROR=$(echo "$PERL_CPANM_OPT" | grep -oP -- '--mirror\s+\S+' | head -n 1 | cut -d ' ' -f 2) -if ! [[ "$CPAN_MIRROR" =~ "http://" ]] ; then - echo_err "Unable to extract primary cpan mirror from PERL_CPANM_OPT - something is wrong" - echo_err "PERL_CPANM_OPT: $PERL_CPANM_OPT" - CPAN_MIRROR="http://cpan.metacpan.org/" - PERL_CPANM_OPT="$PERL_CPANM_OPT --mirror $CPAN_MIRROR" - echo_err "Using $CPAN_MIRROR for the time being" -fi +# we need a mirror that both has the standard index and a backpan version rolled +# into one, due to MDV testing +CPAN_MIRROR="http://cpan.metacpan.org/" + +PERL_CPANM_OPT="$PERL_CPANM_OPT --mirror $CPAN_MIRROR" # do not set PERLBREW_CPAN_MIRROR - not all backpan-like mirrors have the perl tarballs export PERL_MM_USE_DEFAULT=1 PERL_MM_NONINTERACTIVE=1 PERL_AUTOINSTALL_PREFER_CPAN=1 HARNESS_TIMER=1 MAKEFLAGS="-j$NUMTHREADS" @@ -84,3 +81,45 @@ CPAN_CFG_SCRIPT=" CPAN::Config->commit; " run_or_err "Configuring CPAN.pm" "perl -e '$CPAN_CFG_SCRIPT'" + +# poison the environment +if [[ "$POISON_ENV" = "true" ]] ; then + + # in addition to making sure tests do not rely on implicid order of + # returned results, look through lib, find all mentioned ENVvars and + # set them to true and see if anything explodes + for var in \ + DBICTEST_SQLITE_REVERSE_DEFAULT_ORDER \ + $(grep -P '\$ENV\{' -r lib/ --exclude-dir Optional | grep -oP '\bDBIC\w+' | sort -u | grep -v DBIC_TRACE) + do + if [[ -z "${!var}" ]] ; then + export $var=1 + echo "POISON_ENV: setting $var to 1" + fi + done + + # bogus nonexisting DBI_* + export DBI_DSN="dbi:ODBC:server=NonexistentServerAddress" + export DBI_DRIVER="ADO" + + # some people do in fact set this - boggle!!! + export PERL_STRICTURES_EXTRA=1 + + # emulate a local::lib-like env + # trick cpanm into executing true as shell - we just need the find+unpack + run_or_err "Downloading latest stable DBIC from CPAN" \ + "SHELL=/bin/true cpanm --look DBIx::Class" + + export PERL5LIB="$( ls -d ~/.cpanm/latest-build/DBIx-Class-*/lib | tail -n1 ):$PERL5LIB" + + # perldoc -l searches $(pwd)/lib in addition to PERL5LIB etc, hence the cd / + echo_err "Latest stable DBIC (without deps) locatable via \$PERL5LIB at $(cd / && perldoc -l DBIx::Class)" + +fi + +if [[ "$CLEANTEST" != "true" ]] ; then + # using SQLT if will be available + # not doing later because we will be running in a subshell + export DBICTEST_SQLT_DEPLOY=1 + +fi