first commit

This commit is contained in:
2024-07-15 12:33:27 +02:00
commit ce50ae282b
22084 changed files with 2623791 additions and 0 deletions

View File

@@ -0,0 +1,74 @@
<?php
namespace Consolidation\SiteProcess;
use Consolidation\SiteProcess\Transport\DockerComposeTransport;
use PHPUnit\Framework\TestCase;
use Consolidation\SiteAlias\SiteAlias;
class DockerComposeTransportTest extends TestCase
{
/**
* Data provider for testWrap.
*/
public function wrapTestValues()
{
return [
[
'docker-compose --project project --project-directory projectDir --file myCompose.yml exec -T --user root drupal ls',
[
'docker' => [
'service' => 'drupal',
'compose' => [
'options' => '--project project --project-directory projectDir --file myCompose.yml'
],
'exec' => ['options' => '--user root']
]
],
],
[
'docker-compose exec -T drupal ls',
[
'docker' => [
'service' => 'drupal',
]
],
],
[
'docker-compose --project project2 --file myCompose.yml exec -T drupal ls',
[
'docker' => [
'service' => 'drupal',
'project' => 'project1',
'compose' => [
'options' => '--project project2 --file myCompose.yml'
]
]
],
],
[
'docker-compose -p project1 --file myCompose.yml exec -T drupal ls',
[
'docker' => [
'service' => 'drupal',
'project' => 'project1',
'compose' => [
'options' => '--file myCompose.yml'
]
]
],
],
];
}
/**
* @dataProvider wrapTestValues
*/
public function testWrap($expected, $siteAliasData)
{
$siteAlias = new SiteAlias($siteAliasData, '@alias.dev');
$dockerTransport = new DockerComposeTransport($siteAlias);
$actual = $dockerTransport->wrap(['ls']);
$this->assertEquals($expected, implode(' ', $actual));
}
}

View File

@@ -0,0 +1,116 @@
<?php
namespace Consolidation\SiteProcess;
use Consolidation\SiteProcess\Transport\KubectlTransport;
use PHPUnit\Framework\TestCase;
use Consolidation\SiteAlias\SiteAlias;
class KubectlTransportTest extends TestCase
{
/**
* Data provider for testWrap.
*/
public function wrapTestValues()
{
return [
// Everything explicit.
[
'kubectl --namespace=vv exec --tty=false --stdin=false deploy/drupal --container=drupal -- ls',
['ls'],
[
'kubectl' => [
'tty' => false,
'interactive' => false,
'namespace' => 'vv',
'resource' => 'deploy/drupal',
'container' => 'drupal',
]
],
],
// Minimal. Kubectl will pick a container.
[
'kubectl --namespace=vv exec --tty=false --stdin=false deploy/drupal -- ls',
['ls'],
[
'kubectl' => [
'namespace' => 'vv',
'resource' => 'deploy/drupal',
]
],
],
// Don't escape arguments after "--"
[
'kubectl --namespace=vv exec --tty=false --stdin=false deploy/drupal -- asdf "double" \'single\'',
['asdf', '"double"', "'single'"],
[
'kubectl' => [
'namespace' => 'vv',
'resource' => 'deploy/drupal',
]
],
],
// With kubeconfig.
[
'kubectl --namespace=vv exec --tty=false --stdin=false deploy/drupal --container=drupal --kubeconfig=/path/to/config.yaml -- ls',
['ls'],
[
'kubectl' => [
'tty' => false,
'interactive' => false,
'namespace' => 'vv',
'resource' => 'deploy/drupal',
'container' => 'drupal',
'kubeconfig' => '/path/to/config.yaml',
]
],
],
// With entrypoint as string.
[
'kubectl --namespace=vv exec --tty=false --stdin=false deploy/drupal --container=drupal -- /docker-entrypoint ls',
['ls'],
[
'kubectl' => [
'tty' => false,
'interactive' => false,
'namespace' => 'vv',
'resource' => 'deploy/drupal',
'container' => 'drupal',
'entrypoint' => '/docker-entrypoint',
]
],
],
// With entrypoint as array.
[
'kubectl --namespace=vv exec --tty=false --stdin=false deploy/drupal --container=drupal -- /docker-entrypoint --debug ls',
['ls'],
[
'kubectl' => [
'tty' => false,
'interactive' => false,
'namespace' => 'vv',
'resource' => 'deploy/drupal',
'container' => 'drupal',
'entrypoint' => ['/docker-entrypoint', '--debug'],
]
],
],
];
}
/**
* @dataProvider wrapTestValues
*/
public function testWrap($expected, $args, $siteAliasData)
{
$siteAlias = new SiteAlias($siteAliasData, '@alias.dev');
$dockerTransport = new KubectlTransport($siteAlias);
$actual = $dockerTransport->wrap($args);
$this->assertEquals($expected, implode(' ', $actual));
}
}

View File

@@ -0,0 +1,51 @@
<?php
namespace Consolidation\SiteProcess;
use Consolidation\SiteProcess\Transport\SkprTransport;
use PHPUnit\Framework\TestCase;
use Consolidation\SiteAlias\SiteAlias;
class SkprTransportTest extends TestCase
{
/**
* Data provider for testWrap.
*/
public function wrapTestValues()
{
return [
// Everything explicit.
[
'skpr exec dev -- ls',
['ls'],
[
'skpr' => [
'env' => 'dev',
]
],
],
// Ensure we aren't escaping arguments after "--"
[
'skpr exec dev -- monday "tuesday" \'wednesday\'',
['monday', '"tuesday"', "'wednesday'"],
[
'skpr' => [
'env' => 'dev'
]
],
],
];
}
/**
* @dataProvider wrapTestValues
*/
public function testWrap($expected, $args, $siteAliasData)
{
$siteAlias = new SiteAlias($siteAliasData, '@alias.dev');
$dockerTransport = new SkprTransport($siteAlias);
$actual = $dockerTransport->wrap($args);
$this->assertEquals($expected, implode(' ', $actual));
}
}

View File

@@ -0,0 +1,36 @@
<?php
namespace Consolidation\SiteProcess;
use Consolidation\SiteProcess\Transport\VagrantTransport;
use PHPUnit\Framework\TestCase;
use Consolidation\SiteAlias\SiteAlias;
class VagrantTransportTest extends TestCase
{
/**
* Data provider for testWrap.
*/
public function wrapTestValues()
{
return [
[
'vagrant ssh -c ls',
[
'vagrant' => []
],
]
];
}
/**
* @dataProvider wrapTestValues
*/
public function testWrap($expected, $siteAliasData)
{
$siteAlias = new SiteAlias($siteAliasData, '@alias.dev');
$dockerTransport = new VagrantTransport($siteAlias);
$actual = $dockerTransport->wrap(['ls']);
$this->assertEquals($expected, implode(' ', $actual));
}
}