From a81addf99a72458b6b42311d74e2cfcd015390d9 Mon Sep 17 00:00:00 2001 From: poespas Date: Thu, 30 Jul 2026 14:32:03 +0200 Subject: [PATCH] Only build AfterTasks that are Commands --- src/Deployer/Task/After/AfterTaskGlobal.php | 9 ++++++++- src/Deployer/TaskBuilder.php | 3 +-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Deployer/Task/After/AfterTaskGlobal.php b/src/Deployer/Task/After/AfterTaskGlobal.php index 3655425..d9cdc14 100644 --- a/src/Deployer/Task/After/AfterTaskGlobal.php +++ b/src/Deployer/Task/After/AfterTaskGlobal.php @@ -4,7 +4,9 @@ use Hypernode\Deploy\Deployer\Task\TaskBase; use Hypernode\Deploy\Deployer\TaskBuilder; +use Hypernode\DeployConfiguration\Command\Command; use Hypernode\DeployConfiguration\Configuration; +use Hypernode\DeployConfiguration\TaskConfigurationInterface; use function count; use function Deployer\task; @@ -24,7 +26,12 @@ public function __construct(TaskBuilder $taskBuilder) public function configure(Configuration $config): void { - $tasks = $this->taskBuilder->buildAll($config->getAfterDeployTasks(), 'deploy:after'); + $commands = array_values(array_filter( + $config->getAfterDeployTasks(), + fn (TaskConfigurationInterface $task): bool => $task instanceof Command + )); + + $tasks = $this->taskBuilder->buildAll($commands, 'deploy:after'); if (count($tasks) === 0) { $tasks = function (): void { writeln('No after deploy tasks defined'); diff --git a/src/Deployer/TaskBuilder.php b/src/Deployer/TaskBuilder.php index d97e767..051ce00 100644 --- a/src/Deployer/TaskBuilder.php +++ b/src/Deployer/TaskBuilder.php @@ -19,7 +19,7 @@ class TaskBuilder { /** - * @param TaskConfigurationInterface[] $commands + * @param Command[] $commands * * @param string $namePrefix * @return string[] @@ -32,7 +32,6 @@ public function buildAll(array $commands, string $namePrefix): array foreach ($commands as $command) { $name = $namePrefix . ':' . \count($tasks); - /** @var Command $command */ $this->build($command, $name); $tasks[] = $name;