X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=maint%2Ftravis-ci_scripts%2F50_after_success.bash;h=3d3451f8b64adfc99c2784dad082f9a7d41bea6c;hb=67f5d3f20045f28bf551e1fd9fd315dd2041d596;hp=7a8c9124fad849fa22e81b64da9a356a847b79e8;hpb=6a0cbc5893855f4ff60128b2fd59368351dcbda6;p=dbsrgits%2FDBIx-Class.git diff --git a/maint/travis-ci_scripts/50_after_success.bash b/maint/travis-ci_scripts/50_after_success.bash index 7a8c912..3d3451f 100755 --- a/maint/travis-ci_scripts/50_after_success.bash +++ b/maint/travis-ci_scripts/50_after_success.bash @@ -1,16 +1,108 @@ #!/bin/bash +# this file is executed in a subshell - set up the common stuff source maint/travis-ci_scripts/common.bash -if [[ -n "$SHORT_CIRCUIT_SMOKE" ]] ; then return ; fi -if [[ "$CLEANTEST" != "true" ]] ; then - run_or_err "Install Pod::POM separately via cpan" "cpan -f -i Pod::POM || perl -MPod::POM -e 1" - parallel_installdeps_notest $(perl -Ilib -MDBIx::Class -e 'print join " ", keys %{DBIx::Class::Optional::Dependencies->req_list_for("dist_dir")}') - run_or_err "Attempt to build a dist with all prereqs present" "make dist" +if [[ -n "$SHORT_CIRCUIT_SMOKE" ]] || [[ "$TRAVIS_PULL_REQUEST" != "false" ]] ; then exit 0 ; fi + +# this part needs to run in parallel unconditionally +export VCPU_USE="$VCPU_AVAILABLE" +export HARNESS_OPTIONS="j$VCPU_USE" + + +if [[ "$DEVREL_DEPS" == "true" ]] && perl -M5.008003 -e1 &>/dev/null ; then + + [[ "$BREAK_CC" == "true" ]] && run_or_err "Unbreaking previously broken ~/bin/cc" "rm $HOME/bin/cc" + + # FIXME - Devel::Cover (brought by Test::Strict, but soon needed anyway) + # does not test cleanly on 5.8.7 - just get it directly + if perl -M5.008007 -e1 &>/dev/null && ! perl -M5.008008 -e1 &>/dev/null; then + parallel_installdeps_notest Devel::Cover + fi + + # FIXME - workaround for YAML/RT#81120 and L::SRH/RT#107681 + # We don't actually need these modules, only there because of SQLT (which will be fixed) + # does not test cleanly on 5.8.7 - just get them directly + if ! perl -M5.008008 -e1 &>/dev/null; then + parallel_installdeps_notest YAML Lexical::SealRequireHints + fi + + # FIXME - workaround for RT#113740 + parallel_installdeps_notest List::AllUtils + + # FIXME Change when Moose goes away + installdeps Moose $(perl -Ilib -MDBIx::Class::Optional::Dependencies=-list_missing,dist_dir) + + run_or_err "Attempt to build a dist" "rm -rf inc/ && perl Makefile.PL && make dist" + tarball_assembled=1 + +elif [[ "$CLEANTEST" != "true" ]] ; then + parallel_installdeps_notest $(perl -Ilib -MDBIx::Class::Optional::Dependencies=-list_missing,dist_dir) + + run_or_err "Attempt to build a dist from original checkout" "make dist" + tarball_assembled=1 +fi + + +if [[ -n "$tarball_assembled" ]] ; then + echo "Contents of the resulting dist tarball:" echo "===========================================" tar -vzxf DBIx-Class-*.tar.gz echo "===========================================" - run_or_err 'Attempt to configure from re-extracted distdir' \ - 'bash -c "cd \$(find DBIx-Class-* -maxdepth 0 -type d | head -n 1) && perl Makefile.PL"' + + # kill as much as possible with fire + purge_sitelib + + + # undo some of the pollution (if any) affecting the plain install deps + # FIXME - this will go away once we move off Moose, and a new SQLT + # with much less recommends ships + export DBICTEST_SQLT_DEPLOY="" + export DBICTEST_VIA_REPLICATED="" + + + # make sure we are retrying with newest CPAN possible + # + # not running tests on CPAN.pm - they are not terribly slow, + # but https://rt.cpan.org/Ticket/Display.html?id=96437 sucks + parallel_installdeps_notest CPAN + run_or_err "Make sure CPAN was upgraded to at least 2.10" "perl -M'CPAN 2.010' -e1" + + run_or_err "Re-Configuring CPAN.pm" "perl -MCPAN -e '\ + CPAN::Config->load; + + # For the time being smoking with this setting is not realistic + # https://rt.cpan.org/Ticket/Display.html?id=103280 + # https://rt.cpan.org/Ticket/Display.html?id=37641 + # https://rt.cpan.org/Ticket/Display.html?id=77708 + # https://rt.cpan.org/Ticket/Display.html?id=87474 + #\$CPAN::Config->{build_requires_install_policy} = q{no}; + + \$CPAN::Config->{recommends_policy} = q{yes}; + CPAN::Config->commit; + '" + + cd "$(find DBIx-Class-* -maxdepth 0 -type d | head -n 1)" + + # only run a full test cycle on devrel_deps, as they are all marked + # as "allow fails" in the travis matrix + if [[ "$DEVREL_DEPS" == "true" ]] ; then + + for e in $( env | grep 'DBICTEST.*DSN' | cut -f 1 -d '=' ) ; do + echo "Unsetting $e" + export $e="" + done + + # FIXME - for some reason a plain `cpan .` does not work in this case + # no time to investigate + run_or_err \ + "Attempt to configure/test/build/install dist using latest CPAN@$(perl -MCPAN -e 'print CPAN->VERSION')" \ + "perl -MCPAN -e 'install( q{.} )'" + + else + run_or_err \ + "Attempt to configure/build/install dist using latest CPAN@$(perl -MCPAN -e 'print CPAN->VERSION')" \ + "perl -MCPAN -e 'notest( install => q{.} )'" + fi fi