src/Joli/JoliCi/Command/RunCommand.php
protected function execute(InputInterface $input, OutputInterface $output)
    {
        $container  = new Container();
        $verbose    = (OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity());
        $strategy   = $container->getChainStrategy();
        $executor   = $container->getExecutor(!$input->getOption('no-cache'), $verbose, $input->getOption('timeout'));
        $serviceManager = $container->getServiceManager($verbose);
        $notifier   = NotifierFactory::create();

        $output->writeln("<info>Creating builds...</info>");

        $jobs = $strategy->getJobs($input->getOption("project-path"));

        $output->writeln(sprintf("<info>%s builds created</info>", count($jobs)));

        $exitCode = 0;

        try {
            foreach ($jobs as $job) {
                $output->writeln(sprintf("\n<info>Running job %s</info>\n", $job->getDescription()));

                $serviceManager->start($job);
                $strategy->prepareJob($job);

                $success  = $executor->test($job, $input->getArgument('cmd'));
                $exitCode += $success == 0 ? 0 : 1;

                if ($input->getOption('notify')) {
                    $notification = new Notification();
                    $notification->setBody(sprintf('Test results for %s on %s', $container->getNaming()->getProjectName($input->getOption('project-path')), $job->getDescription()));
                    $notification->setTitle($success == 0 ? 'Tests passed' : 'Tests failed');

                    $notifier->send($notification);
                }

                $serviceManager->stop($job);
            }
        } catch (\Exception $e) {
            // Try stop last builds
            if (isset($job)) {
                $serviceManager->stop($job);
            }
            // We do not deal with exception (Console Component do it well),
            // we just catch it to allow cleaner to be runned even if one of the build failed hard
            // Simulation of a finally for php < 5.6 :-°
        }

        $container->getVacuum()->clean($input->getOption("project-path"), $input->getOption("keep"));

        if (isset($e)) {
            throw $e;
        }

        return $exitCode;
    }
protected function execute(InputInterface $input, OutputInterface $output)
    {
        $container  = new Container();
        $verbose    = (OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity());
        $strategy   = $container->getChainStrategy();
        $executor   = $container->getExecutor(!$input->getOption('no-cache'), $verbose, $input->getOption('timeout'));
        $serviceManager = $container->getServiceManager($verbose);
        $notifier   = NotifierFactory::create();

        $output->writeln("<info>Creating builds...</info>");

        $jobs = $strategy->getJobs($input->getOption("project-path"));

        $output->writeln(sprintf("<info>%s builds created</info>", count($jobs)));

        $exitCode = 0;

        try {
            foreach ($jobs as $job) {
                $output->writeln(sprintf("\n<info>Running job %s</info>\n", $job->getDescription()));

                $serviceManager->start($job);
                $strategy->prepareJob($job);

                $success  = $executor->test($job, $input->getArgument('cmd'));
                $exitCode += $success == 0 ? 0 : 1;

                if ($input->getOption('notify')) {
                    $notification = new Notification();
                    $notification->setBody(sprintf('Test results for %s on %s', $container->getNaming()->getProjectName($input->getOption('project-path')), $job->getDescription()));
                    $notification->setTitle($success == 0 ? 'Tests passed' : 'Tests failed');

                    $notifier->send($notification);
                }

                $serviceManager->stop($job);
            }
        } catch (\Exception $e) {
            // Try stop last builds
            if (isset($job)) {
                $serviceManager->stop($job);
            }
            // We do not deal with exception (Console Component do it well),
            // we just catch it to allow cleaner to be runned even if one of the build failed hard
            // Simulation of a finally for php < 5.6 :-°
        }

        $container->getVacuum()->clean($input->getOption("project-path"), $input->getOption("keep"));

        if (isset($e)) {
            throw $e;
        }

        return $exitCode;
    }
protected function execute ( InputInterface $ input , OutputInterface $ output ) { $ container = new Container ( ) ; $ verbose = ( OutputInterface :: VERBOSITY_VERBOSE <= $ output -> getVerbosity ( ) ) ; $ strategy = $ container -> getChainStrategy ( ) ; $ executor = $ container -> getExecutor ( ! $ input -> getOption ( 'no-cache' ) , $ verbose , $ input -> getOption ( 'timeout' ) ) ; $ serviceManager = $ container -> getServiceManager ( $ verbose ) ; $ notifier = NotifierFactory :: create ( ) ; $ output -> writeln ( "<info>Creating builds...</info>" ) ; $ jobs = $ strategy -> getJobs ( $ input -> getOption ( "project-path" ) ) ; $ output -> writeln ( sprintf ( "<info>%s builds created</info>" , count ( $ jobs ) ) ) ; $ exitCode = 0 ; try { foreach ( $ jobs as $ job ) { $ output -> writeln ( sprintf ( "\n<info>Running job %s</info>\n" , $ job -> getDescription ( ) ) ) ; $ serviceManager -> start ( $ job ) ; $ strategy -> prepareJob ( $ job ) ; $ success = $ executor -> test ( $ job , $ input -> getArgument ( 'cmd' ) ) ; $ exitCode += $ success == 0 ? 0 : 1 ; if ( $ input -> getOption ( 'notify' ) ) { $ notification = new Notification ( ) ; $ notification -> setBody ( sprintf ( 'Test results for %s on %s' , $ container -> getNaming ( ) -> getProjectName ( $ input -> getOption ( 'project-path' ) ) , $ job -> getDescription ( ) ) ) ; $ notification -> setTitle ( $ success == 0 ? 'Tests passed' : 'Tests failed' ) ; $ notifier -> send ( $ notification ) ; } $ serviceManager -> stop ( $ job ) ; } } catch ( \ Exception $ e ) { // Try stop last builds if ( isset ( $ job ) ) { $ serviceManager -> stop ( $ job ) ; } // We do not deal with exception (Console Component do it well), // we just catch it to allow cleaner to be runned even if one of the build failed hard // Simulation of a finally for php < 5.6 :-° } $ container -> getVacuum ( ) -> clean ( $ input -> getOption ( "project-path" ) , $ input -> getOption ( "keep" ) ) ; if ( isset ( $ e ) ) { throw $ e ; } return $ exitCode ; }
{@inheritdoc}
{