diff --git a/DOCS.md b/DOCS.md index bec9431..f0a5476 100644 --- a/DOCS.md +++ b/DOCS.md @@ -12,7 +12,7 @@ url: https://gitnet.fr/deblan/woodpecker-email ## Settings | Settings Name | Required | Type | Description | Documentation | -| --- | --- | --- | --- | --- | +| --------------- | -------- | ------------------ | ------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | | dsn | yes | `string` | Mail transport configuration | [Documentation](https://symfony.com/doc/current/mailer.html#tls-peer-verification) | | from.address | yes | `string` | Email address of the sender | | | from.name | no | `string` | Name of the sender | | @@ -23,15 +23,12 @@ url: https://gitnet.fr/deblan/woodpecker-email | attachments | no | `string` or `list` | List of files to attach | YAML list or comma separated list | | debug | no | `boolean` | Debug mode (email are sent!) | | - - ### Example - ``` steps: mail: - image: deblan/woodpecker-email-php + image: deblan/woodpecker-email settings: dsn: "smtp://username:password@mail.example.com:587?verify_peer=1" from: @@ -52,14 +49,12 @@ steps: - log/* ``` - ### Evaluation and content See the [Twig documentation](https://twig.symfony.com/doc/3.x/). - | Variable | Value | -| --- | --- | +| ----------------------------- | -------------------------------- | | `workspace` | `CI_WORKSPACE` | | `repo.full_name` | `CI_REPO` | | `repo.owner` | `CI_REPO_OWNER` | diff --git a/bin/console b/bin/console index a9848e9..8930d0f 100755 --- a/bin/console +++ b/bin/console @@ -9,6 +9,7 @@ use Plugin\Loader\EnvVarLoader; use Plugin\Pipeline\Evaluation; use Symfony\Component\Mailer\Exception\TransportException; use Twig\Error\SyntaxError; +use Symfony\Component\Mime\Exception\RfcComplianceException; $build = EnvVarLoader::buildArray([ 'workspace' => 'CI_WORKSPACE', @@ -102,13 +103,23 @@ function writeln(...$values) } } -function handleError($section, Exception $e) +function handleError($section, Exception $e, bool $debug) { writeln( sprintf('ERROR - %s', $section), $e->getMessage() ); + if ($debug) { + writeln( + "", + "Trace", + "=====", + json_encode($e->getTrace(), JSON_PRETTY_PRINT), + "=====", + ); + } + exit(1); } @@ -116,11 +127,8 @@ if ($config['is_debug']) { writeln( 'Debug', '=====', - 'Config', - json_encode($config, JSON_PRETTY_PRINT), - 'Environment', - json_encode($_SERVER, JSON_PRETTY_PRINT), - '=====' + json_encode(['config' => $config, 'environment' => $_SERVER], JSON_PRETTY_PRINT), + '=====', ); } @@ -140,9 +148,11 @@ try { writeln('Email sent!'); } } catch (SyntaxError $e) { - handleError('Syntax error', $e); + handleError('Syntax error', $e, $config['is_debug']); } catch (TransportException $e) { - handleError('Transport error', $e); + handleError('Transport error', $e, $config['is_debug']); +} catch (RfcComplianceException $e) { + handleError('RFC compliance error', $e, $config['is_debug']); } catch (\Exception $e) { - handleError('Generic error', $e); + handleError('Generic error', $e, $config['is_debug']); } diff --git a/src/Factory/EmailFactory.php b/src/Factory/EmailFactory.php index 59b6c62..e55a206 100644 --- a/src/Factory/EmailFactory.php +++ b/src/Factory/EmailFactory.php @@ -21,7 +21,7 @@ class EmailFactory public function createMailer(): Mailer { - return new Mailer(Transport::fromDsn($this->config['dsn'])); + return new Mailer(Transport::fromDsn((string) $this->config['dsn'])); } public function createEmail(): Email diff --git a/src/Factory/TwigFactory.php b/src/Factory/TwigFactory.php index a5b16ca..7d176b2 100644 --- a/src/Factory/TwigFactory.php +++ b/src/Factory/TwigFactory.php @@ -3,9 +3,9 @@ namespace Plugin\Factory; use Twig\Environment; -use Twig\Loader\FilesystemLoader; -use Twig\Extension\StringLoaderExtension; use Twig\Extension\DebugExtension; +use Twig\Extension\StringLoaderExtension; +use Twig\Loader\FilesystemLoader; class TwigFactory { diff --git a/src/Loader/functions.php b/src/Loader/functions.php index ac2f2db..7e74f28 100644 --- a/src/Loader/functions.php +++ b/src/Loader/functions.php @@ -12,7 +12,7 @@ function loadEnVars(array $map, array $defaults = []) } else { $data = getenv($value); - if ($data === false) { + if (false === $data) { $data = $defaults[$value] ?? null; }