/** * Run the analysis. * * @param \StyleCI\StyleCI\Models\Analysis $analysis * * @return void */ protected function runAnalysis(Analysis $analysis) { $report = $this->builder->analyze($analysis->repo->name, $analysis->repo->id, $analysis->commit, $analysis->branch, $analysis->pr, $analysis->repo->default_branch); if ($report->binary()) { $analysis->status = Analysis::CONFIG_ISSUES; $analysis->error = 'We cannot analyze binary files. The finder config needs adjusting to exclude such files.'; return; } if ($errors = $report->errors()) { $analysis->status = Analysis::INTERNAL; $analysis->errors = $errors; return; } $successful = $report->successful(); $lints = $report->lints(); if ($successful && $lints) { $analysis->status = Analysis::SYNTAX_ISSUES; $analysis->errors = $lints; } elseif (!$successful && $lints) { $analysis->status = Analysis::BOTH_ISSUES; $analysis->errors = $lints; } elseif ($successful && !$lints) { $analysis->status = Analysis::PASSED; } else { $analysis->status = Analysis::CS_ISSUES; } if (!$successful) { $this->storage->put($analysis->id, $report->diff()); } }