Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .vortex/CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -542,9 +542,9 @@ Content that gets removed if user doesn't select this feature

**Deployment Types**:

- `DEPLOY_TYPE_CONTAINER_REGISTRY` - Container registry deployments
- `DEPLOY_TYPE_WEBHOOK` - Webhook deployments
- `DEPLOY_TYPE_ARTIFACT` - Artifact deployments
- `DEPLOY_TYPES_CONTAINER_REGISTRY` - Container registry deployments
- `DEPLOY_TYPES_WEBHOOK` - Webhook deployments
- `DEPLOY_TYPES_ARTIFACT` - Artifact deployments

**Dependencies**:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
use DrevOps\VortexInstaller\Utils\Env;
use DrevOps\VortexInstaller\Utils\File;

class DeployType extends AbstractHandler {
class DeployTypes extends AbstractHandler {

const ARTIFACT = 'artifact';

Expand Down
8 changes: 4 additions & 4 deletions .vortex/installer/src/Prompts/PromptManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
use DrevOps\VortexInstaller\Prompts\Handlers\DatabaseDownloadSource;
use DrevOps\VortexInstaller\Prompts\Handlers\DatabaseImage;
use DrevOps\VortexInstaller\Prompts\Handlers\DependencyUpdatesProvider;
use DrevOps\VortexInstaller\Prompts\Handlers\DeployType;
use DrevOps\VortexInstaller\Prompts\Handlers\DeployTypes;
use DrevOps\VortexInstaller\Prompts\Handlers\Domain;
use DrevOps\VortexInstaller\Prompts\Handlers\Dotenv;
use DrevOps\VortexInstaller\Prompts\Handlers\HandlerInterface;
Expand Down Expand Up @@ -172,7 +172,7 @@ function (array $r, $pr, $n): string {
)

->intro('Deployment')
->add(fn(array $r, $pr, $n): array => multiselect(...$this->args(DeployType::class, NULL, $r)), DeployType::id())
->add(fn(array $r, $pr, $n): array => multiselect(...$this->args(DeployTypes::class, NULL, $r)), DeployTypes::id())

->intro('Workflow')
->add(fn($r, $pr, $n): int|string => select(...$this->args(ProvisionType::class)), ProvisionType::id())
Expand Down Expand Up @@ -274,7 +274,7 @@ public function runProcessors(): void {
DatabaseImage::id(),
DatabaseDownloadSource::id(),
ProvisionType::id(),
DeployType::id(),
DeployTypes::id(),
HostingProvider::id(),
Tools::id(),
Services::id(),
Expand Down Expand Up @@ -391,7 +391,7 @@ public function getResponsesSummary(): array {
}

$values['Deployment'] = Tui::LIST_SECTION_TITLE;
$values['Deployment types'] = Converter::toList($responses[DeployType::id()]);
$values['Deployment types'] = Converter::toList($responses[DeployTypes::id()]);

$values['Workflow'] = Tui::LIST_SECTION_TITLE;
$values['Provision type'] = $responses[ProvisionType::id()];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
use DrevOps\VortexInstaller\Prompts\Handlers\DatabaseDownloadSource;
use DrevOps\VortexInstaller\Prompts\Handlers\DatabaseImage;
use DrevOps\VortexInstaller\Prompts\Handlers\DependencyUpdatesProvider;
use DrevOps\VortexInstaller\Prompts\Handlers\DeployType;
use DrevOps\VortexInstaller\Prompts\Handlers\DeployTypes;
use DrevOps\VortexInstaller\Prompts\Handlers\Domain;
use DrevOps\VortexInstaller\Prompts\Handlers\HostingProvider;
use DrevOps\VortexInstaller\Prompts\Handlers\Internal;
Expand Down Expand Up @@ -41,7 +41,7 @@
#[CoversClass(DatabaseDownloadSource::class)]
#[CoversClass(DatabaseImage::class)]
#[CoversClass(DependencyUpdatesProvider::class)]
#[CoversClass(DeployType::class)]
#[CoversClass(DeployTypes::class)]
#[CoversClass(Domain::class)]
#[CoversClass(HostingProvider::class)]
#[CoversClass(Internal::class)]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,51 +5,51 @@
namespace DrevOps\VortexInstaller\Tests\Functional\Handlers;

use DrevOps\VortexInstaller\Prompts\Handlers\CiProvider;
use DrevOps\VortexInstaller\Prompts\Handlers\DeployType;
use DrevOps\VortexInstaller\Prompts\Handlers\DeployTypes;
use DrevOps\VortexInstaller\Prompts\PromptManager;
use DrevOps\VortexInstaller\Utils\Converter;
use DrevOps\VortexInstaller\Utils\Env;
use PHPUnit\Framework\Attributes\CoversClass;

#[CoversClass(DeployType::class)]
#[CoversClass(DeployTypes::class)]
class DeployTypeInstallTest extends AbstractInstallTestCase {
Comment thread
coderabbitai[bot] marked this conversation as resolved.

public static function dataProviderInstall(): array {
return [
'deploy type, artifact' => [
static::cw(fn() => Env::put(PromptManager::makeEnvName(DeployType::id()), Converter::toList([DeployType::ARTIFACT], ',', TRUE))),
'deploy types, artifact' => [
static::cw(fn() => Env::put(PromptManager::makeEnvName(DeployTypes::id()), Converter::toList([DeployTypes::ARTIFACT], ',', TRUE))),
],

'deploy type, lagoon' => [
static::cw(fn() => Env::put(PromptManager::makeEnvName(DeployType::id()), Converter::toList([DeployType::LAGOON], ',', TRUE))),
'deploy types, lagoon' => [
static::cw(fn() => Env::put(PromptManager::makeEnvName(DeployTypes::id()), Converter::toList([DeployTypes::LAGOON], ',', TRUE))),
],

'deploy type, container_image' => [
static::cw(fn() => Env::put(PromptManager::makeEnvName(DeployType::id()), Converter::toList([DeployType::CONTAINER_IMAGE], ',', TRUE))),
'deploy types, container_image' => [
static::cw(fn() => Env::put(PromptManager::makeEnvName(DeployTypes::id()), Converter::toList([DeployTypes::CONTAINER_IMAGE], ',', TRUE))),
],

'deploy type, webhook' => [
static::cw(fn() => Env::put(PromptManager::makeEnvName(DeployType::id()), Converter::toList([DeployType::WEBHOOK], ',', TRUE))),
'deploy types, webhook' => [
static::cw(fn() => Env::put(PromptManager::makeEnvName(DeployTypes::id()), Converter::toList([DeployTypes::WEBHOOK], ',', TRUE))),
],

'deploy type, all, gha' => [
static::cw(fn() => Env::put(PromptManager::makeEnvName(DeployType::id()), Converter::toList([DeployType::WEBHOOK, DeployType::CONTAINER_IMAGE, DeployType::LAGOON, DeployType::ARTIFACT]))),
'deploy types, all, gha' => [
static::cw(fn() => Env::put(PromptManager::makeEnvName(DeployTypes::id()), Converter::toList([DeployTypes::WEBHOOK, DeployTypes::CONTAINER_IMAGE, DeployTypes::LAGOON, DeployTypes::ARTIFACT]))),
],

'deploy type, all, circleci' => [
'deploy types, all, circleci' => [
static::cw(function (): void {
Env::put(PromptManager::makeEnvName(DeployType::id()), Converter::toList([DeployType::WEBHOOK, DeployType::CONTAINER_IMAGE, DeployType::LAGOON, DeployType::ARTIFACT]));
Env::put(PromptManager::makeEnvName(DeployTypes::id()), Converter::toList([DeployTypes::WEBHOOK, DeployTypes::CONTAINER_IMAGE, DeployTypes::LAGOON, DeployTypes::ARTIFACT]));
Env::put(PromptManager::makeEnvName(CiProvider::id()), CiProvider::CIRCLECI);
}),
],

'deploy type, none, gha' => [
static::cw(fn() => Env::put(PromptManager::makeEnvName(DeployType::id()), ',')),
'deploy types, none, gha' => [
static::cw(fn() => Env::put(PromptManager::makeEnvName(DeployTypes::id()), ',')),
],

'deploy type, none, circleci' => [
'deploy types, none, circleci' => [
static::cw(function (): void {
Env::put(PromptManager::makeEnvName(DeployType::id()), ',');
Env::put(PromptManager::makeEnvName(DeployTypes::id()), ',');
Env::put(PromptManager::makeEnvName(CiProvider::id()), CiProvider::CIRCLECI);
}),
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
use DrevOps\VortexInstaller\Prompts\Handlers\DatabaseDownloadSource;
use DrevOps\VortexInstaller\Prompts\Handlers\DatabaseImage;
use DrevOps\VortexInstaller\Prompts\Handlers\DependencyUpdatesProvider;
use DrevOps\VortexInstaller\Prompts\Handlers\DeployType;
use DrevOps\VortexInstaller\Prompts\Handlers\DeployTypes;
use DrevOps\VortexInstaller\Prompts\Handlers\Domain;
use DrevOps\VortexInstaller\Prompts\Handlers\HostingProvider;
use DrevOps\VortexInstaller\Prompts\Handlers\LabelMergeConflictsPr;
Expand Down Expand Up @@ -133,7 +133,7 @@ protected static function getExpectedDefaults(): array {
HostingProvider::id() => HostingProvider::NONE,
HostingProjectName::id() => NULL,
Webroot::id() => Webroot::WEB,
DeployType::id() => [DeployType::WEBHOOK],
DeployTypes::id() => [DeployTypes::WEBHOOK],
ProvisionType::id() => ProvisionType::DATABASE,
DatabaseDownloadSource::id() => DatabaseDownloadSource::URL,
DatabaseImage::id() => NULL,
Expand Down Expand Up @@ -201,7 +201,7 @@ public static function defaultTuiAnswers(): array {
Tools::id() => static::TUI_DEFAULT,
HostingProvider::id() => static::TUI_DEFAULT,
Webroot::id() => static::TUI_DEFAULT,
DeployType::id() => static::TUI_DEFAULT,
DeployTypes::id() => static::TUI_DEFAULT,
ProvisionType::id() => static::TUI_DEFAULT,
DatabaseDownloadSource::id() => static::TUI_DEFAULT,
DatabaseImage::id() => static::TUI_SKIP,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,41 +4,41 @@

namespace DrevOps\VortexInstaller\Tests\Unit\Handlers;

use DrevOps\VortexInstaller\Prompts\Handlers\DeployType;
use DrevOps\VortexInstaller\Prompts\Handlers\DeployTypes;
use DrevOps\VortexInstaller\Utils\Config;
use DrevOps\VortexInstaller\Utils\Converter;
use PHPUnit\Framework\Attributes\CoversClass;
use Laravel\Prompts\Key;

#[CoversClass(DeployType::class)]
class DeployTypePromptManagerTest extends AbstractPromptManagerTestCase {
#[CoversClass(DeployTypes::class)]
class DeployTypesPromptManagerTest extends AbstractPromptManagerTestCase {

public static function dataProviderRunPrompts(): array {
$expected_defaults = static::getExpectedDefaults();

return [
'deploy type - prompt' => [
[DeployType::id() => Key::ENTER],
[DeployType::id() => [DeployType::WEBHOOK]] + $expected_defaults,
'deploy types - prompt' => [
[DeployTypes::id() => Key::ENTER],
[DeployTypes::id() => [DeployTypes::WEBHOOK]] + $expected_defaults,
],

'deploy type - discovery' => [
'deploy types - discovery' => [
[],
[DeployType::id() => [DeployType::ARTIFACT, DeployType::WEBHOOK]] + $expected_defaults,
[DeployTypes::id() => [DeployTypes::ARTIFACT, DeployTypes::WEBHOOK]] + $expected_defaults,
function (AbstractPromptManagerTestCase $test, Config $config): void {
$test->stubDotenvValue('VORTEX_DEPLOY_TYPES', Converter::toList([DeployType::ARTIFACT, DeployType::WEBHOOK]));
$test->stubDotenvValue('VORTEX_DEPLOY_TYPES', Converter::toList([DeployTypes::ARTIFACT, DeployTypes::WEBHOOK]));
},
],

'deploy type - discovery - order' => [
'deploy types - discovery - order' => [
[],
[DeployType::id() => [DeployType::ARTIFACT, DeployType::WEBHOOK]] + $expected_defaults,
[DeployTypes::id() => [DeployTypes::ARTIFACT, DeployTypes::WEBHOOK]] + $expected_defaults,
function (AbstractPromptManagerTestCase $test, Config $config): void {
$test->stubDotenvValue('VORTEX_DEPLOY_TYPES', Converter::toList([DeployType::WEBHOOK, DeployType::ARTIFACT]));
$test->stubDotenvValue('VORTEX_DEPLOY_TYPES', Converter::toList([DeployTypes::WEBHOOK, DeployTypes::ARTIFACT]));
},
],

'deploy type - discovery - invalid' => [
'deploy types - discovery - invalid' => [
[],
$expected_defaults,
function (AbstractPromptManagerTestCase $test): void {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace DrevOps\VortexInstaller\Tests\Unit\Handlers;

use DrevOps\VortexInstaller\Prompts\Handlers\DatabaseDownloadSource;
use DrevOps\VortexInstaller\Prompts\Handlers\DeployType;
use DrevOps\VortexInstaller\Prompts\Handlers\DeployTypes;
use DrevOps\VortexInstaller\Prompts\Handlers\HostingProvider;
use DrevOps\VortexInstaller\Prompts\Handlers\HostingProjectName;
use DrevOps\VortexInstaller\Prompts\Handlers\Webroot;
Expand All @@ -30,7 +30,7 @@ public static function dataProviderRunPrompts(): array {
[
HostingProvider::id() => HostingProvider::ACQUIA,
HostingProjectName::id() => 'my_acquia-project',
DeployType::id() => [DeployType::ARTIFACT],
DeployTypes::id() => [DeployTypes::ARTIFACT],
DatabaseDownloadSource::id() => DatabaseDownloadSource::ACQUIA,
Webroot::id() => Webroot::DOCROOT,
] + $expected_defaults,
Expand All @@ -48,7 +48,7 @@ public static function dataProviderRunPrompts(): array {
[
HostingProvider::id() => HostingProvider::ACQUIA,
HostingProjectName::id() => 'discovered_acquia-project',
DeployType::id() => [DeployType::ARTIFACT],
DeployTypes::id() => [DeployTypes::ARTIFACT],
DatabaseDownloadSource::id() => DatabaseDownloadSource::ACQUIA,
Webroot::id() => Webroot::DOCROOT,
] + $expected_defaults,
Expand All @@ -64,7 +64,7 @@ function (AbstractPromptManagerTestCase $test, Config $config): void {
[
HostingProvider::id() => HostingProvider::ACQUIA,
HostingProjectName::id() => 'discovered_from_settings',
DeployType::id() => [DeployType::ARTIFACT],
DeployTypes::id() => [DeployTypes::ARTIFACT],
DatabaseDownloadSource::id() => DatabaseDownloadSource::ACQUIA,
Webroot::id() => Webroot::DOCROOT,
] + $expected_defaults,
Expand All @@ -85,7 +85,7 @@ function (AbstractPromptManagerTestCase $test, Config $config): void {
[
HostingProvider::id() => HostingProvider::LAGOON,
HostingProjectName::id() => 'my_lagoon-project',
DeployType::id() => [DeployType::LAGOON],
DeployTypes::id() => [DeployTypes::LAGOON],
DatabaseDownloadSource::id() => DatabaseDownloadSource::LAGOON,
] + $expected_defaults,
],
Expand All @@ -102,7 +102,7 @@ function (AbstractPromptManagerTestCase $test, Config $config): void {
[
HostingProvider::id() => HostingProvider::LAGOON,
HostingProjectName::id() => 'discovered_lagoon-project',
DeployType::id() => [DeployType::LAGOON],
DeployTypes::id() => [DeployTypes::LAGOON],
DatabaseDownloadSource::id() => DatabaseDownloadSource::LAGOON,
] + $expected_defaults,
function (AbstractPromptManagerTestCase $test, Config $config): void {
Expand All @@ -117,7 +117,7 @@ function (AbstractPromptManagerTestCase $test, Config $config): void {
[
HostingProvider::id() => HostingProvider::LAGOON,
HostingProjectName::id() => 'discovered_from_drush',
DeployType::id() => [DeployType::LAGOON],
DeployTypes::id() => [DeployTypes::LAGOON],
DatabaseDownloadSource::id() => DatabaseDownloadSource::LAGOON,
] + $expected_defaults,
function (AbstractPromptManagerTestCase $test, Config $config): void {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace DrevOps\VortexInstaller\Tests\Unit\Handlers;

use DrevOps\VortexInstaller\Prompts\Handlers\DatabaseDownloadSource;
use DrevOps\VortexInstaller\Prompts\Handlers\DeployType;
use DrevOps\VortexInstaller\Prompts\Handlers\DeployTypes;
use DrevOps\VortexInstaller\Prompts\Handlers\HostingProjectName;
use DrevOps\VortexInstaller\Prompts\Handlers\HostingProvider;
use DrevOps\VortexInstaller\Prompts\Handlers\Webroot;
Expand All @@ -32,7 +32,7 @@ public static function dataProviderRunPrompts(): array {
HostingProvider::id() => HostingProvider::ACQUIA,
HostingProjectName::id() => 'myproject',
Webroot::id() => Webroot::DOCROOT,
DeployType::id() => [DeployType::ARTIFACT],
DeployTypes::id() => [DeployTypes::ARTIFACT],
DatabaseDownloadSource::id() => DatabaseDownloadSource::ACQUIA,
] + $expected_defaults,
function (AbstractPromptManagerTestCase $test, Config $config): void {
Expand All @@ -46,7 +46,7 @@ function (AbstractPromptManagerTestCase $test, Config $config): void {
HostingProvider::id() => HostingProvider::ACQUIA,
HostingProjectName::id() => 'myproject',
Webroot::id() => Webroot::DOCROOT,
DeployType::id() => [DeployType::ARTIFACT],
DeployTypes::id() => [DeployTypes::ARTIFACT],
DatabaseDownloadSource::id() => DatabaseDownloadSource::ACQUIA,
] + $expected_defaults,
function (AbstractPromptManagerTestCase $test, Config $config): void {
Expand All @@ -59,7 +59,7 @@ function (AbstractPromptManagerTestCase $test, Config $config): void {
[
HostingProvider::id() => HostingProvider::LAGOON,
HostingProjectName::id() => 'myproject',
DeployType::id() => [DeployType::LAGOON],
DeployTypes::id() => [DeployTypes::LAGOON],
DatabaseDownloadSource::id() => DatabaseDownloadSource::LAGOON,
] + $expected_defaults,
function (AbstractPromptManagerTestCase $test, Config $config): void {
Expand Down
2 changes: 1 addition & 1 deletion .vortex/tests/phpunit/Functional/DeploymentTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ public function testDeploymentArtifact(): void {
static::$sutInstallerEnv = [
'VORTEX_INSTALLER_IS_DEMO' => '1',
// Add trailing comma to simulate list input.
'VORTEX_INSTALLER_PROMPT_DEPLOY_TYPE' => 'artifact,',
'VORTEX_INSTALLER_PROMPT_DEPLOY_TYPES' => 'artifact,',
];

$this->logSubstep('Prepare SUT with full build');
Expand Down
4 changes: 2 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -819,11 +819,11 @@ This project includes automated deployment via:

[//]: # (#;> HOSTING_ACQUIA)

[//]: # (#;< DEPLOY_TYPE_CONTAINER_REGISTRY)
[//]: # (#;< DEPLOY_TYPES_CONTAINER_REGISTRY)

- **Container Registry** - Docker-based deployments

[//]: # (#;> DEPLOY_TYPE_CONTAINER_REGISTRY)
[//]: # (#;> DEPLOY_TYPES_CONTAINER_REGISTRY)

### Manual Deployment Commands

Expand Down