Implement Keystone environment deployments
This commit is contained in:
40
app/Actions/Environments/CreateLaravelWorkerService.php
Normal file
40
app/Actions/Environments/CreateLaravelWorkerService.php
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Environments;
|
||||
|
||||
use App\Enums\DeployPolicy;
|
||||
use App\Enums\ServiceCategory;
|
||||
use App\Enums\ServiceStatus;
|
||||
use App\Enums\ServiceType;
|
||||
use App\Models\Environment;
|
||||
use App\Models\Service;
|
||||
|
||||
class CreateLaravelWorkerService
|
||||
{
|
||||
public function execute(Environment $environment): Service
|
||||
{
|
||||
$environment->loadMissing('application');
|
||||
|
||||
$phpVersion = $environment->build_config['php_version'] ?? '8.4';
|
||||
|
||||
return $environment->services()->firstOrCreate([
|
||||
'name' => 'worker',
|
||||
'type' => ServiceType::LARAVEL,
|
||||
], [
|
||||
'organisation_id' => $environment->application->organisation_id,
|
||||
'category' => ServiceCategory::APPLICATION,
|
||||
'version' => "php-{$phpVersion}",
|
||||
'version_track' => "php-{$phpVersion}",
|
||||
'driver_name' => "laravel.php-{$phpVersion}",
|
||||
'status' => ServiceStatus::NOT_INSTALLED,
|
||||
'desired_replicas' => 1,
|
||||
'deploy_policy' => DeployPolicy::WITH_ENVIRONMENT,
|
||||
'process_roles' => ['worker'],
|
||||
'config' => [
|
||||
'command' => 'php artisan queue:work --sleep=3 --tries=3',
|
||||
'health_path' => null,
|
||||
'migration_mode' => 'disabled',
|
||||
],
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user