mirror of https://github.com/hauke68/Magallanes
Andrés Montañez
8 years ago
16 changed files with 1957 additions and 17 deletions
@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
||||
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd" |
||||
backupGlobals="false" |
||||
colors="true" |
||||
bootstrap="vendor/autoload.php" |
||||
> |
||||
<php> |
||||
<ini name="error_reporting" value="-1" /> |
||||
<ini name="intl.default_locale" value="en" /> |
||||
<ini name="intl.error_level" value="0" /> |
||||
<ini name="memory_limit" value="-1" /> |
||||
</php> |
||||
|
||||
<testsuites> |
||||
<testsuite name="Magallanes Test Suite"> |
||||
<directory>./src/Mage/Tests/</directory> |
||||
</testsuite> |
||||
</testsuites> |
||||
|
||||
<groups> |
||||
<exclude> |
||||
<group>benchmark</group> |
||||
<group>intl-data</group> |
||||
</exclude> |
||||
</groups> |
||||
|
||||
<filter> |
||||
<whitelist> |
||||
<directory>./src/Mage/</directory> |
||||
<exclude> |
||||
<directory>./src/Mage/Tests/</directory> |
||||
</exclude> |
||||
</whitelist> |
||||
</filter> |
||||
</phpunit> |
@ -0,0 +1,233 @@
|
||||
<?php |
||||
namespace Mage\Tests\Command\BuiltIn; |
||||
|
||||
|
||||
use Mage\Command\BuiltIn\DeployCommand; |
||||
use Mage\Command\AbstractCommand; |
||||
use Mage\Tests\MageTestApplication; |
||||
use Mage\Tests\Runtime\RuntimeMockup; |
||||
use Symfony\Component\Console\Tester\CommandTester; |
||||
use PHPUnit\Framework\TestCase; |
||||
|
||||
class DeployCommandTest extends TestCase |
||||
{ |
||||
public function testDeploymentWithReleasesCommands() |
||||
{ |
||||
$application = new MageTestApplication(); |
||||
$application->add(new DeployCommand()); |
||||
|
||||
$runtime = new RuntimeMockup(); |
||||
$runtime->setConfiguration(array ( |
||||
'environments' => |
||||
array ( |
||||
'test' => |
||||
array ( |
||||
'user' => 'tester', |
||||
'branch' => 'test', |
||||
'host_path' => '/var/www/test', |
||||
'releases' => 4, |
||||
'exclude' => |
||||
array ( |
||||
0 => 'vendor', |
||||
1 => 'app/cache', |
||||
2 => 'app/log', |
||||
3 => 'web/app_dev.php', |
||||
), |
||||
'hosts' => |
||||
array ( |
||||
0 => 'testhost', |
||||
), |
||||
'pre-deploy' => |
||||
array ( |
||||
0 => 'git/update', |
||||
1 => 'composer/install', |
||||
2 => 'composer/generate-autoload', |
||||
), |
||||
'on-deploy' => |
||||
array ( |
||||
0 => |
||||
array ( |
||||
'symfony/cache-clear' => |
||||
array ( |
||||
'env' => 'dev', |
||||
), |
||||
), |
||||
1 => |
||||
array ( |
||||
'symfony/cache-warmup' => |
||||
array ( |
||||
'env' => 'dev', |
||||
), |
||||
), |
||||
2 => |
||||
array ( |
||||
'symfony/assets-install' => |
||||
array ( |
||||
'env' => 'dev', |
||||
), |
||||
), |
||||
3 => |
||||
array ( |
||||
'symfony/assetic-dump' => |
||||
array ( |
||||
'env' => 'dev', |
||||
), |
||||
), |
||||
), |
||||
'on-release' => NULL, |
||||
'post-release' => NULL, |
||||
'post-deploy' => NULL, |
||||
), |
||||
), |
||||
) |
||||
); |
||||
|
||||
$runtime->setReleaseId('20170101015120'); |
||||
|
||||
/** @var AbstractCommand $command */ |
||||
$command = $application->find('deploy'); |
||||
$command->setRuntime($runtime); |
||||
|
||||
$tester = new CommandTester($command); |
||||
$tester->execute(['command' => $command->getName(), 'environment' => 'test']); |
||||
|
||||
$ranCommands = $runtime->getRanCommands(); |
||||
|
||||
$testCase = array ( |
||||
0 => 'git branch | grep "*"', |
||||
1 => 'git checkout test', |
||||
2 => 'git pull', |
||||
3 => 'composer install --dev', |
||||
4 => 'composer dumpautoload --optimize', |
||||
5 => 'tar cfz /tmp/mageXYZ --exclude=.git --exclude=vendor --exclude=app/cache --exclude=app/log --exclude=web/app_dev.php ./', |
||||
6 => 'ssh -p 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no tester@testhost sh -c \\"mkdir -p /var/www/test/releases/1234567890\\"', |
||||
7 => 'scp -P 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no /tmp/mageXYZ tester@testhost:/var/www/test/releases/1234567890/mageXYZ', |
||||
8 => 'ssh -p 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no tester@testhost sh -c \\"cd /var/www/test/releases/1234567890 \\&\\& tar xfz mageXYZ\\"', |
||||
9 => 'ssh -p 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no tester@testhost sh -c \\"rm /var/www/test/releases/1234567890/mageXYZ\\"', |
||||
10 => 'ssh -p 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no tester@testhost sh -c \\"cd /var/www/test/releases/1234567890 \\&\\& bin/console cache:clear --env=dev \\"', |
||||
11 => 'ssh -p 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no tester@testhost sh -c \\"cd /var/www/test/releases/1234567890 \\&\\& bin/console cache:warmup --env=dev \\"', |
||||
12 => 'ssh -p 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no tester@testhost sh -c \\"cd /var/www/test/releases/1234567890 \\&\\& bin/console assets:install --env=dev --symlink --relative web\\"', |
||||
13 => 'ssh -p 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no tester@testhost sh -c \\"cd /var/www/test/releases/1234567890 \\&\\& bin/console assetic:dump --env=dev \\"', |
||||
14 => 'ssh -p 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no tester@testhost sh -c \\"cd /var/www/test \\&\\& ln -snf releases/1234567890 current\\"', |
||||
15 => 'ssh -p 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no tester@testhost sh -c \\"ls -1 /var/www/test/releases\\"', |
||||
16 => 'ssh -p 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no tester@testhost sh -c \\"rm -rf /var/www/test/releases/20170101015110\\"', |
||||
17 => 'ssh -p 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no tester@testhost sh -c \\"rm -rf /var/www/test/releases/20170101015111\\"', |
||||
18 => 'ssh -p 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no tester@testhost sh -c \\"rm -rf /var/www/test/releases/20170101015112\\"', |
||||
19 => 'ssh -p 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no tester@testhost sh -c \\"rm -rf /var/www/test/releases/20170101015113\\"', |
||||
20 => 'rm /tmp/mageXYZ', |
||||
21 => 'git checkout master', |
||||
); |
||||
|
||||
// Check total of Executed Commands |
||||
$this->assertEquals(count($ranCommands), count($testCase)); |
||||
|
||||
// Check Generated Commands |
||||
foreach ($testCase as $index => $command) { |
||||
$this->assertEquals($ranCommands[$index], $command); |
||||
} |
||||
} |
||||
|
||||
public function testDeploymentWithoutReleasesCommands() |
||||
{ |
||||
$application = new MageTestApplication(); |
||||
$application->add(new DeployCommand()); |
||||
|
||||
$runtime = new RuntimeMockup(); |
||||
$runtime->setConfiguration(array ( |
||||
'environments' => |
||||
array ( |
||||
'test' => |
||||
array ( |
||||
'user' => 'tester', |
||||
'branch' => 'test', |
||||
'host_path' => '/var/www/test', |
||||
'exclude' => |
||||
array ( |
||||
0 => 'vendor', |
||||
1 => 'app/cache', |
||||
2 => 'app/log', |
||||
3 => 'web/app_dev.php', |
||||
), |
||||
'hosts' => |
||||
array ( |
||||
0 => 'testhost', |
||||
), |
||||
'pre-deploy' => |
||||
array ( |
||||
0 => 'git/update', |
||||
1 => 'composer/install', |
||||
2 => 'composer/generate-autoload', |
||||
), |
||||
'on-deploy' => |
||||
array ( |
||||
0 => |
||||
array ( |
||||
'symfony/cache-clear' => |
||||
array ( |
||||
'env' => 'dev', |
||||
), |
||||
), |
||||
1 => |
||||
array ( |
||||
'symfony/cache-warmup' => |
||||
array ( |
||||
'env' => 'dev', |
||||
), |
||||
), |
||||
2 => |
||||
array ( |
||||
'symfony/assets-install' => |
||||
array ( |
||||
'env' => 'dev', |
||||
), |
||||
), |
||||
3 => |
||||
array ( |
||||
'symfony/assetic-dump' => |
||||
array ( |
||||
'env' => 'dev', |
||||
), |
||||
), |
||||
), |
||||
'on-release' => NULL, |
||||
'post-release' => NULL, |
||||
'post-deploy' => NULL, |
||||
), |
||||
), |
||||
) |
||||
); |
||||
|
||||
$runtime->setReleaseId('1234567890'); |
||||
|
||||
/** @var AbstractCommand $command */ |
||||
$command = $application->find('deploy'); |
||||
$command->setRuntime($runtime); |
||||
|
||||
$tester = new CommandTester($command); |
||||
$tester->execute(['command' => $command->getName(), 'environment' => 'test']); |
||||
|
||||
$ranCommands = $runtime->getRanCommands(); |
||||
|
||||
$testCase = array ( |
||||
0 => 'git branch | grep "*"', |
||||
1 => 'git checkout test', |
||||
2 => 'git pull', |
||||
3 => 'composer install --dev', |
||||
4 => 'composer dumpautoload --optimize', |
||||
5 => 'rsync -avz --exclude=.git --exclude=vendor --exclude=app/cache --exclude=app/log --exclude=web/app_dev.php ./ tester@testhost:/var/www/test', |
||||
6 => 'ssh -p 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no tester@testhost sh -c \\"cd /var/www/test/releases/1234567890 \\&\\& bin/console cache:clear --env=dev \\"', |
||||
7 => 'ssh -p 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no tester@testhost sh -c \\"cd /var/www/test/releases/1234567890 \\&\\& bin/console cache:warmup --env=dev \\"', |
||||
8 => 'ssh -p 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no tester@testhost sh -c \\"cd /var/www/test/releases/1234567890 \\&\\& bin/console assets:install --env=dev --symlink --relative web\\"', |
||||
9 => 'ssh -p 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no tester@testhost sh -c \\"cd /var/www/test/releases/1234567890 \\&\\& bin/console assetic:dump --env=dev \\"', |
||||
10 => 'git checkout master', |
||||
); |
||||
|
||||
// Check total of Executed Commands |
||||
$this->assertEquals(count($ranCommands), count($testCase)); |
||||
|
||||
// Check Generated Commands |
||||
foreach ($testCase as $index => $command) { |
||||
$this->assertEquals($ranCommands[$index], $command); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,107 @@
|
||||
<?php |
||||
namespace Mage\Tests\Command\BuiltIn\Releases; |
||||
|
||||
use Mage\Command\BuiltIn\Releases\ListCommand; |
||||
use Mage\Command\AbstractCommand; |
||||
use Mage\Tests\MageTestApplication; |
||||
use Mage\Tests\Runtime\RuntimeMockup; |
||||
use Symfony\Component\Console\Tester\CommandTester; |
||||
use PHPUnit\Framework\TestCase; |
||||
|
||||
class ListCommandTest extends TestCase |
||||
{ |
||||
public function testListReleasesCommands() |
||||
{ |
||||
$application = new MageTestApplication(); |
||||
$application->add(new ListCommand()); |
||||
|
||||
$runtime = new RuntimeMockup(); |
||||
$runtime->setConfiguration(array ( |
||||
'environments' => |
||||
array ( |
||||
'test' => |
||||
array ( |
||||
'user' => 'tester', |
||||
'branch' => 'test', |
||||
'host_path' => '/var/www/test', |
||||
'releases' => 4, |
||||
'exclude' => |
||||
array ( |
||||
0 => 'vendor', |
||||
1 => 'app/cache', |
||||
2 => 'app/log', |
||||
3 => 'web/app_dev.php', |
||||
), |
||||
'hosts' => |
||||
array ( |
||||
0 => 'testhost', |
||||
), |
||||
'pre-deploy' => |
||||
array ( |
||||
0 => 'git/update', |
||||
1 => 'composer/install', |
||||
2 => 'composer/generate-autoload', |
||||
), |
||||
'on-deploy' => |
||||
array ( |
||||
0 => |
||||
array ( |
||||
'symfony/cache-clear' => |
||||
array ( |
||||
'env' => 'dev', |
||||
), |
||||
), |
||||
1 => |
||||
array ( |
||||
'symfony/cache-warmup' => |
||||
array ( |
||||
'env' => 'dev', |
||||
), |
||||
), |
||||
2 => |
||||
array ( |
||||
'symfony/assets-install' => |
||||
array ( |
||||
'env' => 'dev', |
||||
), |
||||
), |
||||
3 => |
||||
array ( |
||||
'symfony/assetic-dump' => |
||||
array ( |
||||
'env' => 'dev', |
||||
), |
||||
), |
||||
), |
||||
'on-release' => NULL, |
||||
'post-release' => NULL, |
||||
'post-deploy' => NULL, |
||||
), |
||||
), |
||||
) |
||||
); |
||||
|
||||
/** @var AbstractCommand $command */ |
||||
$command = $application->find('releases:list'); |
||||
$command->setRuntime($runtime); |
||||
|
||||
$tester = new CommandTester($command); |
||||
$tester->execute(['command' => $command->getName(), 'environment' => 'test']); |
||||
|
||||
$ranCommands = $runtime->getRanCommands(); |
||||
|
||||
$testCase = array ( |
||||
0 => 'ssh -p 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no tester@testhost sh -c \\"ls -1 /var/www/test/releases\\"', |
||||
1 => 'ssh -p 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no tester@testhost sh -c \\"readlink -f /var/www/test/current\\"', |
||||
); |
||||
|
||||
// Check total of Executed Commands |
||||
$this->assertEquals(count($ranCommands), count($testCase)); |
||||
|
||||
// Check Generated Commands |
||||
foreach ($testCase as $index => $command) { |
||||
$this->assertEquals($ranCommands[$index], $command); |
||||
} |
||||
} |
||||
|
||||
} |
@ -0,0 +1,107 @@
|
||||
<?php |
||||
namespace Mage\Tests\Command\BuiltIn\Releases; |
||||
|
||||
use Mage\Command\BuiltIn\Releases\RollbackCommand; |
||||
use Mage\Command\AbstractCommand; |
||||
use Mage\Tests\MageTestApplication; |
||||
use Mage\Tests\Runtime\RuntimeMockup; |
||||
use Symfony\Component\Console\Tester\CommandTester; |
||||
use PHPUnit\Framework\TestCase; |
||||
|
||||
class RollbackCommandTest extends TestCase |
||||
{ |
||||
public function testRollbackReleaseCommands() |
||||
{ |
||||
$application = new MageTestApplication(); |
||||
$application->add(new RollbackCommand()); |
||||
|
||||
$runtime = new RuntimeMockup(); |
||||
$runtime->setConfiguration(array ( |
||||
'environments' => |
||||
array ( |
||||
'test' => |
||||
array ( |
||||
'user' => 'tester', |
||||
'branch' => 'test', |
||||
'host_path' => '/var/www/test', |
||||
'releases' => 4, |
||||
'exclude' => |
||||
array ( |
||||
0 => 'vendor', |
||||
1 => 'app/cache', |
||||
2 => 'app/log', |
||||
3 => 'web/app_dev.php', |
||||
), |
||||
'hosts' => |
||||
array ( |
||||
0 => 'testhost', |
||||
), |
||||
'pre-deploy' => |
||||
array ( |
||||
0 => 'git/update', |
||||
1 => 'composer/install', |
||||
2 => 'composer/generate-autoload', |
||||
), |
||||
'on-deploy' => |
||||
array ( |
||||
0 => |
||||
array ( |
||||
'symfony/cache-clear' => |
||||
array ( |
||||
'env' => 'dev', |
||||
), |
||||
), |
||||
1 => |
||||
array ( |
||||
'symfony/cache-warmup' => |
||||
array ( |
||||
'env' => 'dev', |
||||
), |
||||
), |
||||
2 => |
||||
array ( |
||||
'symfony/assets-install' => |
||||
array ( |
||||
'env' => 'dev', |
||||
), |
||||
), |
||||
3 => |
||||
array ( |
||||
'symfony/assetic-dump' => |
||||
array ( |
||||
'env' => 'dev', |
||||
), |
||||
), |
||||
), |
||||
'on-release' => NULL, |
||||
'post-release' => NULL, |
||||
'post-deploy' => NULL, |
||||
), |
||||
), |
||||
) |
||||
); |
||||
|
||||
/** @var AbstractCommand $command */ |
||||
$command = $application->find('releases:rollback'); |
||||
$command->setRuntime($runtime); |
||||
|
||||
$tester = new CommandTester($command); |
||||
$tester->execute(['command' => $command->getName(), 'environment' => 'test', 'release' => '20170101015115']); |
||||
|
||||
$ranCommands = $runtime->getRanCommands(); |
||||
|
||||
$testCase = array ( |
||||
0 => 'ssh -p 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no tester@testhost sh -c \\"ls -1 /var/www/test/releases\\"', |
||||
1 => 'ssh -p 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no tester@testhost sh -c \\"cd /var/www/test \\&\\& ln -snf releases/20170101015115 current\\"', |
||||
); |
||||
|
||||
// Check total of Executed Commands |
||||
$this->assertEquals(count($ranCommands), count($testCase)); |
||||
|
||||
// Check Generated Commands |
||||
foreach ($testCase as $index => $command) { |
||||
$this->assertEquals($ranCommands[$index], $command); |
||||
} |
||||
} |
||||
|
||||
} |
@ -0,0 +1,30 @@
|
||||
<?php |
||||
namespace Mage\Tests\Command\BuiltIn; |
||||
|
||||
|
||||
use Mage\Command\BuiltIn\VersionCommand; |
||||
use Mage\Command\AbstractCommand; |
||||
use Mage\Tests\MageTestApplication; |
||||
use Mage\Tests\Runtime\RuntimeMockup; |
||||
use Mage\Mage; |
||||
use Symfony\Component\Console\Tester\CommandTester; |
||||
use PHPUnit\Framework\TestCase; |
||||
|
||||
class VersionCommandTest extends TestCase |
||||
{ |
||||
public function testVersionOutput() |
||||
{ |
||||
$application = new MageTestApplication(); |
||||
$application->add(new VersionCommand()); |
||||
|
||||
/** @var AbstractCommand $command */ |
||||
$command = $application->find('version'); |
||||
$command->setRuntime(new RuntimeMockup()); |
||||
|
||||
$tester = new CommandTester($command); |
||||
$tester->execute(['command' => $command->getName()]); |
||||
|
||||
$output = trim($tester->getDisplay()); |
||||
$this->assertEquals(sprintf('Magallanes v%s [%s]', Mage::VERSION, Mage::CODENAME), $output); |
||||
} |
||||
} |
@ -0,0 +1,32 @@
|
||||
<?php |
||||
/* |
||||
* This file is part of the Magallanes package. |
||||
* |
||||
* (c) Andrés Montañez <andres@andresmontanez.com> |
||||
* |
||||
* For the full copyright and license information, please view the LICENSE |
||||
* file that was distributed with this source code. |
||||
*/ |
||||
|
||||
namespace Mage\Tests; |
||||
|
||||
use Mage\Command\AbstractCommand; |
||||
use Mage\Runtime\Runtime; |
||||
use Symfony\Component\Console\Input\InputInterface; |
||||
use Symfony\Component\Console\Output\OutputInterface; |
||||
use Symfony\Component\Finder\Finder; |
||||
use Symfony\Component\Finder\SplFileInfo; |
||||
use Monolog\Logger; |
||||
use Monolog\Handler\StreamHandler; |
||||
use Symfony\Component\Console\Application; |
||||
use Symfony\Component\Yaml\Yaml; |
||||
use Mage\Runtime\Exception\RuntimeException; |
||||
|
||||
/** |
||||
* The Console Application for launching the Mage command in a standalone instance |
||||
* |
||||
* @author Andrés Montañez <andresmontanez@gmail.com> |
||||
*/ |
||||
class MageTestApplication extends Application |
||||
{ |
||||
} |
@ -0,0 +1,52 @@
|
||||
<?php |
||||
namespace Mage\Tests\Runtime; |
||||
|
||||
use Symfony\Component\Process\Process; |
||||
|
||||
class ProcessMockup extends Process |
||||
{ |
||||
protected $commandline; |
||||
protected $timeout; |
||||
|
||||
public function __construct($commandline, $cwd = null, array $env = null, $input = null, $timeout = 60, array $options = array()) |
||||
{ |
||||
$this->commandline = $commandline; |
||||
} |
||||
|
||||
public function setTimeout($timeout) |
||||
{ |
||||
$this->timeout = $timeout; |
||||
} |
||||
|
||||
public function run($callback = null) |
||||
{ |
||||
|
||||
} |
||||
|
||||
public function isSuccessful() |
||||
{ |
||||
return true; |
||||
} |
||||
|
||||
public function getErrorOutput() |
||||
{ |
||||
return ''; |
||||
} |
||||
|
||||
public function getOutput() |
||||
{ |
||||
if ($this->commandline == 'git branch | grep "*"') { |
||||
return '* master'; |
||||
} |
||||
|
||||
if ($this->commandline == 'ssh -p 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no tester@testhost sh -c \"ls -1 /var/www/test/releases\"') { |
||||
return implode(PHP_EOL, ['20170101015110', '20170101015111', '20170101015112', '20170101015113', '20170101015114', '20170101015115', '20170101015116', '20170101015117']); |
||||
} |
||||
|
||||
if ($this->commandline == 'ssh -p 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no tester@testhost sh -c \"readlink -f /var/www/test/current\"') { |
||||
return '/var/www/test/releases/20170101015120'; |
||||
} |
||||
|
||||
return ''; |
||||
} |
||||
} |
@ -0,0 +1,55 @@
|
||||
<?php |
||||
namespace Mage\Tests\Runtime; |
||||
|
||||
use Mage\Runtime\Runtime; |
||||
use Mage\Runtime\RuntimeInterface; |
||||
use Symfony\Component\Process\Process; |
||||
|
||||
class RuntimeMockup extends Runtime |
||||
{ |
||||
protected $ranCommands = []; |
||||
|
||||
public function getRanCommands() |
||||
{ |
||||
return $this->ranCommands; |
||||
} |
||||
|
||||
/** |
||||
* Generate the Release ID |
||||
* |
||||
* @return RuntimeInterface |
||||
*/ |
||||
public function generateReleaseId() |
||||
{ |
||||
$this->setReleaseId('1234567890'); |
||||
return $this; |
||||
} |
||||
|
||||
/** |
||||
* Execute a command locally |
||||
* |
||||
* @param string $cmd Command to execute |
||||
* @param int $timeout Seconds to wait |
||||
* @return Process |
||||
*/ |
||||
public function runLocalCommand($cmd, $timeout = 120) |
||||
{ |
||||
$this->ranCommands[] = $cmd; |
||||
|
||||
$process = new ProcessMockup($cmd); |
||||
$process->setTimeout($timeout); |
||||
$process->run(); |
||||
|
||||
return $process; |
||||
} |
||||
|
||||
/** |
||||
* Gets a Temporal File name |
||||
* |
||||
* @return string |
||||
*/ |
||||
public function getTempFile() |
||||
{ |
||||
return '/tmp/mageXYZ'; |
||||
} |
||||
} |
Loading…
Reference in new issue