상속: extends Illuminate\Database\Eloquent\Model, implements Robbo\Presenter\PresentableInterface
예제 #1
0
 /**
  * Create an instance of DeployStep and a ServerLog entry for each server which can have code deployed.
  *
  * @param  int  $stage
  * @return void
  */
 private function createDeployStep($stage)
 {
     $step = DeployStep::create(['stage' => $stage, 'deployment_id' => $this->deployment->id]);
     foreach ($this->project->servers as $server) {
         // If command is null it is preparing one of the 4 default steps so
         // skip servers which shouldn't have the code deployed
         if (!$server->deploy_code) {
             continue;
         }
         ServerLog::create(['server_id' => $server->id, 'deploy_step_id' => $step->id]);
     }
 }
예제 #2
0
 /**
  * Generates the list of tokens for the scripts.
  *
  * @param DeployStep $step
  * @param Server $server
  *
  * @return array
  */
 private function getTokenList(DeployStep $step, Server $server)
 {
     $releases_dir = $server->clean_path . '/releases';
     $latest_release_dir = $releases_dir . '/' . $this->deployment->release_id;
     $release_shared_dir = $server->clean_path . '/shared';
     $remote_archive = $server->clean_path . '/' . $this->release_archive;
     // Set the deployer tags
     $deployer_email = '';
     $deployer_name = 'webhook';
     if ($this->deployment->user) {
         $deployer_name = $this->deployment->user->name;
         $deployer_email = $this->deployment->user->email;
     } elseif ($this->deployment->is_webhook && !empty($this->deployment->source)) {
         $deployer_name = $this->deployment->source;
     }
     $tokens = ['release' => $this->deployment->release_id, 'release_path' => $latest_release_dir, 'project_path' => $server->clean_path, 'branch' => $this->deployment->branch, 'sha' => $this->deployment->commit, 'short_sha' => $this->deployment->short_commit, 'deployer_email' => $deployer_email, 'deployer_name' => $deployer_name, 'committer_email' => $this->deployment->committer_email, 'committer_name' => $this->deployment->committer];
     if (!$step->isCustom()) {
         $tokens = array_merge($tokens, ['remote_archive' => $remote_archive, 'include_dev' => $this->deployment->project->include_dev, 'builds_to_keep' => $this->deployment->project->builds_to_keep + 1, 'shared_path' => $release_shared_dir, 'releases_path' => $releases_dir]);
     }
     return $tokens;
 }