mirror of
https://github.com/vitodeploy/vito.git
synced 2025-07-01 22:16:15 +00:00
Add endpoint for triggering site deployment (#563)
* feat(api): Add endpoint for triggering site deployment - Add POST /api/projects/{project}/servers/{server}/sites/{site}/deploy endpoint - Add feature tests * fix merge issue and generate api docs * fix merge --------- Co-authored-by: Saeed Vaziry <61919774+saeedvaziry@users.noreply.github.com> Co-authored-by: Saeed Vaziry <mr.saeedvaziry@gmail.com>
This commit is contained in:
@ -3,11 +3,13 @@
|
||||
namespace App\Http\Controllers\API;
|
||||
|
||||
use App\Actions\Site\CreateSite;
|
||||
use App\Actions\Site\Deploy;
|
||||
use App\Actions\Site\UpdateAliases;
|
||||
use App\Actions\Site\UpdateDeploymentScript;
|
||||
use App\Actions\Site\UpdateLoadBalancer;
|
||||
use App\Enums\LoadBalancerMethod;
|
||||
use App\Enums\SiteType;
|
||||
use App\Exceptions\DeploymentScriptIsEmptyException;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Resources\SiteResource;
|
||||
use App\Models\Project;
|
||||
@ -133,6 +135,24 @@ public function updateAliases(Request $request, Project $project, Server $server
|
||||
return new SiteResource($site);
|
||||
}
|
||||
|
||||
#[Post('{site}/deploy', name: 'api.projects.servers.sites.deploy', middleware: 'ability:write')]
|
||||
#[Endpoint(title: 'deploy', description: 'Run site deployment script')]
|
||||
#[Response(status: 200)]
|
||||
public function deploy(Request $request, Project $project, Server $server, Site $site): SiteResource
|
||||
{
|
||||
$this->authorize('update', [$site, $server]);
|
||||
|
||||
$this->validateRoute($project, $server, $site);
|
||||
|
||||
try {
|
||||
app(Deploy::class)->run($site);
|
||||
|
||||
return new SiteResource($site);
|
||||
} catch (DeploymentScriptIsEmptyException) {
|
||||
abort(422, 'Deployment script is empty');
|
||||
}
|
||||
}
|
||||
|
||||
#[Put('{site}/deployment-script', name: 'api.projects.servers.sites.deployment-script', middleware: 'ability:write')]
|
||||
#[Endpoint(title: 'deployment-script', description: 'Update site deployment script')]
|
||||
#[BodyParam(name: 'script', type: 'string', description: 'Content of the deployment script')]
|
||||
|
Reference in New Issue
Block a user