mirror of
https://github.com/hauke68/Magallanes.git
synced 2026-08-28 10:08:56 +02:00
Change Branch on pre-deployment.
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
class Mage_Task_BuiltIn_Scm_ChangeBranch
|
||||
extends Mage_Task_TaskAbstract
|
||||
{
|
||||
private $_name = 'SCM Changing branch [built-in]';
|
||||
|
||||
public function getName()
|
||||
{
|
||||
return $this->_name;
|
||||
}
|
||||
|
||||
public function init()
|
||||
{
|
||||
switch ($this->getConfig()->scm('type')) {
|
||||
case 'git':
|
||||
$this->_name = 'SCM Changing branch (GIT) [built-in]';
|
||||
break;
|
||||
|
||||
case 'svn':
|
||||
$this->_name = 'SCM Changing branch (Subversion) [built-in]';
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public function run()
|
||||
{
|
||||
switch ($this->getConfig()->scm('type')) {
|
||||
case 'git':
|
||||
$command = 'git branch | grep \'*\' | cut -d\' \' -f 2';
|
||||
$currentBranch = 'master';
|
||||
$result = $this->_runLocalCommand($command, $currentBranch);
|
||||
|
||||
$scmData = $this->getConfig()->deployment('scm', false);
|
||||
if ($result && is_array($scmData) && isset($scmData['branch'])) {
|
||||
$branch = $this->getParameter('branch', $scmData['branch']);
|
||||
$command = 'git checkout ' . $branch;
|
||||
$result = $this->_runLocalCommand($command);
|
||||
|
||||
$oldBranchFile = '.mage/' . $this->getConfig()->getEnvironment() . '.oldBranch';
|
||||
file_put_contents($oldBranchFile, $currentBranch);
|
||||
|
||||
} else {
|
||||
throw new Mage_Task_SkipException;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
$this->getConfig()->reload();
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
class Mage_Task_BuiltIn_Scm_ChangeBranchBack
|
||||
extends Mage_Task_TaskAbstract
|
||||
{
|
||||
private $_name = 'SCM Changing branch Back [built-in]';
|
||||
|
||||
public function getName()
|
||||
{
|
||||
return $this->_name;
|
||||
}
|
||||
|
||||
public function init()
|
||||
{
|
||||
switch ($this->getConfig()->scm('type')) {
|
||||
case 'git':
|
||||
$this->_name = 'SCM Changing branch Back (GIT) [built-in]';
|
||||
break;
|
||||
|
||||
case 'svn':
|
||||
$this->_name = 'SCM Changing branch Back (Subversion) [built-in]';
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public function run()
|
||||
{
|
||||
switch ($this->getConfig()->scm('type')) {
|
||||
case 'git':
|
||||
$oldBranchFile = '.mage/' . $this->getConfig()->getEnvironment() . '.oldBranch';
|
||||
$currentBranch = trim(file_get_contents($oldBranchFile));
|
||||
|
||||
$command = 'git checkout ' . $currentBranch;
|
||||
$result = $this->_runLocalCommand($command);
|
||||
@unlink($oldBranchFile);
|
||||
break;
|
||||
|
||||
default:
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
$this->getConfig()->reload();
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user