/** * @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); } }
public function update(Release $release, Request $request) { switch ($request->get('status')) { case Release::QUEUED: if (!$release->status == Release::ERROR) { return response()->json(['error' => 'Cannot retry!'], 422); } $release->update(['status' => Release::QUEUED]); $this->dispatch(new PrepareReleaseJob($release)); break; case Release::CANCELLED: if (!$release->isCancellable()) { return response()->json(['error' => 'Cannot cancel!'], 422); } $release->update(['status' => Release::CANCELLED]); break; } return $release; }
/** * @param Pusher $pusher * @throws \Exception */ public function handle(Pusher $pusher) { try { if ($this->release->isCancelled()) { return; } $this->release->update(['status' => Release::PREPARING]); $pusher->trigger(['releases'], "release-" . $this->release->id, $this->release->toArray()); $this->prepareReleaseDir(); $this->createArchive(); $this->extractArchive(); $this->writePlaybooks(); if ($this->release->isCancelled()) { return; } $this->dispatch(new PlaybookJob($this->release)); $this->dispatch(new CleanupReleasesJob($this->release->repo)); } catch (\Exception $e) { $this->release->update(['status' => Release::ERROR, 'raw_logs' => $e->getMessage()]); $pusher->trigger(['releases'], "release-" . $this->release->id, $this->release->toArray()); throw $e; } }
/** * @param Process $process * @return callable */ public function updateRelease(Process $process) { $this->release->update(['raw_log' => $process->getOutput() . PHP_EOL . $process->getErrorOutput()]); }