feat(Deployment): Integrate Ansible deployment via PHP deployment pipeline
- Create AnsibleDeployStage using framework's Process module for secure command execution - Integrate AnsibleDeployStage into DeploymentPipelineCommands for production deployments - Add force_deploy flag support in Ansible playbook to override stale locks - Use PHP deployment module as orchestrator (php console.php deploy:production) - Fix ErrorAggregationInitializer to use Environment class instead of $_ENV superglobal Architecture: - BuildStage → AnsibleDeployStage → HealthCheckStage for production - Process module provides timeout, error handling, and output capture - Ansible playbook supports rollback via rollback-git-based.yml - Zero-downtime deployments with health checks
This commit is contained in:
@@ -14,11 +14,13 @@ enum NotificationChannel: string
|
||||
case PUSH = 'push';
|
||||
case SMS = 'sms';
|
||||
case WEBHOOK = 'webhook';
|
||||
case WHATSAPP = 'whatsapp';
|
||||
case TELEGRAM = 'telegram';
|
||||
|
||||
public function isRealtime(): bool
|
||||
{
|
||||
return match ($this) {
|
||||
self::DATABASE, self::PUSH => true,
|
||||
self::DATABASE, self::PUSH, self::WHATSAPP, self::TELEGRAM => true,
|
||||
self::EMAIL, self::SMS, self::WEBHOOK => false,
|
||||
};
|
||||
}
|
||||
@@ -26,7 +28,7 @@ enum NotificationChannel: string
|
||||
public function requiresExternalService(): bool
|
||||
{
|
||||
return match ($this) {
|
||||
self::EMAIL, self::SMS, self::WEBHOOK => true,
|
||||
self::EMAIL, self::SMS, self::WEBHOOK, self::WHATSAPP, self::TELEGRAM => true,
|
||||
self::DATABASE, self::PUSH => false,
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user