GrumPHP\Runner\TaskRunner::run PHP Method

run() public method

public run ( GrumPHP\Task\Context\ContextInterface $context ) : TaskResultCollection
$context GrumPHP\Task\Context\ContextInterface
return GrumPHP\Collection\TaskResultCollection
    public function run(ContextInterface $context)
    {
        $tasks = $this->tasks->filterByContext($context)->sortByPriority($this->grumPHP);
        $taskResults = new TaskResultCollection();
        $this->eventDispatcher->dispatch(RunnerEvents::RUNNER_RUN, new RunnerEvent($tasks, $context, $taskResults));
        foreach ($tasks as $task) {
            try {
                $taskResult = $this->runTask($task, $context);
            } catch (RuntimeException $e) {
                $taskResult = TaskResult::createFailed($task, $context, $e->getMessage());
            }
            $taskResults->add($taskResult);
            if (!$taskResult->isPassed() && $taskResult->isBlocking() && $this->grumPHP->stopOnFailure()) {
                break;
            }
        }
        if ($taskResults->isFailed()) {
            $this->eventDispatcher->dispatch(RunnerEvents::RUNNER_FAILED, new RunnerFailedEvent($tasks, $context, $taskResults));
            return $taskResults;
        }
        $this->eventDispatcher->dispatch(RunnerEvents::RUNNER_COMPLETE, new RunnerEvent($tasks, $context, $taskResults));
        return $taskResults;
    }

Usage Example

Example #1
0
 /**
  * @param ContextInterface $context
  *
  * @return int
  */
 public function run(OutputInterface $output, ContextInterface $context)
 {
     try {
         $this->taskRunner->run($context);
     } catch (ExceptionInterface $e) {
         // We'll fail hard on any exception not generated in GrumPHP
         return $this->returnErrorMessage($output, $e->getMessage());
     }
     return $this->returnSuccessMessage($output);
 }
All Usage Examples Of GrumPHP\Runner\TaskRunner::run