|
|
|
@ -298,35 +298,9 @@ class DeployCommand extends AbstractCommand implements RequiresEnvironment
|
|
|
|
|
|
|
|
|
|
$tasksToRun = $this->getConfig()->getTasks(); |
|
|
|
|
|
|
|
|
|
// Guess a Deploy Strategy |
|
|
|
|
switch ($this->getConfig()->deployment('strategy', 'guess')) { |
|
|
|
|
case 'disabled': |
|
|
|
|
$deployStrategy = 'deployment/strategy/disabled'; |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
case 'rsync': |
|
|
|
|
$deployStrategy = 'deployment/strategy/rsync'; |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
case 'targz': |
|
|
|
|
$deployStrategy = 'deployment/strategy/tar-gz'; |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
case 'git-rebase': |
|
|
|
|
$deployStrategy = 'deployment/strategy/git-rebase'; |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
case 'guess': |
|
|
|
|
default: |
|
|
|
|
if ($this->getConfig()->release('enabled', false) == true) { |
|
|
|
|
$deployStrategy = 'deployment/strategy/tar-gz'; |
|
|
|
|
} else { |
|
|
|
|
$deployStrategy = 'deployment/strategy/rsync'; |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
$deployStrategy = $this->chooseDeployStrategy(); |
|
|
|
|
|
|
|
|
|
array_unshift($tasksToRun, $deployStrategy); |
|
|
|
|
array_unshift($tasksToRun, $deployStrategy); |
|
|
|
|
|
|
|
|
|
if (count($tasksToRun) == 0) { |
|
|
|
|
Console::output('<light_purple>Warning!</light_purple> <dark_gray>No </dark_gray><light_cyan>Deployment</light_cyan> <dark_gray>tasks defined.</dark_gray>', 2); |
|
|
|
@ -381,7 +355,7 @@ class DeployCommand extends AbstractCommand implements RequiresEnvironment
|
|
|
|
|
$this->getConfig()->setHost($host); |
|
|
|
|
$this->getConfig()->setHostConfig($hostConfig); |
|
|
|
|
|
|
|
|
|
$task = Factory::get('deployment/release', $this->getConfig(), false, AbstractTask::STAGE_DEPLOY); |
|
|
|
|
$task = Factory::get($this->chooseReleaseStrategy(), $this->getConfig(), false, AbstractTask::STAGE_DEPLOY); |
|
|
|
|
|
|
|
|
|
if ($this->runTask($task, 'Releasing on host <purple>' . $host . '</purple> ... ')) { |
|
|
|
|
$completedTasks++; |
|
|
|
@ -543,4 +517,54 @@ class DeployCommand extends AbstractCommand implements RequiresEnvironment
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @return string |
|
|
|
|
*/ |
|
|
|
|
protected function chooseDeployStrategy() |
|
|
|
|
{ |
|
|
|
|
// Guess a Deploy Strategy |
|
|
|
|
switch ($this->getConfig()->deployment('strategy', 'guess')) { |
|
|
|
|
case 'disabled': |
|
|
|
|
$deployStrategy = 'deployment/strategy/disabled'; |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
case 'rsync': |
|
|
|
|
$deployStrategy = 'deployment/strategy/rsync'; |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
case 'targz': |
|
|
|
|
$deployStrategy = 'deployment/strategy/tar-gz'; |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
case 'git-rebase': |
|
|
|
|
$deployStrategy = 'deployment/strategy/git-rebase'; |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
case 'guess': |
|
|
|
|
default: |
|
|
|
|
if ($this->getConfig()->release('enabled', false) == true) { |
|
|
|
|
$deployStrategy = 'deployment/strategy/tar-gz'; |
|
|
|
|
} else { |
|
|
|
|
$deployStrategy = 'deployment/strategy/rsync'; |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
return $deployStrategy; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @return string |
|
|
|
|
*/ |
|
|
|
|
protected function chooseReleaseStrategy() |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
if ($this->getConfig()->release('enabled', false) === true) { |
|
|
|
|
$strategy = 'deployment/strategy/disabled'; |
|
|
|
|
} else { |
|
|
|
|
$strategy = 'deployment/release'; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return $strategy; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|