Add notification for deployment completion (#445)

* Add notification for deployment completion

Add notification for deployment completion status.

* Create `DeploymentCompleted` notification class in `app/Notifications/DeploymentCompleted.php` to handle deployment completion notifications.
* Update `app/Actions/Site/Deploy.php` to send `DeploymentCompleted` notification using `Notifier` when a deployment completes or fails.
* Import `Notifier` and `DeploymentCompleted` classes in `app/Actions/Site/Deploy.php`.

---

For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/vitodeploy/vito?shareId=XXXX-XXXX-XXXX-XXXX).

* Format with pint

* Add tests

* Pint format

* Delete tests/Feature/Notifications/DeploymentCompletedTest.php

* Delete tests/Unit/Notifications/DeploymentCompletedTest.php

* 🍻🍻

* tests

---------

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:
Pierluigi Cau (PG)
2025-01-30 02:29:51 +08:00
committed by GitHub
parent 7b723bcba5
commit d702b95e0c
4 changed files with 65 additions and 4 deletions

View File

@ -3,10 +3,10 @@
namespace Tests;
use App\Enums\Database;
use App\Enums\NotificationChannel;
use App\Enums\ServiceStatus;
use App\Enums\UserRole;
use App\Enums\Webserver;
use App\Models\NotificationChannel;
use App\Models\Server;
use App\Models\Site;
use App\Models\SourceControl;
@ -24,6 +24,8 @@ abstract class TestCase extends BaseTestCase
protected Site $site;
protected NotificationChannel $notificationChannel;
public const EXPECT_SUCCESS = true;
public const EXPECT_FAILURE = false;
@ -40,8 +42,8 @@ protected function setUp(): void
]);
$this->user->createDefaultProject();
\App\Models\NotificationChannel::factory()->create([
'provider' => NotificationChannel::EMAIL,
$this->notificationChannel = NotificationChannel::factory()->create([
'provider' => \App\Enums\NotificationChannel::EMAIL,
'connected' => true,
'data' => [
'email' => 'user@example.com',