App-CISetup
view release on metacpan or search on metacpan
lib/App/CISetup/Travis/ConfigFile.pm view on Meta::CPAN
return;
}
sub _maybe_remove_sudo {
my $self = shift;
my $travis = shift;
delete $travis->{sudo};
return;
}
sub _update_packages {
my $self = shift;
my $travis = shift;
my @addons
= $travis->{addons}
&& $travis->{addons}{apt} && $travis->{addons}{apt}{packages}
? @{ $travis->{addons}{apt}{packages} }
: ();
push @addons, qw( aspell aspell-en )
if $travis->{perl};
$travis->{addons}{apt}{packages} = [ sort { $a cmp $b } uniq(@addons) ]
if @addons;
return;
}
sub _update_coverity_email {
my $self = shift;
my $travis = shift;
return unless $self->has_email_address;
return unless $travis->{addons} && $travis->{addons}{coverity_scan};
$travis->{addons}{coverity_scan}{notification_email}
= $self->email_address;
}
sub _update_notifications {
my $self = shift;
my $travis = shift;
if ( $self->has_email_address ) {
$travis->{notifications}{email} = {
recipients => [ $self->email_address ],
on_success => 'change',
on_failure => 'always',
};
}
if ( $self->has_slack_key && $self->has_github_user ) {
my $slack = $travis->{notifications}{slack}{rooms}{secure};
# travis encrypt will make a new encrypted version every time it's given
# the same input so we don't want to run it unless we have to, otherwise
# we end up with pointless updates.
unless ($slack) {
my $pushed = pushd( $self->file->parent );
my $stdout;
my $stderr;
my $exe = which('travis')
or die 'Cannot find a travis command in the PATH';
$self->_run3(
[
$exe, 'encrypt', '--no-interactive',
'-R',
$self->github_user . '/' . $self->file->parent->basename,
$self->slack_key
],
\undef,
\$stdout,
\$stderr,
);
die $stderr if $stderr;
$slack = $stdout =~ s/^\"|\"$//gr;
}
$travis->{notifications}{slack} = {
rooms => { secure => $slack },
};
}
return;
}
# This is broken out so we can replace it in test code.
sub _run3 {
shift;
run3(@_);
return;
}
my @BlocksOrder = qw(
sudo
dist
addons
language
compiler
go
jdk
perl
php
python
cache
solution
matrix
fast_finish
env
branches
services
before_install
install
before_script
script
after_script
after_success
after_failure
notifications
);
my %KnownBlocks = map { $_ => 1 } @BlocksOrder;
## no critic (Subroutines::ProhibitUnusedPrivateSubroutines)
sub _fix_up_yaml {
my $self = shift;
my $yaml = shift;
$yaml =~ s/sudo: 0/sudo: false/g;
return $self->_reorder_yaml_blocks( $yaml, \@BlocksOrder );
}
sub _reorder_addons_block {
my $self = shift;
( run in 1.515 second using v1.01-cache-2.11-cpan-39bf76dae61 )