Skip to content

Commit

Permalink
Added prompt for php version for cs:wizard command (#1594)
Browse files Browse the repository at this point in the history
* added prompt for php version

* changes int to string

* changes PHP_VERSION from int to string

* added UTC

* fixed UTC

* fixed UTC

* fixed UTC variable name

* fixed broken tests

* added test to increase coverage

* removed unnecessary commented lines
  • Loading branch information
shubham-bansal96 authored Oct 9, 2023
1 parent 553ff72 commit 3926065
Show file tree
Hide file tree
Showing 4 changed files with 64 additions and 5 deletions.
9 changes: 8 additions & 1 deletion src/Command/CodeStudio/CodeStudioCiCdVariables.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public static function getList(): array {
/**
* @return array<mixed>
*/
public static function getDefaults(?string $cloudApplicationUuid = NULL, ?string $cloudKey = NULL, ?string $cloudSecret = NULL, ?string $projectAccessTokenName = NULL, ?string $projectAccessToken = NULL): array {
public static function getDefaults(?string $cloudApplicationUuid = NULL, ?string $cloudKey = NULL, ?string $cloudSecret = NULL, ?string $projectAccessTokenName = NULL, ?string $projectAccessToken = NULL, ?string $phpVersion = NULL): array {
return [
[
'key' => 'ACQUIA_APPLICATION_UUID',
Expand Down Expand Up @@ -53,6 +53,13 @@ public static function getDefaults(?string $cloudApplicationUuid = NULL, ?string
'value' => $projectAccessToken,
'variable_type' => 'env_var',
],
[
'key' => 'PHP_VERSION',
'masked' => FALSE,
'protected' => FALSE,
'value' => $phpVersion,
'variable_type' => 'env_var',
],
];
}

Expand Down
15 changes: 12 additions & 3 deletions src/Command/CodeStudio/CodeStudioWizardCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,15 @@ protected function execute(InputInterface $input, OutputInterface $output): int
// But, we specifically need an API Token key-pair of Code Studio.
// So we reauthenticate to be sure we're using the provided credentials.
$this->reAuthenticate($cloudKey, $cloudSecret, $this->cloudCredentials->getBaseUri(), $this->cloudCredentials->getAccountsUri());

$phpVersions = [
'PHP_version_8.1' => "8.1",
'PHP_version_8.2' => "8.2",
];
$project = $this->io->choice('Select a PHP version', array_values($phpVersions), $phpVersions['PHP_version_8.1']);
$project = array_search($project, $phpVersions, TRUE);
$phpVersion = $phpVersions[$project];

$appUuid = $this->determineCloudApplication();

// Get Cloud account.
Expand Down Expand Up @@ -92,7 +101,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int
$projectAccessTokenName = 'acquia-codestudio';
$projectAccessToken = $this->createProjectAccessToken($project, $projectAccessTokenName);
$this->updateGitLabProject($project);
$this->setGitLabCiCdVariables($project, $appUuid, $cloudKey, $cloudSecret, $projectAccessTokenName, $projectAccessToken);
$this->setGitLabCiCdVariables($project, $appUuid, $cloudKey, $cloudSecret, $projectAccessTokenName, $projectAccessToken, $phpVersion);
$this->createScheduledPipeline($project);

$this->io->success([
Expand Down Expand Up @@ -161,9 +170,9 @@ private function createProjectAccessToken(array $project, string $projectAccessT
return $projectAccessToken['token'];
}

private function setGitLabCiCdVariables(array $project, string $cloudApplicationUuid, string $cloudKey, string $cloudSecret, string $projectAccessTokenName, string $projectAccessToken): void {
private function setGitLabCiCdVariables(array $project, string $cloudApplicationUuid, string $cloudKey, string $cloudSecret, string $projectAccessTokenName, string $projectAccessToken, string $phpVersion): void {
$this->io->writeln("Setting GitLab CI/CD variables for {$project['path_with_namespace']}..");
$gitlabCicdVariables = CodeStudioCiCdVariables::getDefaults($cloudApplicationUuid, $cloudKey, $cloudSecret, $projectAccessTokenName, $projectAccessToken);
$gitlabCicdVariables = CodeStudioCiCdVariables::getDefaults($cloudApplicationUuid, $cloudKey, $cloudSecret, $projectAccessTokenName, $projectAccessToken, $phpVersion);
$gitlabCicdExistingVariables = $this->gitLabClient->projects()
->variables($project['id']);
$gitlabCicdExistingVariablesKeyed = [];
Expand Down
2 changes: 1 addition & 1 deletion tests/phpunit/src/CommandTestBase.php
Original file line number Diff line number Diff line change
Expand Up @@ -633,7 +633,7 @@ protected function getMockGitLabVariables(): array {
'protected' => FALSE,
'value' => '111aae74-e81a-4052-b4b9-a27a62e6b6a6',
'variable_type' => 'env_var',
],
],
];
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,28 @@ public function providerTestCommand(): array {
[
// 'Would you like to create a new Code Studio project?
'y',
// Select PHP version 8.1
'0',
// Do you want to continue?
'y',
// Would you like to perform a one time push of code from Acquia Cloud to Code Studio now? (yes/no) [yes]:
'y',
],
// Args.
[
'--key' => $this->key,
'--secret' => $this->secret,
],
],
[
// No projects.
[],
// Inputs.
[
// 'Would you like to create a new Code Studio project?
'y',
// Select PHP version 8.2
'1',
// Do you want to continue?
'y',
// Would you like to perform a one time push of code from Acquia Cloud to Code Studio now? (yes/no) [yes]:
Expand Down Expand Up @@ -133,6 +155,27 @@ public function providerTestCommand(): array {
$this->key,
// Enter Cloud secret,
$this->secret,
// Select PHP version 8.1
'0',
// Do you want to continue?
'y',
],
// Args
[],
],
[
// No projects.
[],
// Inputs
[
// 'Would you like to create a new Code Studio project?
'y',
// Enter Cloud Key
$this->key,
// Enter Cloud secret,
$this->secret,
// Select PHP version 8.2
'1',
// Do you want to continue?
'y',
],
Expand Down

0 comments on commit 3926065

Please sign in to comment.