aboutsummaryrefslogtreecommitdiffstats
path: root/perllib
diff options
context:
space:
mode:
authorM Somerville <matthew-github@dracos.co.uk>2020-11-13 14:24:54 +0000
committerM Somerville <matthew-github@dracos.co.uk>2020-11-16 02:39:36 +0000
commit628de40b877974eb553e0910753f2d4cd983d9de (patch)
treed74f5f8ad318db3feade0ea5b1bb852a4c3c7256 /perllib
parent831332e4916aab75027bf794f5a1abb8d6f0b0dd (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.pm33
-rw-r--r--perllib/FixMyStreet/App/Controller/Admin/Reports.pm1
-rw-r--r--perllib/FixMyStreet/App/Model/PhotoSet.pm31
-rw-r--r--perllib/FixMyStreet/ImageMagick.pm6
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;
}