refactor new deployment job

This commit is contained in:
Andras Bacsai 2024-05-29 15:28:03 +02:00
parent a8e9ee2e95
commit df2bcdb854
3 changed files with 2211 additions and 22 deletions

View File

@ -5,6 +5,7 @@ namespace App\Actions\CoolifyTask;
use App\Enums\ActivityTypes; use App\Enums\ActivityTypes;
use App\Enums\ProcessStatus; use App\Enums\ProcessStatus;
use App\Jobs\ApplicationDeploymentJob; use App\Jobs\ApplicationDeploymentJob;
use App\Jobs\ApplicationDeploymentJobNew;
use App\Models\Server; use App\Models\Server;
use Illuminate\Process\ProcessResult; use Illuminate\Process\ProcessResult;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
@ -165,14 +166,23 @@ class RunRemoteProcess
public function encodeOutput($type, $output) public function encodeOutput($type, $output)
{ {
$outputStack = json_decode($this->activity->description, associative: true, flags: JSON_THROW_ON_ERROR | JSON_UNESCAPED_UNICODE); $outputStack = json_decode($this->activity->description, associative: true, flags: JSON_THROW_ON_ERROR | JSON_UNESCAPED_UNICODE);
if (isDev()) {
$outputStack[] = [ $outputStack[] = [
'type' => $type, 'type' => $type,
'output' => $output, 'output' => $output,
'timestamp' => hrtime(true), 'timestamp' => hrtime(true),
'batch' => ApplicationDeploymentJob::$batch_counter, 'batch' => ApplicationDeploymentJobNew::$batch_counter,
'order' => $this->getLatestCounter(), 'order' => $this->getLatestCounter(),
]; ];
} else {
$outputStack[] = [
'type' => $type,
'output' => $output,
'timestamp' => hrtime(true),
'batch' => ApplicationDeploymentJob::$batch_counter,
'order' => $this->getLatestCounter(),
];
}
return json_encode($outputStack, flags: JSON_THROW_ON_ERROR | JSON_UNESCAPED_UNICODE); return json_encode($outputStack, flags: JSON_THROW_ON_ERROR | JSON_UNESCAPED_UNICODE);
} }

File diff suppressed because it is too large Load Diff

View File

@ -2,6 +2,7 @@
use App\Enums\ApplicationDeploymentStatus; use App\Enums\ApplicationDeploymentStatus;
use App\Jobs\ApplicationDeploymentJob; use App\Jobs\ApplicationDeploymentJob;
use App\Jobs\ApplicationDeploymentJobNew;
use App\Models\Application; use App\Models\Application;
use App\Models\ApplicationDeploymentQueue; use App\Models\ApplicationDeploymentQueue;
use App\Models\Server; use App\Models\Server;
@ -42,14 +43,26 @@ function queue_application_deployment(Application $application, string $deployme
'only_this_server' => $only_this_server 'only_this_server' => $only_this_server
]); ]);
if ($no_questions_asked) { if (isDev()) {
dispatch(new ApplicationDeploymentJob( if ($no_questions_asked) {
application_deployment_queue_id: $deployment->id, dispatch(new ApplicationDeploymentJobNew(
)); application_deployment_queue_id: $deployment->id,
} else if (next_queuable($server_id, $application_id)) { ));
dispatch(new ApplicationDeploymentJob( } else if (next_queuable($server_id, $application_id)) {
application_deployment_queue_id: $deployment->id, dispatch(new ApplicationDeploymentJobNew(
)); application_deployment_queue_id: $deployment->id,
));
}
} else {
if ($no_questions_asked) {
dispatch(new ApplicationDeploymentJob(
application_deployment_queue_id: $deployment->id,
));
} else if (next_queuable($server_id, $application_id)) {
dispatch(new ApplicationDeploymentJob(
application_deployment_queue_id: $deployment->id,
));
}
} }
} }
function force_start_deployment(ApplicationDeploymentQueue $deployment) function force_start_deployment(ApplicationDeploymentQueue $deployment)
@ -57,9 +70,15 @@ function force_start_deployment(ApplicationDeploymentQueue $deployment)
$deployment->update([ $deployment->update([
'status' => ApplicationDeploymentStatus::IN_PROGRESS->value, 'status' => ApplicationDeploymentStatus::IN_PROGRESS->value,
]); ]);
dispatch(new ApplicationDeploymentJob( if (isDev()) {
application_deployment_queue_id: $deployment->id, dispatch(new ApplicationDeploymentJobNew(
)); application_deployment_queue_id: $deployment->id,
));
} else {
dispatch(new ApplicationDeploymentJob(
application_deployment_queue_id: $deployment->id,
));
}
} }
function queue_next_deployment(Application $application) function queue_next_deployment(Application $application)
{ {
@ -69,9 +88,15 @@ function queue_next_deployment(Application $application)
$next_found->update([ $next_found->update([
'status' => ApplicationDeploymentStatus::IN_PROGRESS->value, 'status' => ApplicationDeploymentStatus::IN_PROGRESS->value,
]); ]);
dispatch(new ApplicationDeploymentJob( if (isDev()) {
application_deployment_queue_id: $next_found->id, dispatch(new ApplicationDeploymentJobNew(
)); application_deployment_queue_id: $next_found->id,
));
} else {
dispatch(new ApplicationDeploymentJob(
application_deployment_queue_id: $next_found->id,
));
}
} }
} }