From 59fe53064ea43f44bd645b298ab87bf5373619bd Mon Sep 17 00:00:00 2001 From: Beverly Hicks <beverly.hicks@acquia.com> Date: Wed, 23 Oct 2024 18:02:43 -0400 Subject: [PATCH] GL-3134: Add new Gitlab variable for Node projects. (#1818) * GL-3134: Add new Gitlab variable for Node projects. * GL-3134: Update tests for NODE_HOSTING_TYPE. --------- Co-authored-by: Dane Powell <git@danepowell.com> --- src/Command/CodeStudio/CodeStudioCiCdVariables.php | 9 ++++++++- src/Command/CodeStudio/CodeStudioWizardCommand.php | 7 ++++--- .../Commands/CodeStudio/CodeStudioCiCdVariablesTest.php | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/Command/CodeStudio/CodeStudioCiCdVariables.php b/src/Command/CodeStudio/CodeStudioCiCdVariables.php index 3b91e40f0..4d9102cc9 100644 --- a/src/Command/CodeStudio/CodeStudioCiCdVariables.php +++ b/src/Command/CodeStudio/CodeStudioCiCdVariables.php @@ -18,7 +18,7 @@ public static function getList(): array /** * @return array<mixed> */ - public static function getDefaultsForNode(?string $cloudApplicationUuid = null, ?string $cloudKey = null, ?string $cloudSecret = null, ?string $projectAccessTokenName = null, ?string $projectAccessToken = null, ?string $nodeVersion = null): array + public static function getDefaultsForNode(?string $cloudApplicationUuid = null, ?string $cloudKey = null, ?string $cloudSecret = null, ?string $projectAccessTokenName = null, ?string $projectAccessToken = null, ?string $nodeVersion = null, ?string $nodeHosting = null): array { return [ [ @@ -63,6 +63,13 @@ public static function getDefaultsForNode(?string $cloudApplicationUuid = null, 'value' => $nodeVersion, 'variable_type' => 'env_var', ], + [ + 'key' => 'NODE_HOSTING_TYPE', + 'masked' => false, + 'protected' => false, + 'value' => $nodeHosting, + 'variable_type' => 'env_var', + ], ]; } diff --git a/src/Command/CodeStudio/CodeStudioWizardCommand.php b/src/Command/CodeStudio/CodeStudioWizardCommand.php index 192781621..2016905e4 100644 --- a/src/Command/CodeStudio/CodeStudioWizardCommand.php +++ b/src/Command/CodeStudio/CodeStudioWizardCommand.php @@ -48,6 +48,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int $nodeVersion = null; $projectType = $this->getListOfProjectType(); $projectSelected = $this->io->choice('Select a project type', $projectType, "Drupal_project"); + $nodeHosting = "basic"; switch ($projectSelected) { case "Drupal_project": @@ -128,7 +129,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int ]; $client = $this->getGitLabClient(); $client->projects()->update($project['id'], $parameters); - $this->setGitLabCiCdVariablesForNodeProject($project, $appUuid, $cloudKey, $cloudSecret, $projectAccessTokenName, $projectAccessToken, $nodeVersion); + $this->setGitLabCiCdVariablesForNodeProject($project, $appUuid, $cloudKey, $cloudSecret, $projectAccessTokenName, $projectAccessToken, $nodeVersion, $nodeHosting); break; } @@ -241,10 +242,10 @@ private function setGitLabCiCdVariablesForPhpProject(array $project, string $clo } } - private function setGitLabCiCdVariablesForNodeProject(array $project, string $cloudApplicationUuid, string $cloudKey, string $cloudSecret, string $projectAccessTokenName, string $projectAccessToken, string $nodeVersion): void + private function setGitLabCiCdVariablesForNodeProject(array $project, string $cloudApplicationUuid, string $cloudKey, string $cloudSecret, string $projectAccessTokenName, string $projectAccessToken, string $nodeVersion, string $nodeHosting): void { $this->io->writeln("Setting GitLab CI/CD variables for {$project['path_with_namespace']}.."); - $gitlabCicdVariables = CodeStudioCiCdVariables::getDefaultsForNode($cloudApplicationUuid, $cloudKey, $cloudSecret, $projectAccessTokenName, $projectAccessToken, $nodeVersion); + $gitlabCicdVariables = CodeStudioCiCdVariables::getDefaultsForNode($cloudApplicationUuid, $cloudKey, $cloudSecret, $projectAccessTokenName, $projectAccessToken, $nodeVersion, $nodeHosting); $gitlabCicdExistingVariables = $this->gitLabClient->projects() ->variables($project['id']); $gitlabCicdExistingVariablesKeyed = []; diff --git a/tests/phpunit/src/Commands/CodeStudio/CodeStudioCiCdVariablesTest.php b/tests/phpunit/src/Commands/CodeStudio/CodeStudioCiCdVariablesTest.php index 917bdc4f2..19757d173 100644 --- a/tests/phpunit/src/Commands/CodeStudio/CodeStudioCiCdVariablesTest.php +++ b/tests/phpunit/src/Commands/CodeStudio/CodeStudioCiCdVariablesTest.php @@ -21,7 +21,7 @@ public function testGetDefaultsForNode(): void protected function testBooleanValues(array $variables): void { foreach ($variables as $variable) { - if ($variable['key'] !== "PHP_VERSION" && $variable['key'] !== "NODE_VERSION") { + if ($variable['key'] !== "PHP_VERSION" && $variable['key'] !== "NODE_VERSION" && $variable['key'] !== "NODE_HOSTING_TYPE") { $maskedValue = $variable['masked']; $this->assertEquals(true, $maskedValue); } else {