diff options
author | M Somerville <matthew-github@dracos.co.uk> | 2020-11-13 14:24:54 +0000 |
---|---|---|
committer | M Somerville <matthew-github@dracos.co.uk> | 2020-11-16 02:39:36 +0000 |
commit | 628de40b877974eb553e0910753f2d4cd983d9de (patch) | |
tree | d74f5f8ad318db3feade0ea5b1bb852a4c3c7256 /perllib | |
parent | 831332e4916aab75027bf794f5a1abb8d6f0b0dd (diff) |
Add GitHub Actions.
We now have Image::Magick, so make sure that is handled better.
Diffstat (limited to 'perllib')
-rw-r--r-- | perllib/Devel/Cover/Report/Codecov/Service/GitHub.pm | 33 | ||||
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Admin/Reports.pm | 1 | ||||
-rw-r--r-- | perllib/FixMyStreet/App/Model/PhotoSet.pm | 31 | ||||
-rw-r--r-- | perllib/FixMyStreet/ImageMagick.pm | 6 |
4 files changed, 55 insertions, 16 deletions
diff --git a/perllib/Devel/Cover/Report/Codecov/Service/GitHub.pm b/perllib/Devel/Cover/Report/Codecov/Service/GitHub.pm new file mode 100644 index 000000000..a5d5e7fb7 --- /dev/null +++ b/perllib/Devel/Cover/Report/Codecov/Service/GitHub.pm @@ -0,0 +1,33 @@ +package Devel::Cover::Report::Codecov::Service::GitHub; +use strict; +use warnings; +use utf8; + +sub detect { + return $ENV{GITHUB_ACTIONS}; +} + +sub configuration { + (my $branch = $ENV{GITHUB_REF}) =~ s{^refs/heads/}{}; + + my $conf = { + service => 'github-actions', + commit => $ENV{GITHUB_SHA}, + slug => $ENV{GITHUB_REPOSITORY}, + build => $ENV{GITHUB_RUN_ID}, + build_url => "https://github.com/$ENV{GITHUB_REPOSITORY}/actions/runs/$ENV{GITHUB_RUN_ID}", + branch => $branch, + }; + + if ($ENV{GITHUB_HEAD_REF}) { + (my $pr = $ENV{GITHUB_REF}) =~ s{^refs/pull/}{}; + $pr =~ s{/merge$}{}; + $conf->{pr} = $pr; + $conf->{branch} = $ENV{GITHUB_HEAD_REF}; + } + + return $conf; +} + +1; +__END__ diff --git a/perllib/FixMyStreet/App/Controller/Admin/Reports.pm b/perllib/FixMyStreet/App/Controller/Admin/Reports.pm index e3a425632..20801e0cf 100644 --- a/perllib/FixMyStreet/App/Controller/Admin/Reports.pm +++ b/perllib/FixMyStreet/App/Controller/Admin/Reports.pm @@ -4,6 +4,7 @@ use namespace::autoclean; BEGIN { extends 'Catalyst::Controller'; } +use utf8; use List::MoreUtils 'uniq'; use FixMyStreet::SMS; use Utils; diff --git a/perllib/FixMyStreet/App/Model/PhotoSet.pm b/perllib/FixMyStreet/App/Model/PhotoSet.pm index 76a287e71..85e457856 100644 --- a/perllib/FixMyStreet/App/Model/PhotoSet.pm +++ b/perllib/FixMyStreet/App/Model/PhotoSet.pm @@ -8,6 +8,7 @@ use Scalar::Util 'openhandle', 'blessed'; use Image::Size; use IPC::Cmd qw(can_run); use IPC::Open3; +use Try::Tiny; use FixMyStreet; use FixMyStreet::ImageMagick; @@ -149,7 +150,9 @@ has ids => ( # Arrayref of $fileid tuples (always, so post upload/raw data proc } # we have an image we can use - save it to storage - $photo_blob = FixMyStreet::ImageMagick->new(blob => $photo_blob)->shrink('2048x2048')->as_blob; + $photo_blob = try { + FixMyStreet::ImageMagick->new(blob => $photo_blob)->shrink('2048x2048')->as_blob; + } catch { $photo_blob }; return $self->storage->store_photo($photo_blob); } @@ -201,18 +204,20 @@ sub get_image_data { } my $im = FixMyStreet::ImageMagick->new(blob => $image->{data}); - my $photo; - if ( $size eq 'tn' ) { - $photo = $im->shrink('x100'); - } elsif ( $size eq 'fp' ) { - $photo = $im->crop; - } elsif ( $size eq 'og' ) { - $photo = $im->crop('1200x630'); - } elsif ( $size eq 'full' ) { - $photo = $im - } else { - $photo = $im->shrink($args{default} || '250x250'); - } + my $photo = try { + if ( $size eq 'tn' ) { + $im->shrink('x100'); + } elsif ( $size eq 'fp' ) { + $im->crop; + } elsif ( $size eq 'og' ) { + $im->crop('1200x630'); + } elsif ( $size eq 'full' ) { + $im + } else { + $im->shrink($args{default} || '250x250'); + } + }; + return unless $photo; return { data => $photo->as_blob, diff --git a/perllib/FixMyStreet/ImageMagick.pm b/perllib/FixMyStreet/ImageMagick.pm index d9f643801..ec99fd877 100644 --- a/perllib/FixMyStreet/ImageMagick.pm +++ b/perllib/FixMyStreet/ImageMagick.pm @@ -64,7 +64,7 @@ sub shrink { my ($self, $size) = @_; return $self unless $self->image; my $err = $self->image->Scale(geometry => "$size>"); - throw Error::Simple("resize failed: $err") if "$err"; + die "resize failed: $err" if "$err"; $self->_set_width_and_height(); return $self->strip; } @@ -76,9 +76,9 @@ sub crop { $size //= '90x60'; return $self unless $self->image; my $err = $self->image->Resize( geometry => "$size^" ); - throw Error::Simple("resize failed: $err") if "$err"; + die "resize failed: $err" if "$err"; $err = $self->image->Extent( geometry => $size, gravity => 'Center' ); - throw Error::Simple("resize failed: $err") if "$err"; + die "resize failed: $err" if "$err"; $self->_set_width_and_height(); return $self->strip; } |