mirror of
https://github.com/deployphp/deployer.git
synced 2025-02-24 01:02:24 +01:00
Fix runLocally test
This commit is contained in:
parent
542e5f0dc2
commit
998592b5ef
@ -5,6 +5,7 @@
|
||||
|
||||
### Fixed
|
||||
- Fixed command parsing in runLocally func
|
||||
- Added `Request` class for get/post json requests
|
||||
|
||||
|
||||
## v5.0.0-beta.2
|
||||
|
@ -347,6 +347,10 @@ class Deployer extends Container
|
||||
$stats['exception'] = get_class($commandEvent->getException());
|
||||
}
|
||||
|
||||
if ($stats['command_name'] === 'worker') {
|
||||
return;
|
||||
}
|
||||
|
||||
Reporter::report($stats);
|
||||
}
|
||||
}
|
||||
|
@ -27,38 +27,13 @@ class Reporter
|
||||
|
||||
if (is_null($pid) || $pid === -1) {
|
||||
// Fork fails or there is no `pcntl` extension.
|
||||
self::send($stats);
|
||||
Request::post(self::ENDPOINT, $stats);
|
||||
} elseif ($pid === 0) {
|
||||
// Child process.
|
||||
posix_setsid();
|
||||
self::send($stats);
|
||||
Request::post(self::ENDPOINT, $stats);
|
||||
// Close child process after doing job.
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $stats
|
||||
*/
|
||||
private static function send(array $stats)
|
||||
{
|
||||
if (extension_loaded('curl')) {
|
||||
$body = json_encode($stats, JSON_PRETTY_PRINT);
|
||||
$ch = curl_init(self::ENDPOINT);
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
||||
'Content-Type: application/json',
|
||||
'Content-Length: ' . strlen($body)
|
||||
]);
|
||||
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
|
||||
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
|
||||
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
|
||||
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
|
||||
curl_exec($ch);
|
||||
} else {
|
||||
file_get_contents(self::ENDPOINT . '?' . http_build_query($stats));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
60
src/Utility/Request.php
Normal file
60
src/Utility/Request.php
Normal file
@ -0,0 +1,60 @@
|
||||
<?php
|
||||
/* (c) Anton Medvedev <anton@medv.io>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Deployer\Utility;
|
||||
|
||||
/**
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
class Request
|
||||
{
|
||||
/**
|
||||
* @param string $url
|
||||
* @param array $query Query params for request
|
||||
* @return array
|
||||
*/
|
||||
public static function get($url, $query)
|
||||
{
|
||||
return self::curl('GET', $url, $query);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $url
|
||||
* @param array $data Post fields data, send as json with `Content-Type: application/json`.
|
||||
* @return array
|
||||
*/
|
||||
public static function post($url, $data)
|
||||
{
|
||||
return self::curl('POST', $url, [], $data);
|
||||
}
|
||||
|
||||
private static function curl($method, $url, $query = [], $data = [])
|
||||
{
|
||||
$ch = curl_init($url . '?' . http_build_query($query));
|
||||
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method === 'POST' ? 'POST' : 'GET');
|
||||
if (!empty($data)) {
|
||||
$body = json_encode($data, JSON_PRETTY_PRINT);
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
||||
'Content-Type: application/json',
|
||||
'Content-Length: ' . strlen($body)
|
||||
]);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
|
||||
}
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
|
||||
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
|
||||
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
|
||||
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
|
||||
$result = curl_exec($ch);
|
||||
curl_close($ch);
|
||||
$response = @json_decode($result, true);
|
||||
if ($data === null && json_last_error() !== JSON_ERROR_NONE) {
|
||||
return null;
|
||||
}
|
||||
return $response;
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user