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:
50
tests/debug/test-schedule-simple.php
Normal file
50
tests/debug/test-schedule-simple.php
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
require_once __DIR__ . '/../../vendor/autoload.php';
|
||||
|
||||
use App\Framework\Core\ValueObjects\Duration;
|
||||
use App\Framework\Scheduler\Schedules\IntervalSchedule;
|
||||
use App\Framework\Worker\Every;
|
||||
|
||||
echo "=== Testing Schedule Integration ===\n\n";
|
||||
|
||||
// Test Every value object
|
||||
$every = new Every(minutes: 5);
|
||||
echo "Every value object:\n";
|
||||
echo " Minutes: {$every->minutes}\n";
|
||||
echo " Seconds: {$every->toSeconds()}\n\n";
|
||||
|
||||
// Test conversion to IntervalSchedule
|
||||
$intervalSeconds = $every->toSeconds();
|
||||
$intervalSchedule = IntervalSchedule::every(
|
||||
Duration::fromSeconds($intervalSeconds)
|
||||
);
|
||||
|
||||
echo "Interval schedule created\n";
|
||||
echo " Duration: {$intervalSeconds} seconds\n\n";
|
||||
|
||||
// Test task ID generation
|
||||
$className = 'App\\Framework\\Worker\\TestFiveMinuteJob';
|
||||
$parts = explode('\\', $className);
|
||||
$shortName = end($parts);
|
||||
$taskId = strtolower(preg_replace('/([a-z])([A-Z])/', '$1-$2', $shortName));
|
||||
|
||||
echo "Task ID generation:\n";
|
||||
echo " Class name: {$className}\n";
|
||||
echo " Short name: {$shortName}\n";
|
||||
echo " Task ID: {$taskId}\n\n";
|
||||
|
||||
// Test another example
|
||||
$className2 = 'TestScheduledJob';
|
||||
$parts2 = explode('\\', $className2);
|
||||
$shortName2 = end($parts2);
|
||||
$taskId2 = strtolower(preg_replace('/([a-z])([A-Z])/', '$1-$2', $shortName2));
|
||||
|
||||
echo "Another example:\n";
|
||||
echo " Class name: {$className2}\n";
|
||||
echo " Short name: {$shortName2}\n";
|
||||
echo " Task ID: {$taskId2}\n\n";
|
||||
|
||||
echo "=== Test completed ===\n";
|
||||
Reference in New Issue
Block a user