mirror of
				https://github.com/hauke68/Magallanes.git
				synced 2025-11-04 00:50:18 +01:00 
			
		
		
		
	New feature: Override Release.
This commit is contained in:
		
							parent
							
								
									aaa65800d0
								
							
						
					
					
						commit
						0410c0efec
					
				@ -12,7 +12,12 @@ class Mage_Config
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
        if (($environment != '') && file_exists('.mage/config/environment/' . $environment . '.yml')) {
 | 
					        if (($environment != '') && file_exists('.mage/config/environment/' . $environment . '.yml')) {
 | 
				
			||||||
            $this->_environment = spyc_load_file('.mage/config/environment/' . $environment . '.yml');
 | 
					            $this->_environment = spyc_load_file('.mage/config/environment/' . $environment . '.yml');
 | 
				
			||||||
            $this->_environmentName = $environment;            
 | 
					            $this->_environmentName = $environment;
 | 
				
			||||||
 | 
					            if (is_array($this->_environment['deployment']['source'])) {
 | 
				
			||||||
 | 
					                $newTemporal = $this->_environment['deployment']['source']['temporal']
 | 
				
			||||||
 | 
					                             . md5(microtime()) . '/';
 | 
				
			||||||
 | 
					                $this->_environment['deployment']['source']['temporal'] = $newTemporal;
 | 
				
			||||||
 | 
					            }            
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
@ -157,7 +162,7 @@ class Mage_Config
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public function setFrom($from)
 | 
					    public function setFrom($from)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $options['deployment']['from'] = $from;
 | 
					        $this->_environment['deployment']['from'] = $from;
 | 
				
			||||||
        return $this;
 | 
					        return $this;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
				
			|||||||
@ -1,9 +1,9 @@
 | 
				
			|||||||
<?php
 | 
					<?php
 | 
				
			||||||
class Mage_Console
 | 
					class Mage_Console
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    private $_args = null;
 | 
					    private $_args = array();
 | 
				
			||||||
    private $_action = null;
 | 
					    private $_action = null;
 | 
				
			||||||
    private $_actionOptions = null;
 | 
					    private static $_actionOptions = array();
 | 
				
			||||||
    private $_environment = null;
 | 
					    private $_environment = null;
 | 
				
			||||||
    private static $_log = null;
 | 
					    private static $_log = null;
 | 
				
			||||||
    private static $_logEnabled = true;
 | 
					    private static $_logEnabled = true;
 | 
				
			||||||
@ -50,6 +50,14 @@ class Mage_Console
 | 
				
			|||||||
        foreach ($this->_args as $argument) {
 | 
					        foreach ($this->_args as $argument) {
 | 
				
			||||||
            if (preg_match('/to:[\w]+/i', $argument)) {
 | 
					            if (preg_match('/to:[\w]+/i', $argument)) {
 | 
				
			||||||
                $this->_environment = str_replace('to:', '', $argument);
 | 
					                $this->_environment = str_replace('to:', '', $argument);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            } else if (preg_match('/--[\w]+/i', $argument)) {
 | 
				
			||||||
 | 
					                $optionValue = explode('=', substr($argument, 2));
 | 
				
			||||||
 | 
					                if (count($optionValue) == 1) {
 | 
				
			||||||
 | 
					                    self::$_actionOptions[$optionValue[0]] = true;
 | 
				
			||||||
 | 
					                } else if (count($optionValue) == 2) {
 | 
				
			||||||
 | 
					                    self::$_actionOptions[$optionValue[0]] = $optionValue[1];
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -64,6 +72,15 @@ class Mage_Console
 | 
				
			|||||||
        return $this->_environment;
 | 
					        return $this->_environment;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					    public static function getActionOption($name, $default = false)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if (isset(self::$_actionOptions[$name])) {
 | 
				
			||||||
 | 
					            return self::$_actionOptions[$name];
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            return $default;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    public static function output($message, $tabs = 1, $newLine = 1)
 | 
					    public static function output($message, $tabs = 1, $newLine = 1)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        self::log(strip_tags($message));
 | 
					        self::log(strip_tags($message));
 | 
				
			||||||
 | 
				
			|||||||
@ -10,7 +10,7 @@ class Mage_Task_BuiltIn_Deployment_Releases
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public function run()
 | 
					    public function run()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        if ($this->_config->release('enabled', false) == true) {
 | 
					        if ($this->_config->release('enabled', false) == true) {            
 | 
				
			||||||
            $releasesDirectory = $this->_config->release('directory', 'releases');
 | 
					            $releasesDirectory = $this->_config->release('directory', 'releases');
 | 
				
			||||||
            $symlink = $this->_config->release('symlink', 'current');
 | 
					            $symlink = $this->_config->release('symlink', 'current');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -6,7 +6,11 @@ class Mage_Task_BuiltIn_Deployment_Rsync
 | 
				
			|||||||
    public function getName()
 | 
					    public function getName()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        if ($this->_config->release('enabled', false) == true) {
 | 
					        if ($this->_config->release('enabled', false) == true) {
 | 
				
			||||||
            return 'Rsync (with Releases) [built-in]';
 | 
					            if ($this->getActionOption('overrideRelease', false) == true) {
 | 
				
			||||||
 | 
					                return 'Rsync (with Releases override) [built-in]';
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                return 'Rsync (with Releases) [built-in]';                
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
                return 'Rsync [built-in]';
 | 
					                return 'Rsync [built-in]';
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -14,6 +18,16 @@ class Mage_Task_BuiltIn_Deployment_Rsync
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public function run()
 | 
					    public function run()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
					        $overrideRelease = $this->getActionOption('overrideRelease', false);
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        if ($overrideRelease == true) {
 | 
				
			||||||
 | 
					            $releaseToOverride = false;
 | 
				
			||||||
 | 
					            $resultFetch = $this->_runRemoteCommand('ls -ld current | cut -d\"/\" -f2', $releaseToOverride);
 | 
				
			||||||
 | 
					            if (is_numeric($releaseToOverride)) {
 | 
				
			||||||
 | 
					                $this->_config->setReleaseId($releaseToOverride);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $excludes = array(
 | 
					        $excludes = array(
 | 
				
			||||||
            '.git',
 | 
					            '.git',
 | 
				
			||||||
            '.svn',
 | 
					            '.svn',
 | 
				
			||||||
 | 
				
			|||||||
@ -99,15 +99,13 @@ class Mage_Task_Deploy
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
        $tasksToRun = $config->getTasks($stage);
 | 
					        $tasksToRun = $config->getTasks($stage);
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        // Look for Remote Source
 | 
					        // Look for Remote Source
 | 
				
			||||||
        if ($this->_config->deployment('from', false) == false) {
 | 
					        if (is_array($this->_config->deployment('source', null))) {
 | 
				
			||||||
            if (is_array($this->_config->deployment('source', null))) {
 | 
					            if ($stage == 'pre-deploy') {
 | 
				
			||||||
                if ($stage == 'pre-deploy') {
 | 
					                array_unshift($tasksToRun, 'scm/clone');                    
 | 
				
			||||||
                    array_unshift($tasksToRun, 'scm/clone');                    
 | 
					            } elseif ($stage == 'post-deploy') {
 | 
				
			||||||
                } elseif ($stage == 'post-deploy') {
 | 
					                array_unshift($tasksToRun, 'scm/remove-clone');
 | 
				
			||||||
                    array_unshift($tasksToRun, 'scm/remove-clone');
 | 
					            }
 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (count($tasksToRun) == 0) {
 | 
					        if (count($tasksToRun) == 0) {
 | 
				
			||||||
 | 
				
			|||||||
@ -31,6 +31,11 @@ abstract class Mage_Task_TaskAbstract
 | 
				
			|||||||
        return $this->_config;
 | 
					        return $this->_config;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					    public function getActionOption($name, $value = false)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return Mage_Console::getActionOption($name, $value);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    public function init()
 | 
					    public function init()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user