Changes on configuration.

Preparation for Post Release tasks.
This commit is contained in:
Andrs Montaez
2011-11-28 00:41:53 -02:00
parent 1349f296c0
commit 9c03ae6bed
7 changed files with 68 additions and 50 deletions
+10 -8
View File
@@ -13,15 +13,17 @@ class Mage_Task_Add
Mage_Console::output('<light_red>Error!!</light_red> Already exists an environment called <dark_gray>' . $environmentName . '</dark_gray>', 1, 2);
} else {
$baseConfig = '#' . $environmentName . PHP_EOL
. 'user: dummy' . PHP_EOL
. 'deploy-from: ./' . PHP_EOL
. 'deploy-to: /var/www/vhosts/example.com/www' . PHP_EOL
. 'rsync-excludes:' . PHP_EOL
. 'deployment:'
. ' user: dummy' . PHP_EOL
. ' from: ./' . PHP_EOL
. ' to: /var/www/vhosts/example.com/www' . PHP_EOL
. ' excludes:' . PHP_EOL
. 'hosts:' . PHP_EOL
. 'pre-tasks:' . PHP_EOL
. 'tasks:' . PHP_EOL
. ' - deployment/rsync' . PHP_EOL
. 'post-tasks:' . PHP_EOL;
. 'tasks:'
. ' pre-deploy:' . PHP_EOL
. ' on-deploy:' . PHP_EOL
. ' - deployment/rsync' . PHP_EOL
. ' post-deploy:' . PHP_EOL;
$result = file_put_contents($environmentConfigFile, $baseConfig);
if ($result) {
+6 -6
View File
@@ -25,14 +25,14 @@ class Mage_Task_BuiltIn_Deployment_Rsync
);
// Look for User Excludes
if (isset($this->_config['deploy']['rsync-excludes'])) {
$userExcludes = (array) $this->_config['deploy']['rsync-excludes'];
if (isset($this->_config['deploy']['deployment']['excludes'])) {
$userExcludes = (array) $this->_config['deploy']['deployment']['excludes'];
} else {
$userExcludes = array();
}
// If we are working with releases
$deployToDirectory = $this->_config['deploy']['deploy-to'];
$deployToDirectory = $this->_config['deploy']['deployment']['to'];
if (isset($this->_config['deploy']['releases']['enabled'])) {
if ($this->_config['deploy']['releases']['enabled'] == 'true') {
if (isset($this->_config['deploy']['releases']['directory'])) {
@@ -41,7 +41,7 @@ class Mage_Task_BuiltIn_Deployment_Rsync
$releasesDirectory = 'releases';
}
$deployToDirectory = rtrim($this->_config['deploy']['deploy-to'], '/')
$deployToDirectory = rtrim($this->_config['deploy']['deployment']['to'], '/')
. '/' . $releasesDirectory
. '/' . $this->_config['deploy']['releases']['_id'];
$this->_runRemoteCommand('mkdir -p ' . $releasesDirectory . '/' . $this->_config['deploy']['releases']['_id']);
@@ -50,8 +50,8 @@ class Mage_Task_BuiltIn_Deployment_Rsync
$command = 'rsync -avz '
. $this->_excludes(array_merge($excludes, $userExcludes)) . ' '
. $this->_config['deploy']['deploy-from'] . ' '
. $this->_config['deploy']['user'] . '@' . $this->_config['deploy']['host'] . ':' . $deployToDirectory;
. $this->_config['deploy']['deployment']['from'] . ' '
. $this->_config['deploy']['deployment']['user'] . '@' . $this->_config['deploy']['host'] . ':' . $deployToDirectory;
$result = $this->_runLocalCommand($command);
+10 -8
View File
@@ -14,7 +14,7 @@ class Mage_Task_Deploy
$this->_config = $config;
// Run Pre-Deployment Tasks
$this->_runNonDeploymentTasks('pre', $config);
$this->_runNonDeploymentTasks('pre-deploy', $config, 'Pre-Deployment');
// Run Tasks for Deployment
$hosts = $config->getHosts();
@@ -60,6 +60,8 @@ class Mage_Task_Deploy
}
}
// Run Post-Deployment Tasks
if ($completedTasks == $tasks) {
$tasksColor = 'green';
} else {
@@ -72,18 +74,18 @@ class Mage_Task_Deploy
}
// Run Post-Deployment Tasks
$this->_runNonDeploymentTasks('post', $config);
$this->_runNonDeploymentTasks('post-deploy', $config, 'Post-Deployment');
}
private function _runNonDeploymentTasks($type, Mage_Config $config)
private function _runNonDeploymentTasks($stage, Mage_Config $config, $title)
{
$tasksToRun = $config->getTasks($type);
$tasksToRun = $config->getTasks($stage);
if (count($tasksToRun) == 0) {
Mage_Console::output('<dark_gray>No </dark_gray><light_cyan>' . ucfirst($type) . '-Deployment</light_cyan> <dark_gray>tasks defined.</dark_gray>', 1, 3);
Mage_Console::output('<dark_gray>No </dark_gray><light_cyan>' . $title . '</light_cyan> <dark_gray>tasks defined.</dark_gray>', 1, 3);
} else {
Mage_Console::output('Starting <dark_gray>' . ucfirst($type) . '-Deployment</dark_gray> tasks:');
Mage_Console::output('Starting <dark_gray>' . $title . '</dark_gray> tasks:');
$taskConfig = $config->getConfig();
$tasks = 0;
@@ -94,7 +96,7 @@ class Mage_Task_Deploy
$task = Mage_Task_Factory::get($taskName, $taskConfig);
$task->init();
Mage_Console::output('Running <purple>' . $task->getName() . '</purple> ... ', 2, false);
Mage_Console::output('Running <purple>' . $task->getName() . '</purple> ... ', 2, 0);
$result = $task->run();
if ($result == true) {
@@ -111,7 +113,7 @@ class Mage_Task_Deploy
$tasksColor = 'red';
}
Mage_Console::output('Finished <dark_gray>' . ucfirst($type) . '-Deployment</dark_gray> tasks: <' . $tasksColor . '>' . $completedTasks . '/' . $tasks . '</' . $tasksColor . '> tasks done.', 1, 3);
Mage_Console::output('Finished <dark_gray>' . $title . '</dark_gray> tasks: <' . $tasksColor . '>' . $completedTasks . '/' . $tasks . '</' . $tasksColor . '> tasks done.', 1, 3);
}
+2 -2
View File
@@ -24,8 +24,8 @@ abstract class Mage_Task_TaskAbstract
protected final function _runRemoteCommand($command)
{
$localCommand = 'ssh '
. $this->_config['deploy']['user'] . '@' . $this->_config['deploy']['host'] . ' '
. '"cd ' . $this->_config['deploy']['deploy-to'] . ' && '
. $this->_config['deploy']['deployment']['user'] . '@' . $this->_config['deploy']['host'] . ' '
. '"cd ' . $this->_config['deploy']['deployment']['to'] . ' && '
. $command . '"';
return $this->_runLocalCommand($localCommand);