public function run(Build $build, $targets = array()) { if ($build->getState() >= Build::STATE_BUILD) { $this->info("===> Already built, skipping..."); return; } $this->info("===> Building..."); $cmd = new CommandBuilder('make'); $cmd->setAppendLog(true); $cmd->setLogPath($build->getBuildLogPath()); $cmd->setStdout($this->options->{'stdout'}); if (!empty($targets)) { foreach ($targets as $t) { $cmd->addArg($t); } } if ($this->options->nice) { $cmd->nice($this->options->nice); } if ($makeJobs = $this->options->{'jobs'}) { $cmd->addArg("-j{$makeJobs}"); } $this->debug($cmd->getCommand()); if (!$this->options->dryrun) { $startTime = microtime(true); $code = $cmd->execute(); if ($code != 0) { throw new SystemCommandException('Make failed.', $build, $build->getBuildLogPath()); } $buildTime = round((microtime(true) - $startTime) / 60, 1); $this->info("Build finished: {$buildTime} minutes."); } $build->setState(Build::STATE_BUILD); }
public function build($build, $options) { $this->info("===> Building..."); $cmd = new CommandBuilder('make'); $cmd->append = true; if ($this->logPath) { $cmd->stdout = $this->logPath; } if ($options->nice) { $cmd->nice($options->nice); } if ($makeJobs = $options->{'make-jobs'}) { $cmd->addArg("-j{$makeJobs}"); } $this->debug($cmd->__toString()); if (!$options->dryrun) { $startTime = microtime(true); $cmd->execute() !== false or die('Make failed.'); $buildTime = ceil((microtime(true) - $startTime) / 60); $this->info("Build finished: {$buildTime} minutes."); } }