From 233b6d1c6ac737153a3ad69bc41b433c82b372cd Mon Sep 17 00:00:00 2001 From: Peter Roberts Date: Sun, 27 Mar 2016 22:59:02 +0000 Subject: [PATCH] Fixing GH issue #34 - properly add default before_install in all cases --- lib/Dist/Zilla/Role/TravisYML.pm | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/lib/Dist/Zilla/Role/TravisYML.pm b/lib/Dist/Zilla/Role/TravisYML.pm index c68ea9b..d866936 100644 --- a/lib/Dist/Zilla/Role/TravisYML.pm +++ b/lib/Dist/Zilla/Role/TravisYML.pm @@ -291,7 +291,15 @@ sub build_travis_yml { unless ($is_build_branch) { # Standard DZIL YAML unless ($self->support_builddir) { - %travis_yml = (%travis_yml, %{ $travis_code{dzil} }); + # Fix for GH issue #34 + # First merge common before_install + push @{$travis_yml{before_install}}, @{$travis_code{common}{before_install}}; + # Then merge phases for DZIL + for (@phases) { + my $dzil_arr = $travis_code{dzil}{$_}; + # Only merge those that exist + push @{$travis_yml{$_}}, @$dzil_arr if $dzil_arr; + } } # Dual DZIL+build YAML else { @@ -333,7 +341,15 @@ sub build_travis_yml { } # Build branch YAML elsif ($self->build_branch) { - %travis_yml = (%travis_yml, %{ $travis_code{build} }); + # Fix for GH issue #34 + # First merge common before_install + push @{$travis_yml{before_install}}, @{$travis_code{common}{before_install}}; + # Then merge phases for build + for (@phases) { + my $build_arr = $travis_code{build}{$_}; + # Only merge those that exist + push @{$travis_yml{$_}}, @$build_arr if $build_arr; + } } else { return; # no point in staying here...