public function testStatus() { $commit = new Commit(new Project('Twig'), '7d78d5f7a8c039059046d6c5e1d7f66765bd91c7'); $this->assertEquals('building', $commit->getStatusCode()); $this->assertEquals('building', $commit->getStatus()); $commit->setStatusCode('failed'); $this->assertEquals('failed', $commit->getStatusCode()); $this->assertEquals('failed', $commit->getStatus()); $commit->setStatusCode('success'); $this->assertEquals('success', $commit->getStatusCode()); $this->assertEquals('succeeded', $commit->getStatus()); }
public function notify(Commit $commit) { $slug = $commit->getProject()->getSlug(); $status = 'succeeded' == strtolower($commit->getStatus()) ? 'ok' : 'ko'; $data = unserialize(file_get_contents($this->log)); $data['last_update'] = date('Y-M-j H:i:s'); $data['projects'][$slug][] = $status; // image will only show `max_number_bars` builds per project $data['projects'][$slug] = array_slice($data['projects'][$slug], -$this->get('max_number_bars')); file_put_contents($this->log, serialize($data)); // if the last image was generated less than 15 seconds ago, don't generate // another image. This prevents collisions when building a lot of projects if (null != $this->updatedAt && microtime(true) - $this->updatedAt < 15) { return; } $this->updateBackground($data); }
protected function getPlaceholders(Commit $commit) { $project = $commit->getProject(); return array('%slug%' => $project->getSlug(), '%name%' => $project->getName(), '%status%' => $commit->getStatus(), '%status_code%' => $commit->getStatusCode(), '%STATUS%' => strtoupper($commit->getStatus()), '%sha%' => $commit->getSha(), '%short_sha%' => $commit->getShortSha(), '%author%' => $commit->getAuthor(), '%message%' => $commit->getMessage(), '%output%' => $commit->getOutput()); }