* @package PHPCI * @subpackage Plugins */ class Deployer implements \PHPCI\Plugin { protected $webhookUrl; protected $reason; protected $updateOnly; /** * Set up the plugin, configure options, etc. * @param Builder $phpci * @param Build $build * @param array $options */ public function __construct(Builder $phpci, Build $build, array $options = array()) { $this->phpci = $phpci; $this->build = $build; $this->reason = 'PHPCI Build #%BUILD% - %COMMIT_MESSAGE%'; if (isset($options['webhook_url'])) { $this->webhookUrl = $options['webhook_url']; } if (isset($options['reason'])) { $this->reason = $options['reason']; } $this->updateOnly = isset($options['update_only']) ? (bool) $options['update_only'] : true; } /** * Copies files from the root of the build directory into the target folder */ public function execute() { if (empty($this->webhookUrl)) { $this->phpci->logFailure('You must specify a webhook URL.'); return false; } $http = new HttpClient(); $response = $http->post($this->webhookUrl, array( 'reason' => $this->phpci->interpolate($this->reason), 'source' => 'PHPCI', 'url' => $this->phpci->interpolate('%BUILD_URI%'), 'branch' => $this->phpci->interpolate('%BRANCH%'), 'update_only' => $this->updateOnly )); return $response['success']; } }