Example #1
0
 /**
  * Invokes a deployment.
  *
  * @param Project $project     The project
  * @param string  $environment The environment
  * @param bool    $dryRun      IF deployment is a dry run
  *
  * @return DeploymentPayload
  */
 public function deploy(Project $project, $environment, $dryRun)
 {
     \Assert\that($environment)->string()->notEmpty();
     Assertion::boolean($dryRun);
     $this->logger->debug(sprintf("Deploying '%s' to '%s'", $project->getName(), $environment));
     $environment = $project->getEnvironment($environment);
     $runner = $this->mappingConverter->convert($environment->getMapping());
     $projectDirectory = $this->projectDirectoryHelper->create($project);
     $this->interpolator->add('PROJECT', $environment->getName());
     $this->interpolator->add('ENVIRONMENT', $environment->getName());
     $this->interpolator->add('PROJECT_DIRECTORY', $projectDirectory);
     $payload = new DeploymentPayload();
     $payload->setProject($project);
     $payload->setEnvironment($environment);
     $payload->setProjectDirectory($projectDirectory);
     $payload->setDryRun($dryRun);
     $payload = $runner->run($payload);
     $this->projectDirectoryHelper->cleanup($project);
     return $payload;
 }