feat(deployment): enhance deployment status reporting with detailed information on active deployments and team members
This commit is contained in:
@@ -1125,30 +1125,77 @@ function get_public_ips()
|
|||||||
function isAnyDeploymentInprogress()
|
function isAnyDeploymentInprogress()
|
||||||
{
|
{
|
||||||
$runningJobs = ApplicationDeploymentQueue::where('horizon_job_worker', gethostname())->where('status', ApplicationDeploymentStatus::IN_PROGRESS->value)->get();
|
$runningJobs = ApplicationDeploymentQueue::where('horizon_job_worker', gethostname())->where('status', ApplicationDeploymentStatus::IN_PROGRESS->value)->get();
|
||||||
$basicDetails = $runningJobs->map(function ($job) {
|
|
||||||
return [
|
if ($runningJobs->isEmpty()) {
|
||||||
'id' => $job->id,
|
echo "No deployments in progress.\n";
|
||||||
'created_at' => $job->created_at,
|
exit(0);
|
||||||
'application_id' => $job->application_id,
|
}
|
||||||
'server_id' => $job->server_id,
|
|
||||||
'horizon_job_id' => $job->horizon_job_id,
|
|
||||||
'status' => $job->status,
|
|
||||||
];
|
|
||||||
});
|
|
||||||
echo 'Running jobs: '.json_encode($basicDetails)."\n";
|
|
||||||
$horizonJobIds = [];
|
$horizonJobIds = [];
|
||||||
|
$deploymentDetails = [];
|
||||||
|
|
||||||
foreach ($runningJobs as $runningJob) {
|
foreach ($runningJobs as $runningJob) {
|
||||||
$horizonJobStatus = getJobStatus($runningJob->horizon_job_id);
|
$horizonJobStatus = getJobStatus($runningJob->horizon_job_id);
|
||||||
if ($horizonJobStatus === 'unknown' || $horizonJobStatus === 'reserved') {
|
if ($horizonJobStatus === 'unknown' || $horizonJobStatus === 'reserved') {
|
||||||
$horizonJobIds[] = $runningJob->horizon_job_id;
|
$horizonJobIds[] = $runningJob->horizon_job_id;
|
||||||
|
|
||||||
|
// Get application and team information
|
||||||
|
$application = Application::find($runningJob->application_id);
|
||||||
|
$teamMembers = [];
|
||||||
|
$deploymentUrl = '';
|
||||||
|
|
||||||
|
if ($application) {
|
||||||
|
// Get team members through the application's project
|
||||||
|
$team = $application->team();
|
||||||
|
if ($team) {
|
||||||
|
$teamMembers = $team->members()->pluck('email')->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Construct the full deployment URL
|
||||||
|
if ($runningJob->deployment_url) {
|
||||||
|
$baseUrl = base_url();
|
||||||
|
$deploymentUrl = $baseUrl.$runningJob->deployment_url;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$deploymentDetails[] = [
|
||||||
|
'id' => $runningJob->id,
|
||||||
|
'application_name' => $runningJob->application_name ?? 'Unknown',
|
||||||
|
'server_name' => $runningJob->server_name ?? 'Unknown',
|
||||||
|
'deployment_url' => $deploymentUrl,
|
||||||
|
'team_members' => $teamMembers,
|
||||||
|
'created_at' => $runningJob->created_at->format('Y-m-d H:i:s'),
|
||||||
|
'horizon_job_id' => $runningJob->horizon_job_id,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (count($horizonJobIds) === 0) {
|
if (count($horizonJobIds) === 0) {
|
||||||
echo "No deployments in progress.\n";
|
echo "No active deployments in progress (all jobs completed or failed).\n";
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
$horizonJobIds = collect($horizonJobIds)->unique()->toArray();
|
|
||||||
echo 'There are '.count($horizonJobIds)." deployments in progress.\n";
|
// Display enhanced deployment information
|
||||||
|
echo "\n=== Running Deployments ===\n";
|
||||||
|
echo 'Total active deployments: '.count($horizonJobIds)."\n\n";
|
||||||
|
|
||||||
|
foreach ($deploymentDetails as $index => $deployment) {
|
||||||
|
echo 'Deployment #'.($index + 1).":\n";
|
||||||
|
echo ' Application: '.$deployment['application_name']."\n";
|
||||||
|
echo ' Server: '.$deployment['server_name']."\n";
|
||||||
|
echo ' Started: '.$deployment['created_at']."\n";
|
||||||
|
if ($deployment['deployment_url']) {
|
||||||
|
echo ' URL: '.$deployment['deployment_url']."\n";
|
||||||
|
}
|
||||||
|
if (! empty($deployment['team_members'])) {
|
||||||
|
echo ' Team members: '.implode(', ', $deployment['team_members'])."\n";
|
||||||
|
} else {
|
||||||
|
echo " Team members: No team members found\n";
|
||||||
|
}
|
||||||
|
echo ' Horizon Job ID: '.$deployment['horizon_job_id']."\n";
|
||||||
|
echo "\n";
|
||||||
|
}
|
||||||
|
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user