This commit is contained in:
Staphan Yamilov 2017-04-23 06:23:44 +00:00 committed by GitHub
commit 2c45b2a138
3 changed files with 44 additions and 50 deletions

View file

@ -0,0 +1,42 @@
<?php
/*
* This file is part of the Magallanes package.
*
* (c) Stepan Yamilov <yamilovs@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Mage\Deploy\Strategy;
use Mage\Runtime\Exception\RuntimeException;
use Mage\Runtime\Runtime;
abstract class AbstractStrategy implements StrategyInterface
{
/**
* @var Runtime
*/
protected $runtime;
/**
* @param Runtime $runtime
*/
public function setRuntime(Runtime $runtime)
{
$this->runtime = $runtime;
}
/**
* Check the runtime stage is correct
* @param $stage
* @throws RuntimeException
*/
protected function checkStage($stage)
{
if ($this->runtime->getStage() !== $stage) {
throw new RuntimeException(sprintf('Invalid stage, got "%s" but expected "%"', $this->runtime->getStage(), $stage));
}
}
}

View file

@ -10,7 +10,6 @@
namespace Mage\Deploy\Strategy;
use Mage\Runtime\Exception\RuntimeException;
use Mage\Runtime\Runtime;
/**
@ -18,23 +17,13 @@ use Mage\Runtime\Runtime;
*
* @author Andrés Montañez <andresmontanez@gmail.com>
*/
class ReleasesStrategy implements StrategyInterface
class ReleasesStrategy extends AbstractStrategy
{
/**
* @var Runtime
*/
protected $runtime;
public function getName()
{
return 'Releases';
}
public function setRuntime(Runtime $runtime)
{
$this->runtime = $runtime;
}
public function getPreDeployTasks()
{
$this->checkStage(Runtime::PRE_DEPLOY);
@ -106,17 +95,4 @@ class ReleasesStrategy implements StrategyInterface
return $tasks;
}
/**
* Check the runtime stage is correct
*
* @param $stage
* @throws RuntimeException
*/
private function checkStage($stage)
{
if ($this->runtime->getStage() !== $stage) {
throw new RuntimeException(sprintf('Invalid stage, got "%s" but expected "%"', $this->runtime->getStage(), $stage));
}
}
}

View file

@ -10,7 +10,6 @@
namespace Mage\Deploy\Strategy;
use Mage\Runtime\Exception\RuntimeException;
use Mage\Runtime\Runtime;
/**
@ -18,23 +17,13 @@ use Mage\Runtime\Runtime;
*
* @author Andrés Montañez <andresmontanez@gmail.com>
*/
class RsyncStrategy implements StrategyInterface
class RsyncStrategy extends AbstractStrategy
{
/**
* @var Runtime
*/
protected $runtime;
public function getName()
{
return 'Rsync';
}
public function setRuntime(Runtime $runtime)
{
$this->runtime = $runtime;
}
public function getPreDeployTasks()
{
$this->checkStage(Runtime::PRE_DEPLOY);
@ -80,17 +69,4 @@ class RsyncStrategy implements StrategyInterface
return $tasks;
}
/**
* Check the runtime stage is correct
*
* @param $stage
* @throws RuntimeException
*/
private function checkStage($stage)
{
if ($this->runtime->getStage() !== $stage) {
throw new RuntimeException(sprintf('Invalid stage, got "%s" but expected "%"', $this->runtime->getStage(), $stage));
}
}
}