public function publish(Xinc_Build_Interface $build) { /** * We only process on success. * Failed builds are not processed by this publisher */ if ($build->getStatus() != Xinc_Build_Interface::PASSED) { return; } /** * Only if we recovered from a previous failed build cycle */ $build->info('Last Build status: ' . $build->getLastBuild()->getStatus()); if ($build->getLastBuild()->getStatus() !== 0) { return; } $published = false; $build->info('Publishing with OnRecovery Publishers'); foreach ($this->arSubtasks as $task) { $published = true; $build->info('Publishing with OnRecovery Publisher: ' . get_class($task)); $task->publish($build); if ($build->getStatus() != Xinc_Build_Interface::PASSED) { $build->error('Error while publishing on Recovery. OnRecovery-Publish-Process stopped'); break; } } if (!$published) { $build->info('No Publishers registered for OnRecovery'); } }
/** * Calculates the next build timestamp * this is a build once scheduler * * @return integer */ public function getNextBuildTime(Xinc_Build_Interface $build) { if ($build->getLastBuild()->getBuildTime() == null && $build->getStatus() !== Xinc_Build_Interface::STOPPED) { if (!isset($this->nextBuildTime)) { $this->nextBuildTime = time(); } return $this->nextBuildTime; } else { return null; } }