/** * @param Dispatcher $bus * @throws \Exception */ public function handle(Dispatcher $bus) { try { if ($this->release->isCancelled()) { return; } $this->release->update(['status' => Release::PREPARING]); $this->release->logger()->comment("Preparing release..."); $this->prepareReleaseDir(); $this->createArchive(); $this->extractArchive(); $this->writePlaybooks(); if ($this->release->isCancelled()) { return; } if ($this->sync) { $bus->dispatchNow(new PlaybookJob($this->release)); $bus->dispatchNow(new CleanupReleasesJob($this->release->repo)); } else { $bus->dispatch(new PlaybookJob($this->release)); $bus->dispatch(new CleanupReleasesJob($this->release->repo)); } } catch (\Exception $e) { $this->release->update(['status' => Release::ERROR, 'raw_logs' => $e->getMessage()]); $this->release->logger()->push(); throw $e; } }
/** * @param Process $process * @return callable */ public function updateRelease(Process $process) { $out = $process->getIncrementalOutput() . $process->getIncrementalErrorOutput(); $this->release->update(['raw_log' => $process->getOutput() . PHP_EOL . $process->getErrorOutput()]); if (!empty($out)) { $this->release->logger()->info($out); } }