- 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
51 lines
1.4 KiB
PHP
51 lines
1.4 KiB
PHP
<?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";
|